Changeset 153 for trunk


Ignore:
Timestamp:
08/10/06 09:20:15 (18 years ago)
Author:
smasson
Message:

doc update

Location:
trunk/SRC
Files:
2 added
82 edited

Legend:

Unmodified
Added
Removed
  • trunk/SRC/Documentation/idldoc_html_output/Interpolation/testinterp.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/Matrix/cmset_op.html

    r138 r153  
    681681<div id="secondary_navbar"> 
    682682 
    683 <a href="cmapply.html?format=raw">&lt;&lt;prev file</a> | <a href="congridseb.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="cmset_op.html?format=raw" 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> 
     683<a href="cmapply.html?format=raw">&lt;&lt;prev file</a> | <a href="different.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="cmset_op.html?format=raw" 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> 
    684684 
    685685</div> 
  • trunk/SRC/Documentation/idldoc_html_output/Matrix/congridseb.html

    r138 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/Matrix/different.html

    r138 r153  
    681681<div id="secondary_navbar"> 
    682682 
    683 <a href="congridseb.html?format=raw">&lt;&lt;prev file</a> | <a href="extrac2.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="different.html?format=raw" 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> 
     683<a href="cmset_op.html?format=raw">&lt;&lt;prev file</a> | <a href="extrac2.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="different.html?format=raw" 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> 
    684684 
    685685</div> 
  • trunk/SRC/Documentation/idldoc_html_output/Matrix/dir-files.html

    r138 r153  
    6767        <li><a href="cmapply.html?format=raw" target="file_frame">cmapply.pro</a></li> 
    6868        <li><a href="cmset_op.html?format=raw" target="file_frame">cmset_op.pro</a></li> 
    69         <li><a href="congridseb.html?format=raw" target="file_frame">congridseb.pro</a></li> 
    7069        <li><a href="different.html?format=raw" target="file_frame">different.pro</a></li> 
    7170        <li><a href="extrac2.html?format=raw" target="file_frame">extrac2.pro</a></li> 
     
    7675      </ul> 
    7776 
    78       <div id="tagline">9 files</div> 
     77      <div id="tagline">8 files</div> 
    7978       
    8079 
  • trunk/SRC/Documentation/idldoc_html_output/Matrix/directory-overview.html

    r138 r153  
    704704        <dd>  Simplified version of CMSET_OP_UNIQ which sorts, and takes the  "first" value, whatever that may mean.</dd> 
    705705       
    706         <dt><a href="congridseb.html?format=raw">congridseb.pro</a></dt> 
    707         <dd>  Like congrid but here, it works.</dd> 
    708        
    709706        <dt><a href="different.html?format=raw">different.pro</a></dt> 
    710707        <dd>   calculate the different elements of 2 matrix of positif whole numbers.</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/Obsolete/common.html

    r138 r153  
    681681<div id="secondary_navbar"> 
    682682 
    683 &lt;&lt; prev file | <a href="cp.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="common.html?format=raw" 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> 
     683&lt;&lt; prev file | <a href="congridseb.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="common.html?format=raw" 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> 
    684684 
    685685</div> 
  • trunk/SRC/Documentation/idldoc_html_output/Obsolete/cp.html

    r138 r153  
    681681<div id="secondary_navbar"> 
    682682 
    683 <a href="common.html?format=raw">&lt;&lt;prev file</a> | <a href="extrait.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="cp.html?format=raw" 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> 
     683<a href="congridseb.html?format=raw">&lt;&lt;prev file</a> | <a href="extrait.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="cp.html?format=raw" 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> 
    684684 
    685685</div> 
  • trunk/SRC/Documentation/idldoc_html_output/Obsolete/dir-files.html

    r138 r153  
    6666         
    6767        <li><a href="common.html?format=raw" target="file_frame">common.pro</a></li> 
     68        <li><a href="congridseb.html?format=raw" target="file_frame">congridseb.pro</a></li> 
    6869        <li><a href="cp.html?format=raw" target="file_frame">cp.pro</a></li> 
    6970        <li><a href="extrait.html?format=raw" target="file_frame">extrait.pro</a></li> 
     
    8889      </ul> 
    8990 
    90       <div id="tagline">21 files</div> 
     91      <div id="tagline">22 files</div> 
    9192       
    9293 
  • trunk/SRC/Documentation/idldoc_html_output/Obsolete/directory-overview.html

    r138 r153  
    701701        <dd></dd> 
    702702       
     703        <dt><a href="congridseb.html?format=raw">congridseb.pro</a></dt> 
     704        <dd>   Used to avoid a bug in congrid in a old version of IDL  Useless now.</dd> 
     705       
    703706        <dt><a href="cp.html?format=raw">cp.pro</a></dt> 
    704707        <dd>  copy files  file_copy should be used instead.</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/caldat.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/CALENDRIER/julday.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/color24.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/colorbar.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/getcolor.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/lct.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/newpalette.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xlct.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/COULEURS/xpal.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/image_viewer.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/imdisp.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/saveimage.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/IMAGE/showimage.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmapply.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/cmset_op.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/congridseb.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/different.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/extrait.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/inter.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/make_selection.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/union.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/MATRICE/zeroun.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/dir-files.html

    r109 r153  
    7171        <li><a href="pltsc.html?format=raw" target="file_frame">pltsc.pro</a></li> 
    7272        <li><a href="pltt.html?format=raw" target="file_frame">pltt.pro</a></li> 
     73        <li><a href="pltv.html?format=raw" target="file_frame">pltv.pro</a></li> 
    7374        <li><a href="pltz.html?format=raw" target="file_frame">pltz.pro</a></li> 
    7475        <li><a href="sbar_plot.html?format=raw" target="file_frame">sbar_plot.pro</a></li> 
     
    7879      </ul> 
    7980 
    80       <div id="tagline">11 files</div> 
     81      <div id="tagline">12 files</div> 
    8182       
    8283 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/directory-overview.html

    r142 r153  
    702702       
    703703        <dt><a href="plt.html?format=raw">plt.pro</a></dt> 
    704         <dd>   Draw horizontal graph (map) </dd> 
     704        <dd>   Draw horizontal graph (map) with CONTOUR procedure </dd> 
    705705       
    706706        <dt><a href="plt1d.html?format=raw">plt1d.pro</a></dt> 
     
    716716        <dd>   Trace hovmoller graphs: xt,yt,zt,t </dd> 
    717717       
     718        <dt><a href="pltv.html?format=raw">pltv.pro</a></dt> 
     719        <dd>  Draw 2d plots with TV procedure </dd> 
     720       
    718721        <dt><a href="pltz.html?format=raw">pltz.pro</a></dt> 
    719722        <dd>   Trace vertical graphs.</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/plt.html

    r143 r153  
    697697 
    698698      <div id="file_comments">  
    699  Draw horizontal graph (map) 
     699 Draw horizontal graph (map) with CONTOUR procedure 
    700700</div> 
    701701 
     
    741741         
    742742          <div class="comments">  
    743  The field whose we want to make the horizontal map can be 2 kind of thing: 
     743 The field whose we want to make the horizontal map can be: 
    744744         1) an array. if needed, its mean along the z and t direction 
    745745         will be automatically performed. 
     
    11011101         
    11021102            <div class="comments">  
    1103  Allows to specify the min value we want to consider in the drawing of contour  
    1104  helping by the keyword instead of the argument min. If the argument and the keyword are  
    1105  specified in the same time, it is the value specified by the keyword which is retained. 
     1103 to specify the min value we want to plot with a keyword instead of with the 
     1104 input parameter min. If min is defined by both, parameter and keyword, the 
     1105 keyword is retained. 
    11061106</div> 
    11071107             
     
    11181118         
    11191119            <div class="comments">  
    1120  Allows to specify the max value we want to consider in the drawing of contour  
    1121  helping by the keyword instead of the argument max. If the argument and the keyword are  
    1122  specified in the same time, it is the value specified by the keyword which is retained. 
     1120 to specify the max value we want to plot with a keyword instead of with the 
     1121 input parameter max. If max is defined by both, parameter and keyword, the 
     1122 keyword is retained. 
    11231123</div> 
    11241124             
     
    12871287           
    12881288          <h4>Version</h4><div class="preformat"> 
    1289  $Id: plt.pro 142 2006-07-21 12:47:49Z navarro $ 
     1289 $Id: plt.pro 152 2006-08-10 07:01:35Z smasson $ 
    12901290 </div> 
    12911291          <h4>History</h4><div class="preformat"> </div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltt.html

    r143 r153  
    681681<div id="secondary_navbar"> 
    682682 
    683 <a href="pltsc.html?format=raw">&lt;&lt;prev file</a> | <a href="pltz.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="pltt.html?format=raw" 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> 
     683<a href="pltsc.html?format=raw">&lt;&lt;prev file</a> | <a href="pltv.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="pltt.html?format=raw" 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> 
    684684 
    685685</div> 
     
    11231123         
    11241124            <div class="comments">  
    1125  Allows to specify the min value we want to consider in the drawing of contour  
    1126  helping by the keyword instead of the argument min. If the argument and the keyword are  
    1127  specified in the same time, it is the value specified by the keyword which is retained. 
     1125 to specify the min value we want to plot with a keyword instead of with the 
     1126 input parameter min. If min is defined by both, parameter and keyword, the 
     1127 keyword is retained. 
    11281128</div> 
    11291129             
     
    11401140         
    11411141            <div class="comments">  
    1142  Allows to specify the max value we want to consider in the drawing of contour  
    1143  helping by the keyword instead of the argument max. If the argument and the keyword are  
    1144  specified in the same time, it is the value specified by the keyword which is retained. 
     1142 to specify the max value we want to plot with a keyword instead of with the 
     1143 input parameter max. If max is defined by both, parameter and keyword, the 
     1144 keyword is retained. 
    11451145</div> 
    11461146             
     
    13421342           
    13431343          <h4>Version</h4><div class="preformat">  
    1344  $Id: pltt.pro 142 2006-07-21 12:47:49Z navarro $ 
     1344 $Id: pltt.pro 152 2006-08-10 07:01:35Z smasson $ 
    13451345</div> 
    13461346          <h4>History</h4><div class="preformat"> </div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltz.html

    r143 r153  
    681681<div id="secondary_navbar"> 
    682682 
    683 <a href="pltt.html?format=raw">&lt;&lt;prev file</a> | <a href="sbar_plot.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="pltz.html?format=raw" 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> 
     683<a href="pltv.html?format=raw">&lt;&lt;prev file</a> | <a href="sbar_plot.html?format=raw">next file &gt;&gt;</a>&nbsp;&nbsp;&nbsp;&nbsp;<a href="pltz.html?format=raw" 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> 
    684684 
    685685</div> 
     
    11791179         
    11801180            <div class="comments">  
    1181  Allows to specify the min value we want to consider in the drawing of contour  
    1182  helping by the keyword instead of the argument min. If the argument and the keyword are  
    1183  specified in the same time, it is the value specified by the keyword which is retained. 
     1181 to specify the min value we want to plot with a keyword instead of with the 
     1182 input parameter min. If min is defined by both, parameter and keyword, the 
     1183 keyword is retained. 
    11841184</div> 
    11851185             
     
    11961196         
    11971197            <div class="comments">  
    1198  Allows to specify the max value we want to consider in the drawing of contour  
    1199  helping by the keyword instead of the argument max. If the argument and the keyword are  
    1200  specified in the same time, it is the value specified by the keyword which is retained. 
     1198 to specify the max value we want to plot with a keyword instead of with the 
     1199 input parameter max. If max is defined by both, parameter and keyword, the 
     1200 keyword is retained. 
    12011201</div> 
    12021202             
     
    12961296           
    12971297          <h4>Version</h4><div class="preformat"> 
    1298  $Id: pltz.pro 142 2006-07-21 12:47:49Z navarro $ 
     1298 $Id: pltz.pro 152 2006-08-10 07:01:35Z smasson $ 
    12991299</div> 
    13001300          <h4>History</h4><div class="preformat"></div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/tvplus.html

    r143 r153  
    781781               
    782782               
    783                
     783              <span class="attr">default:</span> <span class="value">1</span> 
    784784               
    785785            </h4> 
    786786         
    787787            <div class="comments"> 
    788  The lowest color index of the colors to be loaded in 
    789  the bar. default is 0. 
     788 The lowest color index of the colors to be used 
    790789</div> 
    791790             
     
    797796               
    798797               
    799                
     798              <span class="attr">default:</span> <span class="value">0</span> 
    800799               
    801800            </h4> 
     
    803802            <div class="comments"> 
    804803 The color number that should be used for the mask values. 
    805  default value is 0 
    806804</div> 
    807805             
     
    813811               
    814812               
    815                
     813              <span class="attr">default:</span> <span class="value">!d.n_colors < 255</span> 
    816814               
    817815            </h4> 
     
    819817            <div class="comments"> 
    820818 The color number that should be used for the NaN values. 
    821  default value is !d.n_colors < 255 
    822819</div> 
    823820             
     
    849846            </h4> 
    850847         
    851             <div class="comments">  
    852  Scalar used to specify the min value of the color bar. default is 0 
     848            <div class="comments"> 
     849 Scalar used to specify the min value to be drawn. 
    853850</div> 
    854851             
     
    865862         
    866863            <div class="comments"> 
    867  Scalar used to specify the max value of the color bar. default is !d.n_colors < 255 
     864 Scalar used to specify the max value to be drawn. 
    868865</div> 
    869866             
     
    925922               
    926923               
    927                
     924              <span class="attr">default:</span> <span class="value">(d.n_colors < 256) - 1 - bottom</span> 
    928925               
    929926            </h4> 
    930927         
    931928            <div class="comments"> 
    932  This is the number of colors in the color bar. default is !d.n_colors<255 -1 
     929 number of colors to be used. 
    933930</div> 
    934931             
     
    946943            <div class="comments"> 
    947944 Used this keyword if you don't whant that the values 
    948  are interpolated between 0 (or min) and !d.n_colors < 255 (or max). 
     945 are interpolated from BOTTOM using NCOLORS colors. 
    949946 This can be for example usefull when working on byte type arrays. 
    950947</div> 
     
    961958            </h4> 
    962959         
    963             <div class="comments"></div> 
     960            <div class="comments"> 
     961 used to pass keywords to TV, PLOT, COLORBAR 
     962 </div> 
    964963             
    965964           
     
    971970           
    972971          <h4>Version</h4><div class="preformat"> 
    973  $Id: tvplus.pro 142 2006-07-21 12:47:49Z navarro $ 
     972 $Id: tvplus.pro 152 2006-08-10 07:01:35Z smasson $ 
    974973</div> 
    975974          <h4>History</h4><div class="preformat"></div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/barrecouleur.html

    r143 r153  
    718718         
    719719          <p class="header"> 
    720             barrecouleur<span class="result">, <a href="#_barrecouleur_param_colnumb">colnumb</a>, <a href="#_barrecouleur_param_clbinf">clbinf</a>, <a href="#_barrecouleur_param_clbsup">clbsup</a>, <a href="#_barrecouleur_param_clbdiv">clbdiv</a></span>, <a href="#_barrecouleur_keyword_NOCOLORBAR">NOCOLORBAR</a>=<span class="result">NOCOLORBAR</span>, <a href="#_barrecouleur_keyword_CB_TITLE">CB_TITLE</a>=<span class="result">CB_TITLE</span>, <a href="#_barrecouleur_keyword_NOFILL">NOFILL</a>=<span class="result">NOFILL</span>, <a href="#_barrecouleur_keyword_COLOR_c">COLOR_c</a>=<span class="result">COLOR_c</span>, <a href="#_barrecouleur_keyword_min">min</a>=<span class="result">min</span>, <a href="#_barrecouleur_keyword_max">max</a>=<span class="result">max</span>, <a href="#_barrecouleur_keyword_divisions">divisions</a>=<span class="result">divisions</span>, <a href="#_barrecouleur_keyword_CB_SUBTITLE">CB_SUBTITLE</a>=<span class="result">CB_SUBTITLE</span>, <a href="#_barrecouleur_keyword_POST">POST</a>=<span class="result">POST</span>, <a href="#_barrecouleur_keyword__extra">_extra</a>=<span class="result">_extra</span></p> 
     720            barrecouleur<span class="result">, <a href="#_barrecouleur_param_colnumb">colnumb</a>, <a href="#_barrecouleur_param_clbinf">clbinf</a>, <a href="#_barrecouleur_param_clbsup">clbsup</a>, <a href="#_barrecouleur_param_clbdiv">clbdiv</a></span>, <a href="#_barrecouleur_keyword_NOCOLORBAR">NOCOLORBAR</a>=<span class="result">NOCOLORBAR</span>, <a href="#_barrecouleur_keyword_CB_TITLE">CB_TITLE</a>=<span class="result">CB_TITLE</span>, <a href="#_barrecouleur_keyword_NOFILL">NOFILL</a>=<span class="result">NOFILL</span>, <a href="#_barrecouleur_keyword_COLOR_c">COLOR_c</a>=<span class="result">COLOR_c</span>, <a href="#_barrecouleur_keyword_MIN">MIN</a>=<span class="result">MIN</span>, <a href="#_barrecouleur_keyword_MAX">MAX</a>=<span class="result">MAX</span>, <a href="#_barrecouleur_keyword_divisions">divisions</a>=<span class="result">divisions</span>, <a href="#_barrecouleur_keyword_CB_SUBTITLE">CB_SUBTITLE</a>=<span class="result">CB_SUBTITLE</span>, <a href="#_barrecouleur_keyword_POST">POST</a>=<span class="result">POST</span>, <a href="#_barrecouleur_keyword__extra">_extra</a>=<span class="result">_extra</span></p> 
    721721         
    722722          <div class="comments"> 
     
    840840            <div class="comments"></div> 
    841841             
    842             <h4 id="_barrecouleur_keyword_min">min&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     842            <h4 id="_barrecouleur_keyword_MIN">MIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    843843               
    844844               
     
    853853            <div class="comments"></div> 
    854854             
    855             <h4 id="_barrecouleur_keyword_max">max&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     855            <h4 id="_barrecouleur_keyword_MAX">MAX&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
    856856               
    857857               
     
    924924           
    925925          <h4>Version</h4><div class="preformat"> 
    926  $Id: barrecouleur.pro 142 2006-07-21 12:47:49Z navarro $ 
     926 $Id: barrecouleur.pro 152 2006-08-10 07:01:35Z smasson $ 
    927927</div> 
    928928          <h4>History</h4><div class="preformat"></div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/axe.html

    r143 r153  
    881881           
    882882          <h4>Version</h4><div class="preformat"> 
    883  $Id: axe.pro 142 2006-07-21 12:47:49Z navarro $ 
     883 $Id: axe.pro 152 2006-08-10 07:01:35Z smasson $ 
    884884</div> 
    885885          <h4>History</h4><div class="preformat"></div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/legende.html

    r143 r153  
    912912           
    913913          <h4>Version</h4><div class="preformat"> 
    914  $Id: legende.pro 142 2006-07-21 12:47:49Z navarro $ 
     914 $Id: legende.pro 152 2006-08-10 07:01:35Z smasson $ 
    915915</div> 
    916916          <h4>History</h4><div class="preformat"></div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strcnt.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/strtrans.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/fitintobox.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/linearequation.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/lineintersection.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/pwd.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/report.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/routine_name.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/test.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/testvar.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/text_box.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/undefine.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xfile.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/UTILITAIRE/xhelp.html

    r151 r153  
    328328table.variables td.image { width: 64px; } 
    329329 
    330 div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
     330div#file_comments { white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre; white-space: pre;  
    331331  margin: 2em; 
    332332  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd.html

    r151 r153  
    791791           
    792792          <h4>Version</h4><div class="preformat"> 
    793  $Id: buildcmd.pro 150 2006-08-09 10:12:54Z navarro $ 
     793 $Id: buildcmd.pro 152 2006-08-10 07:01:35Z smasson $ 
    794794</div> 
    795795          <h4>History</h4><div class="preformat"></div> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/WIDGET/AUTOUR_de_XXX/longclickaction.html

    r151 r153  
    756756           
    757757          <h4>Version</h4><div class="preformat"> 
    758  $Id: longclickaction.pro 150 2006-08-09 10:12:54Z navarro $  
     758 $Id: longclickaction.pro 152 2006-08-10 07:01:35Z smasson $  
    759759 </div> 
    760760          <h4>History</h4><div class="preformat"> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html

    r151 r153  
    878878           
    879879          <h4>Version</h4><div class="preformat">  
    880  $Id: selectfile.pro 150 2006-08-09 10:12:54Z navarro $ 
     880 $Id: selectfile.pro 152 2006-08-10 07:01:35Z smasson $ 
    881881 </div> 
    882882          <h4>History</h4><div class="preformat"> 
  • trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/WIDGET/xxx.html

    r151 r153  
    947947           
    948948          <h4>Version</h4><div class="preformat"> 
    949  $Id: xxx.pro 150 2006-08-09 10:12:54Z navarro $ 
     949 $Id: xxx.pro 152 2006-08-10 07:01:35Z smasson $ 
    950950</div> 
    951951          <h4>History</h4><div class="preformat"></div> 
  • trunk/SRC/Documentation/idldoc_html_output/Utilities/find.html

    r138 r153  
    722722         
    723723          <p class="header"> 
    724             <span class="result">result = </span>find(<span class="result"><a href="#_find_param_filein">filein</a></span>, <a href="#_find_keyword_IODIRECTORY">IODIRECTORY</a>=<span class="result">IODIRECTORY</span>, <a href="#_find_keyword_RECURSIVE">RECURSIVE</a>=<span class="result">RECURSIVE</span>, <a href="#_find_keyword_REPERTOIRE">REPERTOIRE</a>=<span class="result">REPERTOIRE</span>, <a href="#_find_keyword_NOPRO">NOPRO</a>=<span class="result">NOPRO</span>, <a href="#_find_keyword_ONLYPRO">ONLYPRO</a>=<span class="result">ONLYPRO</span>, <a href="#_find_keyword_ONLYNC">ONLYNC</a>=<span class="result">ONLYNC</span>, <a href="#_find_keyword_UNIQUE">UNIQUE</a>=<span class="result">UNIQUE</span>, <a href="#_find_keyword_FIRSTFOUND">FIRSTFOUND</a>=<span class="result">FIRSTFOUND</span>, <a href="#_find_keyword_LOOKALLDIR">LOOKALLDIR</a>=<span class="result">LOOKALLDIR</span>, <a href="#_find_keyword__extra">_extra</a>=<span class="result">_extra</span>)</p> 
     724            <span class="result">result = </span>find(<span class="result"><a href="#_find_param_filein">filein</a></span>, <a href="#_find_keyword_IODIRECTORY">IODIRECTORY</a>=<span class="result">IODIRECTORY</span>, <a href="#_find_keyword_RECURSIVE">RECURSIVE</a>=<span class="result">RECURSIVE</span>, <a href="#_find_keyword_REPERTOIRE">REPERTOIRE</a>=<span class="result">REPERTOIRE</span>, <a href="#_find_keyword_NOPRO">NOPRO</a>=<span class="result">NOPRO</span>, <a href="#_find_keyword_ONLYPRO">ONLYPRO</a>=<span class="result">ONLYPRO</span>, <a href="#_find_keyword_ONLYNC">ONLYNC</a>=<span class="result">ONLYNC</span>, <a href="#_find_keyword_UNIQUE">UNIQUE</a>=<span class="result">UNIQUE</span>, <a href="#_find_keyword_FIRSTFOUND">FIRSTFOUND</a>=<span class="result">FIRSTFOUND</span>, <a href="#_find_keyword_LOOKALLDIR">LOOKALLDIR</a>=<span class="result">LOOKALLDIR</span>, <a href="#_find_keyword_TRYFIND">TRYFIND</a>=<span class="result">TRYFIND</span>, <a href="#_find_keyword__extra">_extra</a>=<span class="result">_extra</span>)</p> 
    725725         
    726726          <div class="comments"></div> 
     
    771771               
    772772               
    773               <span class="attr">default:</span> <span class="value">!path</span> 
     773              <span class="attr">default:</span> <span class="value">['.',!path]</span> 
    774774               
    775775            </h4> 
     
    904904         
    905905            <div class="comments">  
    906  activate to look for the file with a recursive search 
    907  in iodir, homedir, !path + the DATA:TestsData directory if it exists. 
     906 activate to look for the file (with a recursive search if needed) 
     907 in . iodir, homedir, !path + the DATA:TestsData directory if it exists. 
     908</div> 
     909             
     910            <h4 id="_find_keyword_TRYFIND">TRYFIND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
     911               
     912               
     913               
     914               
     915               
     916               
     917               
     918               
     919            </h4> 
     920         
     921            <div class="comments">  
     922 if the file was not found and this keyword is activated, find will call 
     923 itself with the keywords /LOOKALLDIR and /FIRSTFOUND to try to find 
     924 the file we are looking for. Note that if the file was found at the 
     925 first try this keyword as no effect (which is not the case with LOOKALLDIR)  
    908926</div> 
    909927             
     
    954972          <h3>Version history</h3> 
    955973           
    956           <h4>Version</h4><div class="preformat"> $Id: find.pro 136 2006-07-10 15:20:19Z pinsard $</div> 
     974          <h4>Version</h4><div class="preformat"> $Id: find.pro 152 2006-08-10 07:01:35Z smasson $</div> 
    957975          <h4>History</h4><div class="preformat"> Sebastien Masson (smasson@lodyc.jussieu.fr) 
    958976                       28/4/1999 
  • trunk/SRC/Documentation/idldoc_html_output/all-files.html

    r138 r153  
    126126        <li><a href="./Grid/computegrid.html?format=raw" target="file_frame">computegrid.pro</a></li> 
    127127        <li><a href="./ToBeReviewed/HOPE/computehopegrid.html?format=raw" target="file_frame">computehopegrid.pro</a></li> 
    128         <li><a href="./Matrix/congridseb.html?format=raw" target="file_frame">congridseb.pro</a></li> 
     128        <li><a href="./Obsolete/congridseb.html?format=raw" target="file_frame">congridseb.pro</a></li> 
    129129        <li><a href="./Obsolete/cp.html?format=raw" target="file_frame">cp.pro</a></li> 
    130130        <li><a href="./Utilities/createfunc.html?format=raw" target="file_frame">createfunc.pro</a></li> 
     
    300300        <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw" target="file_frame">pltsc.pro</a></li> 
    301301        <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw" target="file_frame">pltt.pro</a></li> 
     302        <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw" target="file_frame">pltv.pro</a></li> 
    302303        <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw" target="file_frame">pltz.pro</a></li> 
    303304        <li><a href="./Postscript/printps.html?format=raw" target="file_frame">printps.pro</a></li> 
     
    466467      </ul> 
    467468 
    468       <div id="tagline">391 files</div> 
     469      <div id="tagline">392 files</div> 
    469470       
    470471 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-categories.html

    r151 r153  
    11591159             
    11601160          </ul> 
     1161        </li>        <li id="idldoc-find_a_file_graphic">find a file graphic <span class="result">(1 routine)</span> 
     1162          <ul> 
     1163             
     1164            <li><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">pltv</a></li> 
     1165             
     1166          </ul> 
    11611167        </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> 
    11621168          <ul> 
     
    15071513             
    15081514          </ul> 
    1509         </li>        <li id="idldoc-utilities">utilities <span class="result">(21 routines)</span> 
     1515        </li>        <li id="idldoc-utilities">utilities <span class="result">(20 routines)</span> 
    15101516          <ul> 
    15111517             
     
    15151521             
    15161522            <li><a href="./ToBeReviewed/MATRICE/colle.html?format=raw#_colle">colle</a></li> 
    1517              
    1518             <li><a href="./Matrix/congridseb.html?format=raw#_congridseb">congridseb</a></li> 
    15191523             
    15201524            <li><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">decoupeterre</a></li> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-B.html

    r151 r153  
    787787        <dd>a keyword from the routine placedessin</dd> 
    788788         
     789        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">BASIC</a></dt> 
     790        <dd>a keyword from the routine triangule_e</dd> 
     791         
    789792        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">BASIC</a></dt> 
    790793        <dd>a keyword from the routine triangule</dd> 
     
    793796        <dd>a keyword from the routine triangule_c</dd> 
    794797         
    795         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">BASIC</a></dt> 
    796         <dd>a keyword from the routine triangule_e</dd> 
    797          
    798798        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">BASICMARGES</a></dt> 
    799799        <dd>a keyword from the routine placedessin</dd> 
     
    811811        <dd>a keyword from the routine SAVEIMAGE</dd> 
    812812         
     813        <dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">BOITE</a></dt> 
     814        <dd>a keyword from the routine nlec5j</dd> 
     815         
     816        <dt><a href="./Obsolete/lec.html?format=raw#_lec">BOITE</a></dt> 
     817        <dd>a keyword from the routine lec</dd> 
     818         
     819        <dt><a href="./Obsolete/lect.html?format=raw#_lect">BOITE</a></dt> 
     820        <dd>a keyword from the routine lect</dd> 
     821         
    813822        <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">BOITE</a></dt> 
    814823        <dd>a keyword from the routine nlec</dd> 
    815824         
    816         <dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">BOITE</a></dt> 
    817         <dd>a keyword from the routine nlec5j</dd> 
    818          
    819825        <dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">BOITE</a></dt> 
    820826        <dd>a keyword from the routine nlecan</dd> 
     
    829835        <dd>a keyword from the routine nlecserie</dd> 
    830836         
    831         <dt><a href="./Obsolete/lec.html?format=raw#_lec">BOITE</a></dt> 
    832         <dd>a keyword from the routine lec</dd> 
    833          
    834         <dt><a href="./Obsolete/lect.html?format=raw#_lect">BOITE</a></dt> 
    835         <dd>a keyword from the routine lect</dd> 
     837        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSCALE">BOTTOM</a></dt> 
     838        <dd>a keyword from the routine IMDISP_IMSCALE</dd> 
     839         
     840        <dt><a href="./Colors/xlct.html?format=raw#_XLct">BOTTOM</a></dt> 
     841        <dd>a keyword from the routine XLct</dd> 
    836842         
    837843        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">BOTTOM</a></dt> 
     
    844850        <dd>a keyword from the routine tvplus</dd> 
    845851         
    846         <dt><a href="./Colors/xlct.html?format=raw#_XLct">BOTTOM</a></dt> 
    847         <dd>a keyword from the routine XLct</dd> 
    848          
    849         <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSCALE">BOTTOM</a></dt> 
    850         <dd>a keyword from the routine IMDISP_IMSCALE</dd> 
     852        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">BOTTOM</a></dt> 
     853        <dd>a keyword from the routine pltv</dd> 
    851854         
    852855        <dt><a href="./ReadWrite/read_grads.html?format=raw#_read_grads">BOX</a></dt> 
    853856        <dd>a keyword from the routine read_grads</dd> 
    854857         
     858        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">BOXZOOM</a></dt> 
     859        <dd>a keyword from the routine pltz</dd> 
     860         
     861        <dt><a href="./ToBeReviewed/WIDGET/slec.html?format=raw#_slec">BOXZOOM</a></dt> 
     862        <dd>a keyword from the routine slec</dd> 
     863         
     864        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">BOXZOOM</a></dt> 
     865        <dd>a keyword from the routine cw_domain</dd> 
     866         
     867        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">BOXZOOM</a></dt> 
     868        <dd>a keyword from the routine read_vermair</dd> 
     869         
     870        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.html?format=raw#_changefile">BOXZOOM</a></dt> 
     871        <dd>a keyword from the routine changefile</dd> 
     872         
     873        <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">BOXZOOM</a></dt> 
     874        <dd>a keyword from the routine grossemoyenne</dd> 
     875         
     876        <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">BOXZOOM</a></dt> 
     877        <dd>a keyword from the routine moyenne</dd> 
     878         
     879        <dt><a href="./ToBeReviewed/CALCULS/norme.html?format=raw#_norme">BOXZOOM</a></dt> 
     880        <dd>a keyword from the routine norme</dd> 
     881         
     882        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield.html?format=raw#_changefield">BOXZOOM</a></dt> 
     883        <dd>a keyword from the routine changefield</dd> 
     884         
     885        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html?format=raw#_buildreadcmd">BOXZOOM</a></dt> 
     886        <dd>a keyword from the routine buildreadcmd</dd> 
     887         
     888        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd.html?format=raw#_buildcmd">BOXZOOM</a></dt> 
     889        <dd>a keyword from the routine buildcmd</dd> 
     890         
     891        <dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">BOXZOOM</a></dt> 
     892        <dd>a keyword from the routine section</dd> 
     893         
     894        <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">BOXZOOM</a></dt> 
     895        <dd>a keyword from the routine read_ncdf</dd> 
     896         
    855897        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">BOXZOOM</a></dt> 
    856898        <dd>a keyword from the routine checkfield</dd> 
    857899         
    858         <dt><a href="./ToBeReviewed/WIDGET/slec.html?format=raw#_slec">BOXZOOM</a></dt> 
    859         <dd>a keyword from the routine slec</dd> 
    860          
    861         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">BOXZOOM</a></dt> 
    862         <dd>a keyword from the routine cw_domain</dd> 
    863          
    864         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">BOXZOOM</a></dt> 
    865         <dd>a keyword from the routine read_vermair</dd> 
    866          
    867         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.html?format=raw#_changefile">BOXZOOM</a></dt> 
    868         <dd>a keyword from the routine changefile</dd> 
    869          
    870         <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">BOXZOOM</a></dt> 
    871         <dd>a keyword from the routine grossemoyenne</dd> 
    872          
    873         <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">BOXZOOM</a></dt> 
    874         <dd>a keyword from the routine moyenne</dd> 
    875          
    876         <dt><a href="./ToBeReviewed/CALCULS/norme.html?format=raw#_norme">BOXZOOM</a></dt> 
    877         <dd>a keyword from the routine norme</dd> 
    878          
    879         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield.html?format=raw#_changefield">BOXZOOM</a></dt> 
    880         <dd>a keyword from the routine changefield</dd> 
    881          
    882         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html?format=raw#_buildreadcmd">BOXZOOM</a></dt> 
    883         <dd>a keyword from the routine buildreadcmd</dd> 
    884          
    885         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd.html?format=raw#_buildcmd">BOXZOOM</a></dt> 
    886         <dd>a keyword from the routine buildcmd</dd> 
    887          
    888         <dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">BOXZOOM</a></dt> 
    889         <dd>a keyword from the routine section</dd> 
    890          
    891         <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">BOXZOOM</a></dt> 
    892         <dd>a keyword from the routine read_ncdf</dd> 
    893          
    894900        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">BOXZOOM</a></dt> 
    895901        <dd>a keyword from the routine plt</dd> 
     
    904910        <dd>a keyword from the routine pltt</dd> 
    905911         
    906         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">BOXZOOM</a></dt> 
    907         <dd>a keyword from the routine pltz</dd> 
     912        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">BOXZOOM</a></dt> 
     913        <dd>a keyword from the routine pltv</dd> 
    908914         
    909915        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">BUTTON_UVALUE</a></dt> 
    910916        <dd>a keyword from the routine CW_BGROUP</dd> 
    911917         
     918        <dt><a href="./Matrix/inter.html?format=raw#_inter">b</a></dt> 
     919        <dd>a parameter from the routine ./Matrix/inter</dd> 
     920         
    912921        <dt><a href="./Matrix/different.html?format=raw#_different">b</a></dt> 
    913922        <dd>a parameter from the routine ./Matrix/different</dd> 
     
    922931        <dd>a parameter from the routine ./Matrix/union</dd> 
    923932         
    924         <dt><a href="./Matrix/inter.html?format=raw#_inter">b</a></dt> 
    925         <dd>a parameter from the routine ./Matrix/inter</dd> 
    926          
    927933        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/bar_plot.html?format=raw#_bar_plot">background</a></dt> 
    928934        <dd>a keyword from the routine bar_plot</dd> 
     
    952958        <dd>a keyword from the routine bar_plot</dd> 
    953959         
     960        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw.html?format=raw#_letsdraw">base</a></dt> 
     961        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw</dd> 
     962         
     963        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html?format=raw#_inserthistory">base</a></dt> 
     964        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory</dd> 
     965         
     966        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/createhistory.html?format=raw#_createhistory">base</a></dt> 
     967        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/createhistory</dd> 
     968         
     969        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.html?format=raw#_changefile">base</a></dt> 
     970        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile</dd> 
     971         
     972        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield.html?format=raw#_changefield">base</a></dt> 
     973        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield</dd> 
     974         
     975        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd.html?format=raw#_buildcmd">base</a></dt> 
     976        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd</dd> 
     977         
     978        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html?format=raw#_buildreadcmd">base</a></dt> 
     979        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd> 
     980         
    954981        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/updatewidget.html?format=raw#_updatewidget">base</a></dt> 
    955982        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/updatewidget</dd> 
    956983         
    957         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw.html?format=raw#_letsdraw">base</a></dt> 
    958         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw</dd> 
    959          
    960         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html?format=raw#_inserthistory">base</a></dt> 
    961         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory</dd> 
    962          
    963         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/createhistory.html?format=raw#_createhistory">base</a></dt> 
    964         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/createhistory</dd> 
    965          
    966         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.html?format=raw#_changefile">base</a></dt> 
    967         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile</dd> 
    968          
    969         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield.html?format=raw#_changefield">base</a></dt> 
    970         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield</dd> 
    971          
    972         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd.html?format=raw#_buildcmd">base</a></dt> 
    973         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd</dd> 
    974          
    975         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html?format=raw#_buildreadcmd">base</a></dt> 
    976         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd> 
    977          
    978984        <dt><a href="./ToBeReviewed/HOPE/domainpart.html?format=raw#_domainpart">basedomain</a></dt> 
    979985        <dd>a parameter from the routine ./ToBeReviewed/HOPE/domainpart</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-C.html

    r151 r153  
    814814        <dd>a keyword from the routine barrecouleur</dd> 
    815815         
     816        <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">CB_TITLE</a></dt> 
     817        <dd>a keyword from the routine COLORBAR</dd> 
     818         
    816819        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">CB_TITLE</a></dt> 
    817820        <dd>a keyword from the routine barrecouleur</dd> 
    818821         
    819         <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">CB_TITLE</a></dt> 
    820         <dd>a keyword from the routine COLORBAR</dd> 
    821          
    822822        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">CB_TITLE</a></dt> 
    823823        <dd>a keyword from the routine placedessin</dd> 
     
    859859        <dd>a keyword from the routine vecteur</dd> 
    860860         
     861        <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">COAST_COLOR</a></dt> 
     862        <dd>a keyword from the routine drawsectionbottom</dd> 
     863         
     864        <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">COAST_COLOR</a></dt> 
     865        <dd>a keyword from the routine tracemask</dd> 
     866         
    861867        <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html?format=raw#_drawcoast_c">COAST_COLOR</a></dt> 
    862868        <dd>a keyword from the routine drawcoast_c</dd> 
    863869         
    864         <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">COAST_COLOR</a></dt> 
    865         <dd>a keyword from the routine tracemask</dd> 
    866          
    867870        <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">COAST_COLOR</a></dt> 
    868871        <dd>a keyword from the routine drawcoast_e</dd> 
    869872         
    870         <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">COAST_COLOR</a></dt> 
    871         <dd>a keyword from the routine drawsectionbottom</dd> 
    872          
    873873        <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">COAST_THICK</a></dt> 
    874874        <dd>a keyword from the routine tracemask</dd> 
     
    883883        <dd>a keyword from the routine drawcoast_c</dd> 
    884884         
     885        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_c.html?format=raw#_triangule_c">COINDESCEND</a></dt> 
     886        <dd>a keyword from the routine triangule_c</dd> 
     887         
     888        <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">COINDESCEND</a></dt> 
     889        <dd>a keyword from the routine decoupeterre</dd> 
     890         
     891        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">COINDESCEND</a></dt> 
     892        <dd>a keyword from the routine triangule_e</dd> 
     893         
     894        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">COINDESCEND</a></dt> 
     895        <dd>a keyword from the routine triangule</dd> 
     896         
     897        <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_completecointerre">COINDESCEND</a></dt> 
     898        <dd>a keyword from the routine completecointerre</dd> 
     899         
    885900        <dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">COINDESCEND</a></dt> 
    886901        <dd>a keyword from the routine fillcornermask</dd> 
    887902         
    888         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">COINDESCEND</a></dt> 
    889         <dd>a keyword from the routine triangule_e</dd> 
    890          
    891         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_c.html?format=raw#_triangule_c">COINDESCEND</a></dt> 
    892         <dd>a keyword from the routine triangule_c</dd> 
    893          
    894         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">COINDESCEND</a></dt> 
    895         <dd>a keyword from the routine triangule</dd> 
    896          
    897         <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_completecointerre">COINDESCEND</a></dt> 
    898         <dd>a keyword from the routine completecointerre</dd> 
    899          
    900         <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">COINDESCEND</a></dt> 
    901         <dd>a keyword from the routine decoupeterre</dd> 
    902          
    903903        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">COINDESCENDMASK</a></dt> 
    904904        <dd>a keyword from the routine pltbase</dd> 
     
    907907        <dd>a keyword from the routine pltbase</dd> 
    908908         
     909        <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">COINMONTE</a></dt> 
     910        <dd>a keyword from the routine decoupeterre</dd> 
     911         
    909912        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">COINMONTE</a></dt> 
    910913        <dd>a keyword from the routine triangule_e</dd> 
    911914         
     915        <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_completecointerre">COINMONTE</a></dt> 
     916        <dd>a keyword from the routine completecointerre</dd> 
     917         
     918        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">COINMONTE</a></dt> 
     919        <dd>a keyword from the routine triangule</dd> 
     920         
    912921        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_c.html?format=raw#_triangule_c">COINMONTE</a></dt> 
    913922        <dd>a keyword from the routine triangule_c</dd> 
    914923         
    915         <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_completecointerre">COINMONTE</a></dt> 
    916         <dd>a keyword from the routine completecointerre</dd> 
    917          
    918         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">COINMONTE</a></dt> 
    919         <dd>a keyword from the routine triangule</dd> 
    920          
    921924        <dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">COINMONTE</a></dt> 
    922925        <dd>a keyword from the routine fillcornermask</dd> 
    923926         
    924         <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">COINMONTE</a></dt> 
    925         <dd>a keyword from the routine decoupeterre</dd> 
    926          
    927927        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">COINMONTEMASK</a></dt> 
    928928        <dd>a keyword from the routine pltbase</dd> 
     
    931931        <dd>a keyword from the routine pltbase</dd> 
    932932         
     933        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">COL1D</a></dt> 
     934        <dd>a keyword from the routine pltsc</dd> 
     935         
     936        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">COL1D</a></dt> 
     937        <dd>a keyword from the routine plt1d</dd> 
     938         
    933939        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">COL1D</a></dt> 
    934940        <dd>a keyword from the routine pltt</dd> 
    935941         
    936         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">COL1D</a></dt> 
    937         <dd>a keyword from the routine plt1d</dd> 
    938          
    939         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">COL1D</a></dt> 
    940         <dd>a keyword from the routine pltsc</dd> 
    941          
    942942        <dt><a href="./Interpolation/clickincell.html?format=raw#_clickincell">COLOR</a></dt> 
    943943        <dd>a keyword from the routine clickincell</dd> 
     
    967967        <dd>a keyword from the routine pltbase</dd> 
    968968         
     969        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">COLOR_c</a></dt> 
     970        <dd>a keyword from the routine barrecouleur</dd> 
     971         
    969972        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">COLOR_c</a></dt> 
    970973        <dd>a keyword from the routine placedessin</dd> 
    971974         
    972         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">COLOR_c</a></dt> 
    973         <dd>a keyword from the routine barrecouleur</dd> 
     975        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">COLUMN</a></dt> 
     976        <dd>a keyword from the routine cw_pagelayout</dd> 
     977         
     978        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">COLUMN</a></dt> 
     979        <dd>a keyword from the routine cw_droplist_pm</dd> 
     980         
     981        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">COLUMN</a></dt> 
     982        <dd>a keyword from the routine cw_slide_slice</dd> 
    974983         
    975984        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html?format=raw#_cw_specifie">COLUMN</a></dt> 
     
    982991        <dd>a keyword from the routine cw_combobox_pm</dd> 
    983992         
    984         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">COLUMN</a></dt> 
    985         <dd>a keyword from the routine cw_droplist_pm</dd> 
    986          
    987         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">COLUMN</a></dt> 
    988         <dd>a keyword from the routine cw_pagelayout</dd> 
    989          
    990         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">COLUMN</a></dt> 
    991         <dd>a keyword from the routine cw_slide_slice</dd> 
    992          
    993993        <dt><a href="./buildinit.html?format=raw#_CW_FIELD2">COLUMN</a></dt> 
    994994        <dd>a keyword from the routine CW_FIELD2</dd> 
     
    10001000        <dd>a keyword from the routine buildreadcmd</dd> 
    10011001         
     1002        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTINTERVALLE</a></dt> 
     1003        <dd>a keyword from the routine plt</dd> 
     1004         
     1005        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTINTERVALLE</a></dt> 
     1006        <dd>a keyword from the routine pltz</dd> 
     1007         
    10021008        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTINTERVALLE</a></dt> 
    10031009        <dd>a keyword from the routine pltt</dd> 
    10041010         
    1005         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTINTERVALLE</a></dt> 
    1006         <dd>a keyword from the routine plt</dd> 
    1007          
    1008         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTINTERVALLE</a></dt> 
     1011        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTLABEL</a></dt> 
    10091012        <dd>a keyword from the routine pltz</dd> 
     1013         
     1014        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTLABEL</a></dt> 
     1015        <dd>a keyword from the routine pltt</dd> 
    10101016         
    10111017        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTLABEL</a></dt> 
    10121018        <dd>a keyword from the routine plt</dd> 
    10131019         
    1014         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTLABEL</a></dt> 
    1015         <dd>a keyword from the routine pltt</dd> 
    1016          
    1017         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTLABEL</a></dt> 
    1018         <dd>a keyword from the routine pltz</dd> 
    1019          
    10201020        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTMAX</a></dt> 
    10211021        <dd>a keyword from the routine pltz</dd> 
    10221022         
     1023        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTMAX</a></dt> 
     1024        <dd>a keyword from the routine pltt</dd> 
     1025         
    10231026        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTMAX</a></dt> 
    10241027        <dd>a keyword from the routine plt</dd> 
    10251028         
    1026         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTMAX</a></dt> 
    1027         <dd>a keyword from the routine pltt</dd> 
     1029        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTMIN</a></dt> 
     1030        <dd>a keyword from the routine pltz</dd> 
    10281031         
    10291032        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTMIN</a></dt> 
    10301033        <dd>a keyword from the routine pltt</dd> 
    10311034         
    1032         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTMIN</a></dt> 
    1033         <dd>a keyword from the routine pltz</dd> 
    1034          
    10351035        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTMIN</a></dt> 
    10361036        <dd>a keyword from the routine plt</dd> 
    10371037         
     1038        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTNLEVEL</a></dt> 
     1039        <dd>a keyword from the routine plt</dd> 
     1040         
    10381041        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTNLEVEL</a></dt> 
    10391042        <dd>a keyword from the routine pltt</dd> 
    10401043         
    1041         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTNLEVEL</a></dt> 
    1042         <dd>a keyword from the routine plt</dd> 
    1043          
    10441044        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTNLEVEL</a></dt> 
    10451045        <dd>a keyword from the routine pltz</dd> 
    10461046         
     1047        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">CONTOUR</a></dt> 
     1048        <dd>a keyword from the routine pltbase</dd> 
     1049         
     1050        <dt><a href="./ToBeReviewed/PLOTS/legende.html?format=raw#_legende">CONTOUR</a></dt> 
     1051        <dd>a keyword from the routine legende</dd> 
     1052         
     1053        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">CONTOUR</a></dt> 
     1054        <dd>a keyword from the routine placedessin</dd> 
     1055         
     1056        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTOUR</a></dt> 
     1057        <dd>a keyword from the routine pltt</dd> 
     1058         
    10471059        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONTOUR</a></dt> 
    10481060        <dd>a keyword from the routine plt</dd> 
    10491061         
    1050         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">CONTOUR</a></dt> 
    1051         <dd>a keyword from the routine pltt</dd> 
    1052          
    1053         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">CONTOUR</a></dt> 
    1054         <dd>a keyword from the routine placedessin</dd> 
    1055          
    10561062        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">CONTOUR</a></dt> 
    10571063        <dd>a keyword from the routine pltz</dd> 
    10581064         
    1059         <dt><a href="./ToBeReviewed/PLOTS/legende.html?format=raw#_legende">CONTOUR</a></dt> 
    1060         <dd>a keyword from the routine legende</dd> 
    1061          
    1062         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">CONTOUR</a></dt> 
    1063         <dd>a keyword from the routine pltbase</dd> 
    1064          
    10651065        <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_completecointerre">CONT_COLOR</a></dt> 
    10661066        <dd>a keyword from the routine completecointerre</dd> 
    10671067         
     1068        <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">CONT_COLOR</a></dt> 
     1069        <dd>a keyword from the routine drawsectionbottom</dd> 
     1070         
    10681071        <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_draw_corner_triangle">CONT_COLOR</a></dt> 
    10691072        <dd>a keyword from the routine draw_corner_triangle</dd> 
    10701073         
    1071         <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">CONT_COLOR</a></dt> 
    1072         <dd>a keyword from the routine drawsectionbottom</dd> 
    1073          
    10741074        <dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">CONT_COLOR</a></dt> 
    10751075        <dd>a keyword from the routine fillcornermask</dd> 
     
    10781078        <dd>a keyword from the routine pltbase</dd> 
    10791079         
     1080        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">CONT_NOFILL</a></dt> 
     1081        <dd>a keyword from the routine pltbase</dd> 
     1082         
    10801083        <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">CONT_NOFILL</a></dt> 
    10811084        <dd>a keyword from the routine drawsectionbottom</dd> 
    10821085         
     1086        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONT_NOFILL</a></dt> 
     1087        <dd>a keyword from the routine plt</dd> 
     1088         
    10831089        <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">CONT_NOFILL</a></dt> 
    10841090        <dd>a keyword from the routine read_ncdf</dd> 
    10851091         
    1086         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">CONT_NOFILL</a></dt> 
    1087         <dd>a keyword from the routine pltbase</dd> 
    1088          
    1089         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">CONT_NOFILL</a></dt> 
    1090         <dd>a keyword from the routine plt</dd> 
    1091          
    10921092        <dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html?format=raw#_xncdf_lec">COUNT</a></dt> 
    10931093        <dd>a keyword from the routine xncdf_lec</dd> 
     
    11201120        <dd>a function from the file buildinit.pro</dd> 
    11211121         
     1122        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">C_MASK</a></dt> 
     1123        <dd>a keyword from the routine pltv</dd> 
     1124         
    11221125        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">C_MASK</a></dt> 
    11231126        <dd>a keyword from the routine tvplus</dd> 
     
    11261129        <dd>a keyword from the routine tvplus</dd> 
    11271130         
     1131        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">C_NAN</a></dt> 
     1132        <dd>a keyword from the routine pltv</dd> 
     1133         
    11281134        <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">C_Timecorrelate</a></dt> 
    11291135        <dd>a function from the file c_timecorrelate.pro</dd> 
     
    11351141        <dd>a parameter from the routine ./ToBeReviewed/STRING/strwhere</dd> 
    11361142         
     1143        <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">Covariance</a></dt> 
     1144        <dd>a keyword from the routine C_Timecorrelate</dd> 
     1145         
    11371146        <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html?format=raw#_A_Correlate2d">Covariance</a></dt> 
    11381147        <dd>a keyword from the routine A_Correlate2d</dd> 
    11391148         
    1140         <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">Covariance</a></dt> 
    1141         <dd>a keyword from the routine C_Timecorrelate</dd> 
    1142          
    11431149        <dt><a href="./ToBeReviewed/CALCULS/determ2.html?format=raw#_determ2">c</a></dt> 
    11441150        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/determ2</dd> 
     
    14261432        <dd>a file from the directory ./ToBeReviewed/HOPE</dd> 
    14271433         
    1428         <dt><a href="./Matrix/congridseb.html?format=raw#_congridseb">congridseb</a></dt> 
     1434        <dt><a href="./Obsolete/congridseb.html?format=raw#_congridseb">congridseb</a></dt> 
    14291435        <dd>a function from the file congridseb.pro</dd> 
    14301436         
    1431         <dt><a href="Matrix/congridseb.html?format=raw">congridseb.pro</a></dt> 
    1432         <dd>a file from the directory ./Matrix</dd> 
     1437        <dt><a href="Obsolete/congridseb.html?format=raw">congridseb.pro</a></dt> 
     1438        <dd>a file from the directory ./Obsolete</dd> 
    14331439         
    14341440        <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html?format=raw#_label_gmt">coul</a></dt> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-D.html

    r151 r153  
    862862        <dd>a keyword from the routine SHOWIMAGE</dd> 
    863863         
     864        <dt><a href="./Picture/saveimage.html?format=raw#_SAVEIMAGE">DITHER</a></dt> 
     865        <dd>a keyword from the routine SAVEIMAGE</dd> 
     866         
    864867        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">DITHER</a></dt> 
    865868        <dd>a keyword from the routine IMDISP</dd> 
    866869         
    867         <dt><a href="./Picture/saveimage.html?format=raw#_SAVEIMAGE">DITHER</a></dt> 
    868         <dd>a keyword from the routine SAVEIMAGE</dd> 
    869          
    870870        <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">DIVISIONS</a></dt> 
    871871        <dd>a keyword from the routine COLORBAR</dd> 
     
    874874        <dd>a keyword from the routine A_TimeCorrelate</dd> 
    875875         
     876        <dt><a href="./Obsolete/meshlec.html?format=raw#_meshlec">DOUBLE</a></dt> 
     877        <dd>a keyword from the routine meshlec</dd> 
     878         
     879        <dt><a href="./Interpolation/get_gridparams.html?format=raw#_get_gridparams">DOUBLE</a></dt> 
     880        <dd>a keyword from the routine get_gridparams</dd> 
     881         
    876882        <dt><a href="./Interpolation/angle.html?format=raw#_fsnspp">DOUBLE</a></dt> 
    877883        <dd>a keyword from the routine fsnspp</dd> 
    878884         
     885        <dt><a href="./Interpolation/inquad.html?format=raw#_inquad">DOUBLE</a></dt> 
     886        <dd>a keyword from the routine inquad</dd> 
     887         
    879888        <dt><a href="./Interpolation/angle.html?format=raw#_angle">DOUBLE</a></dt> 
    880889        <dd>a keyword from the routine angle</dd> 
    881890         
    882         <dt><a href="./Interpolation/get_gridparams.html?format=raw#_get_gridparams">DOUBLE</a></dt> 
    883         <dd>a keyword from the routine get_gridparams</dd> 
    884          
    885         <dt><a href="./Obsolete/meshlec.html?format=raw#_meshlec">DOUBLE</a></dt> 
    886         <dd>a keyword from the routine meshlec</dd> 
    887          
    888         <dt><a href="./Interpolation/inquad.html?format=raw#_inquad">DOUBLE</a></dt> 
    889         <dd>a keyword from the routine inquad</dd> 
    890          
    891891        <dt><a href="./Interpolation/clickincell.html?format=raw#_clickincell">DRAWCELL</a></dt> 
    892892        <dd>a keyword from the routine clickincell</dd> 
     
    904904        <dd>a keyword from the routine VELOVECT</dd> 
    905905         
     906        <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_TimeCross_Cov">Double</a></dt> 
     907        <dd>a keyword from the routine TimeCross_Cov</dd> 
     908         
     909        <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">Double</a></dt> 
     910        <dd>a keyword from the routine C_Timecorrelate</dd> 
     911         
     912        <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html?format=raw#_Auto_Cov2d">Double</a></dt> 
     913        <dd>a keyword from the routine Auto_Cov2d</dd> 
     914         
     915        <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html?format=raw#_A_Correlate2d">Double</a></dt> 
     916        <dd>a keyword from the routine A_Correlate2d</dd> 
     917         
    906918        <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_TimeAuto_Cov">Double</a></dt> 
    907919        <dd>a keyword from the routine TimeAuto_Cov</dd> 
    908920         
    909         <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html?format=raw#_A_Correlate2d">Double</a></dt> 
    910         <dd>a keyword from the routine A_Correlate2d</dd> 
    911          
    912         <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_TimeCross_Cov">Double</a></dt> 
    913         <dd>a keyword from the routine TimeCross_Cov</dd> 
    914          
    915         <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_C_Timecorrelate">Double</a></dt> 
    916         <dd>a keyword from the routine C_Timecorrelate</dd> 
    917          
    918         <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html?format=raw#_Auto_Cov2d">Double</a></dt> 
    919         <dd>a keyword from the routine Auto_Cov2d</dd> 
    920          
    921921        <dt><a href="./ToBeReviewed/CALCULS/determ2.html?format=raw#_determ2">d</a></dt> 
    922922        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/determ2</dd> 
     
    928928        <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_read</dd> 
    929929         
     930        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">data</a></dt> 
     931        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltv</dd> 
     932         
    930933        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html?format=raw#_selectfile">datafilename</a></dt> 
    931934        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile</dd> 
     
    940943        <dd>a parameter from the routine ./Interpolation/fromirr</dd> 
    941944         
     945        <dt><a href="./ToBeReviewed/CALENDRIER/def_month.html?format=raw#_def_month">date</a></dt> 
     946        <dd>a parameter from the routine ./ToBeReviewed/CALENDRIER/def_month</dd> 
     947         
    942948        <dt><a href="./Obsolete/vraidate.html?format=raw#_vraidate">date</a></dt> 
    943949        <dd>a parameter from the routine ./Obsolete/vraidate</dd> 
     
    946952        <dd>a parameter from the routine ./Obsolete/lec</dd> 
    947953         
    948         <dt><a href="./ToBeReviewed/CALENDRIER/def_month.html?format=raw#_def_month">date</a></dt> 
    949         <dd>a parameter from the routine ./ToBeReviewed/CALENDRIER/def_month</dd> 
    950          
    951954        <dt><a href="./Calendar/date2jul.html?format=raw#_date2jul">date</a></dt> 
    952955        <dd>a parameter from the routine ./Calendar/date2jul</dd> 
     
    955958        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd> 
    956959         
     960        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib.html?format=raw#_read_grib">date1</a></dt> 
     961        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib</dd> 
     962         
    957963        <dt><a href="./Obsolete/lect.html?format=raw#_lect">date1</a></dt> 
    958964        <dd>a parameter from the routine ./Obsolete/lect</dd> 
    959965         
    960         <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib.html?format=raw#_read_grib">date1</a></dt> 
    961         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib</dd> 
    962          
    963966        <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">date1</a></dt> 
    964967        <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 
     
    967970        <dd>a parameter from the routine ./ReadWrite/read_grads</dd> 
    968971         
     972        <dt><a href="./ReadWrite/read_grads.html?format=raw#_read_grads">date2</a></dt> 
     973        <dd>a parameter from the routine ./ReadWrite/read_grads</dd> 
     974         
     975        <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">date2</a></dt> 
     976        <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 
     977         
    969978        <dt><a href="./Obsolete/lect.html?format=raw#_lect">date2</a></dt> 
    970979        <dd>a parameter from the routine ./Obsolete/lect</dd> 
    971980         
    972         <dt><a href="./ReadWrite/read_grads.html?format=raw#_read_grads">date2</a></dt> 
    973         <dd>a parameter from the routine ./ReadWrite/read_grads</dd> 
    974          
    975         <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">date2</a></dt> 
    976         <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 
    977          
    978981        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib.html?format=raw#_read_grib">date2</a></dt> 
    979982        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib</dd> 
     
    10061009        <dd>a file from the directory ./Calendar</dd> 
    10071010         
     1011        <dt><a href="./ToBeReviewed/WIDGET/slec.html?format=raw#_slec">debut</a></dt> 
     1012        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd> 
     1013         
    10081014        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">debut</a></dt> 
    10091015        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair</dd> 
     
    10121018        <dd>a parameter from the routine ./Obsolete/nlec</dd> 
    10131019         
    1014         <dt><a href="./ToBeReviewed/WIDGET/slec.html?format=raw#_slec">debut</a></dt> 
    1015         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd> 
    1016          
    10171020        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html?format=raw#_decind">decind</a></dt> 
    10181021        <dd>a function from the file cw_slider_pm.pro</dd> 
     
    11591162        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ftp</dd> 
    11601163         
     1164        <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">direc</a></dt> 
     1165        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grossemoyenne</dd> 
     1166         
     1167        <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">direc</a></dt> 
     1168        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd> 
     1169         
     1170        <dt><a href="./ToBeReviewed/CALCULS/grad.html?format=raw#_grad">direc</a></dt> 
     1171        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grad</dd> 
     1172         
    11611173        <dt><a href="./Obsolete/lect.html?format=raw#_lect">direc</a></dt> 
    11621174        <dd>a parameter from the routine ./Obsolete/lect</dd> 
    11631175         
    1164         <dt><a href="./ToBeReviewed/CALCULS/grad.html?format=raw#_grad">direc</a></dt> 
    1165         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grad</dd> 
    1166          
    1167         <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">direc</a></dt> 
    1168         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd> 
    1169          
    1170         <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">direc</a></dt> 
    1171         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grossemoyenne</dd> 
    1172          
    11731176        <dt><a href="./Utilities/isadirectory.html?format=raw#_isadirectory">directoryin</a></dt> 
    11741177        <dd>a parameter from the routine ./Utilities/isadirectory</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-G.html

    r151 r153  
    362362table.variables td.image { width: 64px; } 
    363363 
    364 div#file_comments { white-space: pre; white-space: pre;  
     364div#file_comments { white-space: pre; white-space: pre; white-space: pre;  
    365365  margin: 2em; 
    366366  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-H.html

    r151 r153  
    362362table.variables td.image { width: 64px; } 
    363363 
    364 div#file_comments { white-space: pre; white-space: pre;  
     364div#file_comments { white-space: pre; white-space: pre; white-space: pre;  
    365365  margin: 2em; 
    366366  font-size: 80%; 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-M.html

    r151 r153  
    781781      <dl> 
    782782         
     783        <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_TimeAuto_Cov">M</a></dt> 
     784        <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate</dd> 
     785         
    783786        <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_TimeCross_Cov">M</a></dt> 
    784787        <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate</dd> 
    785788         
    786         <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_TimeAuto_Cov">M</a></dt> 
    787         <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate</dd> 
    788          
    789789        <dt><a href="./ToBeReviewed/STRING/strsci.html?format=raw#_StrSci">MANTISSA_ONLY</a></dt> 
    790790        <dd>a keyword from the routine StrSci</dd> 
    791791         
     792        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">MAP</a></dt> 
     793        <dd>a keyword from the routine placedessin</dd> 
     794         
     795        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">MAP</a></dt> 
     796        <dd>a keyword from the routine CW_BGROUP</dd> 
     797         
    792798        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">MAP</a></dt> 
    793799        <dd>a keyword from the routine plt</dd> 
    794800         
    795         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">MAP</a></dt> 
    796         <dd>a keyword from the routine placedessin</dd> 
    797          
    798         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">MAP</a></dt> 
    799         <dd>a keyword from the routine CW_BGROUP</dd> 
    800          
    801801        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">MARGES</a></dt> 
    802802        <dd>a keyword from the routine placedessin</dd> 
    803803         
     804        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSIZE">MARGIN</a></dt> 
     805        <dd>a keyword from the routine IMDISP_IMSIZE</dd> 
     806         
     807        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">MARGIN</a></dt> 
     808        <dd>a keyword from the routine IMDISP</dd> 
     809         
    804810        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_GETPOS">MARGIN</a></dt> 
    805811        <dd>a keyword from the routine IMDISP_GETPOS</dd> 
    806812         
    807         <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSIZE">MARGIN</a></dt> 
    808         <dd>a keyword from the routine IMDISP_IMSIZE</dd> 
    809          
    810         <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">MARGIN</a></dt> 
    811         <dd>a keyword from the routine IMDISP</dd> 
     813        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">MASK</a></dt> 
     814        <dd>a keyword from the routine tvplus</dd> 
    812815         
    813816        <dt><a href="./ToBeReviewed/LECTURE/litchamp.html?format=raw#_litchamp">MASK</a></dt> 
     
    817820        <dd>a keyword from the routine computegrid</dd> 
    818821         
    819         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">MASK</a></dt> 
    820         <dd>a keyword from the routine tvplus</dd> 
     822        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">MASKFILL</a></dt> 
     823        <dd>a keyword from the routine pltz</dd> 
    821824         
    822825        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">MASKFILL</a></dt> 
    823826        <dd>a keyword from the routine plt</dd> 
    824827         
    825         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">MASKFILL</a></dt> 
    826         <dd>a keyword from the routine pltz</dd> 
    827          
    828828        <dt><a href="./ToBeReviewed/INIT/initncdf.html?format=raw#_initncdf">MASKNAME</a></dt> 
    829829        <dd>a keyword from the routine initncdf</dd> 
     
    832832        <dd>a keyword from the routine pltbase</dd> 
    833833         
     834        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">MASKVAL</a></dt> 
     835        <dd>a keyword from the routine pltv</dd> 
     836         
     837        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">MAX</a></dt> 
     838        <dd>a keyword from the routine barrecouleur</dd> 
     839         
     840        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">MAX</a></dt> 
     841        <dd>a keyword from the routine tvplus</dd> 
     842         
    834843        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">MAX</a></dt> 
    835844        <dd>a keyword from the routine checktypeminmax</dd> 
    836845         
    837         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">MAX</a></dt> 
    838         <dd>a keyword from the routine tvplus</dd> 
    839          
    840846        <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">MAX</a></dt> 
    841847        <dd>a keyword from the routine COLORBAR</dd> 
     
    844850        <dd>a keyword from the routine cw_slider_pm</dd> 
    845851         
     852        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">MAXIN</a></dt> 
     853        <dd>a keyword from the routine pltz</dd> 
     854         
     855        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">MAXIN</a></dt> 
     856        <dd>a keyword from the routine pltv</dd> 
     857         
    846858        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">MAXIN</a></dt> 
    847859        <dd>a keyword from the routine pltt</dd> 
     
    850862        <dd>a keyword from the routine determineminmax</dd> 
    851863         
    852         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">MAXIN</a></dt> 
    853         <dd>a keyword from the routine pltz</dd> 
    854          
    855864        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">MAXIN</a></dt> 
    856865        <dd>a keyword from the routine plt1d</dd> 
     
    877886        <dd>a keyword from the routine Map_npoints</dd> 
    878887         
     888        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">MIN</a></dt> 
     889        <dd>a keyword from the routine barrecouleur</dd> 
     890         
    879891        <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">MIN</a></dt> 
    880892        <dd>a keyword from the routine COLORBAR</dd> 
     
    892904        <dd>a keyword from the routine pltt</dd> 
    893905         
     906        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">MININ</a></dt> 
     907        <dd>a keyword from the routine pltz</dd> 
     908         
     909        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">MININ</a></dt> 
     910        <dd>a keyword from the routine determineminmax</dd> 
     911         
     912        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">MININ</a></dt> 
     913        <dd>a keyword from the routine pltv</dd> 
     914         
    894915        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">MININ</a></dt> 
    895916        <dd>a keyword from the routine plt</dd> 
     
    898919        <dd>a keyword from the routine plt1d</dd> 
    899920         
    900         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">MININ</a></dt> 
    901         <dd>a keyword from the routine pltz</dd> 
    902          
    903         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">MININ</a></dt> 
    904         <dd>a keyword from the routine determineminmax</dd> 
    905          
    906921        <dt><a href="./Interpolation/extrapolate.html?format=raw#_extrapolate">MINVAL</a></dt> 
    907922        <dd>a keyword from the routine extrapolate</dd> 
     
    964979        <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre</dd> 
    965980         
     981        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">mask</a></dt> 
     982        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltbase</dd> 
     983         
    966984        <dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">mask</a></dt> 
    967985        <dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd> 
    968986         
     987        <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">mask</a></dt> 
     988        <dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd> 
     989         
     990        <dt><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw#_remplit">mask</a></dt> 
     991        <dd>a keyword from the routine remplit</dd> 
     992         
     993        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">mask</a></dt> 
     994        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd> 
     995         
     996        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">mask</a></dt> 
     997        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd> 
     998         
    969999        <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html?format=raw#_drawcoast_c">mask</a></dt> 
    9701000        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_c</dd> 
    9711001         
    972         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">mask</a></dt> 
    973         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd> 
    974          
    975         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">mask</a></dt> 
    976         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd> 
    977          
    978         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">mask</a></dt> 
    979         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltbase</dd> 
    980          
    981         <dt><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw#_remplit">mask</a></dt> 
    982         <dd>a keyword from the routine remplit</dd> 
    983          
    9841002        <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">mask</a></dt> 
    9851003        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_e</dd> 
    9861004         
    987         <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">mask</a></dt> 
    988         <dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd> 
     1005        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">maskentree</a></dt> 
     1006        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule_e</dd> 
     1007         
     1008        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_c.html?format=raw#_triangule_c">maskentree</a></dt> 
     1009        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule_c</dd> 
     1010         
     1011        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">maskentree</a></dt> 
     1012        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule</dd> 
    9891013         
    9901014        <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">maskentree</a></dt> 
    9911015        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/tracemask</dd> 
    9921016         
    993         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_c.html?format=raw#_triangule_c">maskentree</a></dt> 
    994         <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule_c</dd> 
    995          
    996         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html?format=raw#_triangule_e">maskentree</a></dt> 
    997         <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule_e</dd> 
    998          
    999         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">maskentree</a></dt> 
    1000         <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule</dd> 
    1001          
    10021017        <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">maskin</a></dt> 
    10031018        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawsectionbottom</dd> 
     
    10091024        <dd>a file from the directory ./Textoidl</dd> 
    10101025         
    1011         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">max</a></dt> 
    1012         <dd>a keyword from the routine barrecouleur</dd> 
     1026        <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html?format=raw#_label_gmt">max</a></dt> 
     1027        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd> 
    10131028         
    10141029        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html?format=raw#_autoscale">max</a></dt> 
    10151030        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/autoscale</dd> 
    10161031         
    1017         <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html?format=raw#_label_gmt">max</a></dt> 
    1018         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd> 
     1032        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">max</a></dt> 
     1033        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltv</dd> 
    10191034         
    10201035        <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">max</a></dt> 
     
    10601075        <dd>a file from the directory ./Grid</dd> 
    10611076         
    1062         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">min</a></dt> 
    1063         <dd>a keyword from the routine barrecouleur</dd> 
     1077        <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">min</a></dt> 
     1078        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd> 
    10641079         
    10651080        <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html?format=raw#_label_gmt">min</a></dt> 
    10661081        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd> 
    10671082         
     1083        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">min</a></dt> 
     1084        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltv</dd> 
     1085         
    10681086        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html?format=raw#_autoscale">min</a></dt> 
    10691087        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/autoscale</dd> 
    10701088         
    1071         <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">min</a></dt> 
    1072         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd> 
    1073          
    10741089        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">min1</a></dt> 
    10751090        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltsc</dd> 
     
    10901105        <dd>a parameter from the routine ./Obsolete/jourdsmois</dd> 
    10911106         
     1107        <dt><a href="./Calendar/daysinmonth.html?format=raw#_daysinmonth">month</a></dt> 
     1108        <dd>a parameter from the routine ./Calendar/daysinmonth</dd> 
     1109         
     1110        <dt><a href="./Calendar/monthname.html?format=raw#_monthname">month</a></dt> 
     1111        <dd>a parameter from the routine ./Calendar/monthname</dd> 
     1112         
    10921113        <dt><a href="./Calendar/caldat.html?format=raw#_CALDAT">month</a></dt> 
    10931114        <dd>a parameter from the routine ./Calendar/caldat</dd> 
    10941115         
    1095         <dt><a href="./Calendar/monthname.html?format=raw#_monthname">month</a></dt> 
    1096         <dd>a parameter from the routine ./Calendar/monthname</dd> 
    1097          
    1098         <dt><a href="./Calendar/daysinmonth.html?format=raw#_daysinmonth">month</a></dt> 
    1099         <dd>a parameter from the routine ./Calendar/daysinmonth</dd> 
    1100          
    11011116        <dt><a href="./Calendar/monthname.html?format=raw#_monthname">monthname</a></dt> 
    11021117        <dd>a function from the file monthname.pro</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-N.html

    r151 r153  
    793793        <dd>a keyword from the routine GETCOLOR</dd> 
    794794         
     795        <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">NAN</a></dt> 
     796        <dd>a keyword from the routine moyenne</dd> 
     797         
     798        <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">NAN</a></dt> 
     799        <dd>a keyword from the routine nlec</dd> 
     800         
     801        <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">NAN</a></dt> 
     802        <dd>a keyword from the routine grossemoyenne</dd> 
     803         
     804        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">NAN</a></dt> 
     805        <dd>a keyword from the routine pltbase</dd> 
     806         
    795807        <dt><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw#_remplit">NAN</a></dt> 
    796808        <dd>a keyword from the routine remplit</dd> 
    797809         
    798         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">NAN</a></dt> 
    799         <dd>a keyword from the routine pltbase</dd> 
    800          
    801         <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">NAN</a></dt> 
    802         <dd>a keyword from the routine grossemoyenne</dd> 
    803          
    804         <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">NAN</a></dt> 
    805         <dd>a keyword from the routine moyenne</dd> 
    806          
    807         <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">NAN</a></dt> 
    808         <dd>a keyword from the routine nlec</dd> 
    809          
    810810        <dt><a href="./Obsolete/imprime.html?format=raw#_imprime">NB</a></dt> 
    811811        <dd>a keyword from the routine imprime</dd> 
    812812         
     813        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">NCOLORS</a></dt> 
     814        <dd>a keyword from the routine pltv</dd> 
     815         
    813816        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSCALE">NCOLORS</a></dt> 
    814817        <dd>a keyword from the routine IMDISP_IMSCALE</dd> 
    815818         
     819        <dt><a href="./Colors/xlct.html?format=raw#_XLct">NCOLORS</a></dt> 
     820        <dd>a keyword from the routine XLct</dd> 
     821         
     822        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">NCOLORS</a></dt> 
     823        <dd>a keyword from the routine tvplus</dd> 
     824         
     825        <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">NCOLORS</a></dt> 
     826        <dd>a keyword from the routine COLORBAR</dd> 
     827         
    816828        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">NCOLORS</a></dt> 
    817829        <dd>a keyword from the routine IMDISP</dd> 
    818830         
    819         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">NCOLORS</a></dt> 
    820         <dd>a keyword from the routine tvplus</dd> 
    821          
    822         <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">NCOLORS</a></dt> 
    823         <dd>a keyword from the routine COLORBAR</dd> 
    824          
    825         <dt><a href="./Colors/xlct.html?format=raw#_XLct">NCOLORS</a></dt> 
    826         <dd>a keyword from the routine XLct</dd> 
     831        <dt><a href="./Calendar/caldat.html?format=raw#_CALDAT">NDAYSPM</a></dt> 
     832        <dd>a keyword from the routine CALDAT</dd> 
    827833         
    828834        <dt><a href="./Calendar/julday.html?format=raw#_JULDAY">NDAYSPM</a></dt> 
    829835        <dd>a keyword from the routine JULDAY</dd> 
    830836         
    831         <dt><a href="./Calendar/caldat.html?format=raw#_CALDAT">NDAYSPM</a></dt> 
    832         <dd>a keyword from the routine CALDAT</dd> 
     837        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">NEGATIVE</a></dt> 
     838        <dd>a keyword from the routine IMDISP</dd> 
    833839         
    834840        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMSCALE">NEGATIVE</a></dt> 
    835841        <dd>a keyword from the routine IMDISP_IMSCALE</dd> 
    836842         
    837         <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">NEGATIVE</a></dt> 
    838         <dd>a keyword from the routine IMDISP</dd> 
    839          
    840843        <dt><a href="./Utilities/isafile.html?format=raw#_isafile">NEW</a></dt> 
    841844        <dd>a keyword from the routine isafile</dd> 
     
    847850        <dd>a keyword from the routine remplit</dd> 
    848851         
     852        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">NLEVEL</a></dt> 
     853        <dd>a keyword from the routine pltz</dd> 
     854         
     855        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">NLEVEL</a></dt> 
     856        <dd>a keyword from the routine pltt</dd> 
     857         
     858        <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">NLEVEL</a></dt> 
     859        <dd>a keyword from the routine label</dd> 
     860         
    849861        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">NLEVEL</a></dt> 
    850862        <dd>a keyword from the routine plt</dd> 
    851863         
    852         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">NLEVEL</a></dt> 
    853         <dd>a keyword from the routine pltz</dd> 
    854          
    855         <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html?format=raw#_label">NLEVEL</a></dt> 
    856         <dd>a keyword from the routine label</dd> 
    857          
    858         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">NLEVEL</a></dt> 
    859         <dd>a keyword from the routine pltt</dd> 
    860          
    861864        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/updatewidget.html?format=raw#_updatewidget">NOBOXZOOM</a></dt> 
    862865        <dd>a keyword from the routine updatewidget</dd> 
     
    889892        <dd>a keyword from the routine placedessin</dd> 
    890893         
     894        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">NOFILL</a></dt> 
     895        <dd>a keyword from the routine placedessin</dd> 
     896         
    891897        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">NOFILL</a></dt> 
    892898        <dd>a keyword from the routine barrecouleur</dd> 
     
    895901        <dd>a keyword from the routine pltbase</dd> 
    896902         
    897         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">NOFILL</a></dt> 
    898         <dd>a keyword from the routine placedessin</dd> 
    899          
    900903        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">NOINTERP</a></dt> 
    901904        <dd>a keyword from the routine tvplus</dd> 
    902905         
     906        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">NOINTERP</a></dt> 
     907        <dd>a keyword from the routine pltv</dd> 
     908         
     909        <dt><a href="./ToBeReviewed/CALCULS/level2depth.html?format=raw#_level2depth">NOMASK</a></dt> 
     910        <dd>a keyword from the routine level2depth</dd> 
     911         
     912        <dt><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html?format=raw#_depth2floatlevel">NOMASK</a></dt> 
     913        <dd>a keyword from the routine depth2floatlevel</dd> 
     914         
     915        <dt><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw#_depth2level">NOMASK</a></dt> 
     916        <dd>a keyword from the routine depth2level</dd> 
     917         
    903918        <dt><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html?format=raw#_floatlevel2depth">NOMASK</a></dt> 
    904919        <dd>a keyword from the routine floatlevel2depth</dd> 
    905920         
    906         <dt><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html?format=raw#_depth2floatlevel">NOMASK</a></dt> 
    907         <dd>a keyword from the routine depth2floatlevel</dd> 
    908          
    909         <dt><a href="./ToBeReviewed/CALCULS/level2depth.html?format=raw#_level2depth">NOMASK</a></dt> 
    910         <dd>a keyword from the routine level2depth</dd> 
    911          
    912         <dt><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw#_depth2level">NOMASK</a></dt> 
    913         <dd>a keyword from the routine depth2level</dd> 
    914          
    915921        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">NONEXCLUSIVE</a></dt> 
    916922        <dd>a keyword from the routine CW_BGROUP</dd> 
    917923         
     924        <dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">NONORTHERNLINE</a></dt> 
     925        <dd>a keyword from the routine compute_fromreg_imoms3_weigaddr</dd> 
     926         
     927        <dt><a href="./Interpolation/fromreg.html?format=raw#_fromreg">NONORTHERNLINE</a></dt> 
     928        <dd>a keyword from the routine fromreg</dd> 
     929         
    918930        <dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">NONORTHERNLINE</a></dt> 
    919931        <dd>a keyword from the routine compute_fromreg_bilinear_weigaddr</dd> 
    920932         
    921         <dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">NONORTHERNLINE</a></dt> 
    922         <dd>a keyword from the routine compute_fromreg_imoms3_weigaddr</dd> 
    923          
    924         <dt><a href="./Interpolation/fromreg.html?format=raw#_fromreg">NONORTHERNLINE</a></dt> 
    925         <dd>a keyword from the routine fromreg</dd> 
     933        <dt><a href="./Interpolation/inquad.html?format=raw#_inquad">NOPRINT</a></dt> 
     934        <dd>a keyword from the routine inquad</dd> 
    926935         
    927936        <dt><a href="./ToBeReviewed/STRUCTURE/where_tag.html?format=raw#_where_Tag">NOPRINT</a></dt> 
    928937        <dd>a keyword from the routine where_Tag</dd> 
    929938         
    930         <dt><a href="./Interpolation/inquad.html?format=raw#_inquad">NOPRINT</a></dt> 
    931         <dd>a keyword from the routine inquad</dd> 
    932          
    933939        <dt><a href="./Utilities/find.html?format=raw#_find">NOPRO</a></dt> 
    934940        <dd>a keyword from the routine find</dd> 
     
    937943        <dd>a keyword from the routine checkfield</dd> 
    938944         
     945        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">NOREINITPLT</a></dt> 
     946        <dd>a keyword from the routine splot</dd> 
     947         
     948        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">NOREINITPLT</a></dt> 
     949        <dd>a keyword from the routine scontour</dd> 
     950         
    939951        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html?format=raw#_sbar_plot">NOREINITPLT</a></dt> 
    940952        <dd>a keyword from the routine sbar_plot</dd> 
    941953         
    942         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">NOREINITPLT</a></dt> 
    943         <dd>a keyword from the routine splot</dd> 
    944          
    945         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">NOREINITPLT</a></dt> 
    946         <dd>a keyword from the routine scontour</dd> 
    947          
    948954        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">NORESIZE</a></dt> 
    949955        <dd>a keyword from the routine IMDISP</dd> 
     
    955961        <dd>a keyword from the routine IMDISP</dd> 
    956962         
     963        <dt><a href="./Interpolation/fromreg.html?format=raw#_fromreg">NOSOUTHERNLINE</a></dt> 
     964        <dd>a keyword from the routine fromreg</dd> 
     965         
    957966        <dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html?format=raw#_compute_fromreg_imoms3_weigaddr">NOSOUTHERNLINE</a></dt> 
    958967        <dd>a keyword from the routine compute_fromreg_imoms3_weigaddr</dd> 
    959968         
    960         <dt><a href="./Interpolation/fromreg.html?format=raw#_fromreg">NOSOUTHERNLINE</a></dt> 
    961         <dd>a keyword from the routine fromreg</dd> 
    962          
    963969        <dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html?format=raw#_compute_fromreg_bilinear_weigaddr">NOSOUTHERNLINE</a></dt> 
    964970        <dd>a keyword from the routine compute_fromreg_bilinear_weigaddr</dd> 
    965971         
     972        <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">NOSTRUCT</a></dt> 
     973        <dd>a keyword from the routine read_ncdf</dd> 
     974         
    966975        <dt><a href="./ReadWrite/read_grads.html?format=raw#_read_grads">NOSTRUCT</a></dt> 
    967976        <dd>a keyword from the routine read_grads</dd> 
    968977         
    969         <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">NOSTRUCT</a></dt> 
    970         <dd>a keyword from the routine read_ncdf</dd> 
    971          
    972978        <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">NOTITLE</a></dt> 
    973979        <dd>a keyword from the routine COLORBAR</dd> 
     
    10001006        <dd>a parameter from the routine ./ToBeReviewed/STRING/getwrd</dd> 
    10011007         
     1008        <dt><a href="./ReadWrite/readoldopadistcoast.html?format=raw#_readoldopadistcoast">NUMREC</a></dt> 
     1009        <dd>a keyword from the routine readoldopadistcoast</dd> 
     1010         
    10021011        <dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_readoldoparestart">NUMREC</a></dt> 
    10031012        <dd>a keyword from the routine readoldoparestart</dd> 
    10041013         
    1005         <dt><a href="./ReadWrite/readoldopadistcoast.html?format=raw#_readoldopadistcoast">NUMREC</a></dt> 
    1006         <dd>a keyword from the routine readoldopadistcoast</dd> 
     1014        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html?format=raw#_ROTATION">NX</a></dt> 
     1015        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation</dd> 
    10071016         
    10081017        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMREGRID">NX</a></dt> 
    10091018        <dd>a parameter from the routine ./Picture/imdisp</dd> 
    10101019         
    1011         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html?format=raw#_ROTATION">NX</a></dt> 
    1012         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation</dd> 
     1020        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMREGRID">NY</a></dt> 
     1021        <dd>a parameter from the routine ./Picture/imdisp</dd> 
    10131022         
    10141023        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html?format=raw#_ROTATION">NY</a></dt> 
    10151024        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation</dd> 
    10161025         
    1017         <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP_IMREGRID">NY</a></dt> 
    1018         <dd>a parameter from the routine ./Picture/imdisp</dd> 
    1019          
    10201026        <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_TimeCross_Cov">Ndim</a></dt> 
    10211027        <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate</dd> 
     
    10241030        <dd>a parameter from the routine ./ToBeReviewed/STRUCTURE/where_tag</dd> 
    10251031         
     1032        <dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">n</a></dt> 
     1033        <dd>a parameter from the routine ./Interpolation/cutsegment</dd> 
     1034         
    10261035        <dt><a href="./Interpolation/cutpar.html?format=raw#_cutpar">n</a></dt> 
    10271036        <dd>a parameter from the routine ./Interpolation/cutpar</dd> 
    10281037         
    1029         <dt><a href="./Interpolation/cutsegment.html?format=raw#_cutsegment">n</a></dt> 
    1030         <dd>a parameter from the routine ./Interpolation/cutsegment</dd> 
     1038        <dt><a href="./Obsolete/zeroun.html?format=raw#_zeroun">n1</a></dt> 
     1039        <dd>a parameter from the routine ./Obsolete/zeroun</dd> 
     1040         
     1041        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_1d">n1</a></dt> 
     1042        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
    10311043         
    10321044        <dt><a href="./ToBeReviewed/POSTSCRIPT/chcolps.html?format=raw#_chcolps">n1</a></dt> 
    10331045        <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/chcolps</dd> 
    10341046         
    1035         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_1d">n1</a></dt> 
    1036         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
    1037          
    1038         <dt><a href="./Obsolete/zeroun.html?format=raw#_zeroun">n1</a></dt> 
    1039         <dd>a parameter from the routine ./Obsolete/zeroun</dd> 
    1040          
    10411047        <dt><a href="./Matrix/zero_one.html?format=raw#_zero_one">n1</a></dt> 
    10421048        <dd>a parameter from the routine ./Matrix/zero_one</dd> 
     
    10841090        <dd>a file from the directory ./Grid</dd> 
    10851091         
     1092        <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_TimeAuto_Cov">nT</a></dt> 
     1093        <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate</dd> 
     1094         
    10861095        <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html?format=raw#_TimeCross_Cov">nT</a></dt> 
    10871096        <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate</dd> 
    10881097         
    1089         <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html?format=raw#_TimeAuto_Cov">nT</a></dt> 
    1090         <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate</dd> 
     1098        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html?format=raw#_findline">name</a></dt> 
     1099        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline</dd> 
     1100         
     1101        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_1d">name</a></dt> 
     1102        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
     1103         
     1104        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">name</a></dt> 
     1105        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair</dd> 
    10911106         
    10921107        <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#_ncdf_quickwrite_typename">name</a></dt> 
    10931108        <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd> 
    10941109         
    1095         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html?format=raw#_findline">name</a></dt> 
    1096         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline</dd> 
    1097          
    1098         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">name</a></dt> 
    1099         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair</dd> 
    1100          
    1101         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_1d">name</a></dt> 
    1102         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
     1110        <dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html?format=raw#_xncdf_lec">name</a></dt> 
     1111        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/xncdf_lec</dd> 
     1112         
     1113        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt.html?format=raw#_extractatt">name</a></dt> 
     1114        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt</dd> 
    11031115         
    11041116        <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">name</a></dt> 
     
    11081120        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd> 
    11091121         
    1110         <dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html?format=raw#_xncdf_lec">name</a></dt> 
    1111         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/xncdf_lec</dd> 
    1112          
    11131122        <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">name</a></dt> 
    11141123        <dd>a parameter from the routine ./Obsolete/nlec</dd> 
    11151124         
    1116         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt.html?format=raw#_extractatt">name</a></dt> 
    1117         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt</dd> 
    1118          
    11191125        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd.html?format=raw#_cutcmd">nameexp</a></dt> 
    11201126        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd</dd> 
     
    11291135        <dd>a parameter from the routine ./Postscript/openps</dd> 
    11301136         
     1137        <dt><a href="./Matrix/make_selection.html?format=raw#_make_selection">names</a></dt> 
     1138        <dd>a parameter from the routine ./Matrix/make_selection</dd> 
     1139         
    11311140        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">names</a></dt> 
    11321141        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd> 
    11331142         
    1134         <dt><a href="./Matrix/make_selection.html?format=raw#_make_selection">names</a></dt> 
    1135         <dd>a parameter from the routine ./Matrix/make_selection</dd> 
    1136          
    11371143        <dt><a href="./Interpolation/extrapolate.html?format=raw#_extrapolate">nb_iteration</a></dt> 
    11381144        <dd>a parameter from the routine ./Interpolation/extrapolate</dd> 
    11391145         
     1146        <dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">nbretps</a></dt> 
     1147        <dd>a parameter from the routine ./Obsolete/nlecmois</dd> 
     1148         
    11401149        <dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">nbretps</a></dt> 
    11411150        <dd>a parameter from the routine ./Obsolete/nlecsaison</dd> 
     
    11441153        <dd>a parameter from the routine ./Obsolete/nlec5j</dd> 
    11451154         
    1146         <dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">nbretps</a></dt> 
    1147         <dd>a parameter from the routine ./Obsolete/nlecmois</dd> 
    1148          
    11491155        <dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">nbretps</a></dt> 
    11501156        <dd>a parameter from the routine ./Obsolete/nlecan</dd> 
     
    12611267        <dd>a parameter from the routine ./ToBeReviewed/INIT/initncdf</dd> 
    12621268         
     1269        <dt><a href="./Grid/smallmeshmask.html?format=raw#_smallmeshmask">ncfilein</a></dt> 
     1270        <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 
     1271         
    12631272        <dt><a href="./Grid/micromeshmask.html?format=raw#_micromeshmask">ncfilein</a></dt> 
    12641273        <dd>a parameter from the routine ./Grid/micromeshmask</dd> 
    12651274         
    1266         <dt><a href="./Grid/smallmeshmask.html?format=raw#_smallmeshmask">ncfilein</a></dt> 
    1267         <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 
    1268          
    12691275        <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#_ncdf_quickwrite_helper2">ncfilename</a></dt> 
    12701276        <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd> 
    12711277         
     1278        <dt><a href="./Grid/smallmeshmask.html?format=raw#_smallmeshmask">ncfileout</a></dt> 
     1279        <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 
     1280         
    12721281        <dt><a href="./Grid/micromeshmask.html?format=raw#_micromeshmask">ncfileout</a></dt> 
    12731282        <dd>a parameter from the routine ./Grid/micromeshmask</dd> 
    12741283         
    1275         <dt><a href="./Grid/smallmeshmask.html?format=raw#_smallmeshmask">ncfileout</a></dt> 
    1276         <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 
    1277          
    12781284        <dt><a href="./ReadWrite/idl-NetCDF/ncdf_listvars.html?format=raw#_ncdf_listvars">ncid</a></dt> 
    12791285        <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_listvars</dd> 
     
    13931399        <dd>a keyword from the routine ncdf_struct</dd> 
    13941400         
     1401        <dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">nom</a></dt> 
     1402        <dd>a parameter from the routine ./Obsolete/nlecsaison</dd> 
     1403         
     1404        <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">nom</a></dt> 
     1405        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/ncdf_lec</dd> 
     1406         
     1407        <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">nom</a></dt> 
     1408        <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 
     1409         
    13951410        <dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">nom</a></dt> 
    13961411        <dd>a parameter from the routine ./Obsolete/nlecmois</dd> 
     
    14021417        <dd>a parameter from the routine ./Obsolete/nlec5j</dd> 
    14031418         
    1404         <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">nom</a></dt> 
    1405         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/ncdf_lec</dd> 
    1406          
    1407         <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">nom</a></dt> 
    1408         <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 
    1409          
    1410         <dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">nom</a></dt> 
    1411         <dd>a parameter from the routine ./Obsolete/nlecsaison</dd> 
    1412          
    14131419        <dt><a href="./buildinit.html?format=raw#_getdir">nomark</a></dt> 
    14141420        <dd>a keyword from the routine getdir</dd> 
    14151421         
     1422        <dt><a href="./Obsolete/lect.html?format=raw#_lect">nomchamp</a></dt> 
     1423        <dd>a parameter from the routine ./Obsolete/lect</dd> 
     1424         
    14161425        <dt><a href="./Obsolete/lec.html?format=raw#_lec">nomchamp</a></dt> 
    14171426        <dd>a parameter from the routine ./Obsolete/lec</dd> 
    14181427         
    1419         <dt><a href="./Obsolete/lect.html?format=raw#_lect">nomchamp</a></dt> 
    1420         <dd>a parameter from the routine ./Obsolete/lect</dd> 
    1421          
    14221428        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">nomexp</a></dt> 
    14231429        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair</dd> 
    14241430         
     1431        <dt><a href="./Obsolete/ficdate.html?format=raw#_ficdate">nomexp</a></dt> 
     1432        <dd>a parameter from the routine ./Obsolete/ficdate</dd> 
     1433         
     1434        <dt><a href="./Obsolete/lec.html?format=raw#_lec">nomexp</a></dt> 
     1435        <dd>a parameter from the routine ./Obsolete/lec</dd> 
     1436         
     1437        <dt><a href="./Obsolete/lect.html?format=raw#_lect">nomexp</a></dt> 
     1438        <dd>a parameter from the routine ./Obsolete/lect</dd> 
     1439         
    14251440        <dt><a href="./ToBeReviewed/WIDGET/slec.html?format=raw#_slec">nomexp</a></dt> 
    14261441        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd> 
    14271442         
    1428         <dt><a href="./Obsolete/lect.html?format=raw#_lect">nomexp</a></dt> 
    1429         <dd>a parameter from the routine ./Obsolete/lect</dd> 
    1430          
    1431         <dt><a href="./Obsolete/lec.html?format=raw#_lec">nomexp</a></dt> 
    1432         <dd>a parameter from the routine ./Obsolete/lec</dd> 
    1433          
    1434         <dt><a href="./Obsolete/ficdate.html?format=raw#_ficdate">nomexp</a></dt> 
    1435         <dd>a parameter from the routine ./Obsolete/ficdate</dd> 
    1436          
    14371443        <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">nomexperience</a></dt> 
    14381444        <dd>a parameter from the routine ./Obsolete/nlec</dd> 
     
    14741480        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/symbols</dd> 
    14751481         
     1482        <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits.html?format=raw#_scan_grib_nbits">num</a></dt> 
     1483        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits</dd> 
     1484         
     1485        <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#_ncdf_quickwrite_typename">num</a></dt> 
     1486        <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd> 
     1487         
     1488        <dt><a href="./ReadWrite/readoldopadistcoast.html?format=raw#_read3fromopa">num</a></dt> 
     1489        <dd>a parameter from the routine ./ReadWrite/readoldopadistcoast</dd> 
     1490         
     1491        <dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_read2fromopa">num</a></dt> 
     1492        <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd> 
     1493         
     1494        <dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_read3fromopa">num</a></dt> 
     1495        <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd> 
     1496         
     1497        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_bds.html?format=raw#_read_grib_bds">num</a></dt> 
     1498        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_bds</dd> 
     1499         
     1500        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_end.html?format=raw#_read_grib_end">num</a></dt> 
     1501        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_end</dd> 
     1502         
     1503        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_gds.html?format=raw#_read_grib_gds">num</a></dt> 
     1504        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_gds</dd> 
     1505         
     1506        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_is.html?format=raw#_read_grib_is">num</a></dt> 
     1507        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_is</dd> 
     1508         
     1509        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_pds.html?format=raw#_read_grib_pds">num</a></dt> 
     1510        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_pds</dd> 
     1511         
     1512        <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_code.html?format=raw#_scan_grib_code">num</a></dt> 
     1513        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_code</dd> 
     1514         
     1515        <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_date.html?format=raw#_scan_grib_date">num</a></dt> 
     1516        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_date</dd> 
     1517         
    14761518        <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_messize.html?format=raw#_scan_grib_messize">num</a></dt> 
    14771519        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_messize</dd> 
    14781520         
    1479         <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#_ncdf_quickwrite_typename">num</a></dt> 
    1480         <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd> 
    1481          
    1482         <dt><a href="./ReadWrite/readoldopadistcoast.html?format=raw#_read3fromopa">num</a></dt> 
    1483         <dd>a parameter from the routine ./ReadWrite/readoldopadistcoast</dd> 
    1484          
    1485         <dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_read2fromopa">num</a></dt> 
    1486         <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd> 
    1487          
    1488         <dt><a href="./ReadWrite/readoldoparestart.html?format=raw#_read3fromopa">num</a></dt> 
    1489         <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd> 
    1490          
    1491         <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_bds.html?format=raw#_read_grib_bds">num</a></dt> 
    1492         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_bds</dd> 
    1493          
    1494         <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_end.html?format=raw#_read_grib_end">num</a></dt> 
    1495         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_end</dd> 
    1496          
    1497         <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_gds.html?format=raw#_read_grib_gds">num</a></dt> 
    1498         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_gds</dd> 
    1499          
    1500         <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_is.html?format=raw#_read_grib_is">num</a></dt> 
    1501         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_is</dd> 
    1502          
    1503         <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_pds.html?format=raw#_read_grib_pds">num</a></dt> 
    1504         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_pds</dd> 
    1505          
    1506         <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_code.html?format=raw#_scan_grib_code">num</a></dt> 
    1507         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_code</dd> 
    1508          
    1509         <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_date.html?format=raw#_scan_grib_date">num</a></dt> 
    1510         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_date</dd> 
    1511          
    1512         <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits.html?format=raw#_scan_grib_nbits">num</a></dt> 
    1513         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits</dd> 
    1514          
    15151521        <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_recstart.html?format=raw#_scan_grib_recstart">num</a></dt> 
    15161522        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_recstart</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-P.html

    r151 r153  
    922922        <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd> 
    923923         
     924        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html?format=raw#_cw_slider_pm">parent</a></dt> 
     925        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd> 
     926         
     927        <dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval">parent</a></dt> 
     928        <dd>a parameter from the routine ./ToBeReviewed/HOPE/cw_selectinterval</dd> 
     929         
     930        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim.html?format=raw#_xcreateanim">parent</a></dt> 
     931        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim</dd> 
     932         
     933        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">parent</a></dt> 
     934        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd> 
     935         
     936        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html?format=raw#_cw_calendar">parent</a></dt> 
     937        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd> 
     938         
     939        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html?format=raw#_cw_combobox_pm">parent</a></dt> 
     940        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd> 
     941         
     942        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">parent</a></dt> 
     943        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd> 
     944         
     945        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">parent</a></dt> 
     946        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd> 
     947         
     948        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">parent</a></dt> 
     949        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout</dd> 
     950         
     951        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">parent</a></dt> 
     952        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice</dd> 
     953         
    924954        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html?format=raw#_cw_specifie">parent</a></dt> 
    925955        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie</dd> 
    926956         
    927         <dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval">parent</a></dt> 
    928         <dd>a parameter from the routine ./ToBeReviewed/HOPE/cw_selectinterval</dd> 
    929          
    930         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim.html?format=raw#_xcreateanim">parent</a></dt> 
    931         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim</dd> 
    932          
    933         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html?format=raw#_CW_BGROUP">parent</a></dt> 
    934         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd> 
    935          
    936         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html?format=raw#_cw_calendar">parent</a></dt> 
    937         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd> 
    938          
    939         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html?format=raw#_cw_combobox_pm">parent</a></dt> 
    940         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd> 
    941          
    942         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">parent</a></dt> 
    943         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd> 
    944          
    945         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">parent</a></dt> 
    946         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd> 
    947          
    948         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">parent</a></dt> 
    949         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout</dd> 
    950          
    951         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">parent</a></dt> 
    952         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice</dd> 
    953          
    954         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html?format=raw#_cw_slider_pm">parent</a></dt> 
    955         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd> 
    956          
    957957        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_gribtable.html?format=raw#_read_gribtable">parmtabl</a></dt> 
    958958        <dd>a keyword from the routine read_gribtable</dd> 
     
    10211021        <dd>a file from the directory ./ToBeReviewed/PLOTS/DESSINE</dd> 
    10221022         
     1023        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">pltv</a></dt> 
     1024        <dd>a procedure from the file pltv.pro</dd> 
     1025         
     1026        <dt><a href="ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw">pltv.pro</a></dt> 
     1027        <dd>a file from the directory ./ToBeReviewed/PLOTS/DESSINE</dd> 
     1028         
    10231029        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">pltz</a></dt> 
    10241030        <dd>a procedure from the file pltz.pro</dd> 
     
    10331039        <dd>a parameter from the routine ./Utilities/linearequation</dd> 
    10341040         
     1041        <dt><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_read_ftp">port</a></dt> 
     1042        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ftp</dd> 
     1043         
    10351044        <dt><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_ftp_parse_pasv">port</a></dt> 
    10361045        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ftp</dd> 
    10371046         
    1038         <dt><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_read_ftp">port</a></dt> 
    1039         <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ftp</dd> 
    1040          
    10411047        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placecolor.html?format=raw#_placecolor">pos</a></dt> 
    10421048        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placecolor</dd> 
     
    10451051        <dd>a keyword from the routine text_box</dd> 
    10461052         
     1053        <dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">posbar</a></dt> 
     1054        <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre</dd> 
     1055         
    10471056        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">posbar</a></dt> 
    10481057        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placedessin</dd> 
    10491058         
    1050         <dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">posbar</a></dt> 
     1059        <dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">posfenetre</a></dt> 
    10511060        <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre</dd> 
    10521061         
     
    10541063        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placedessin</dd> 
    10551064         
    1056         <dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">posfenetre</a></dt> 
    1057         <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre</dd> 
    1058          
    10591065        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">posfenetre</a></dt> 
    10601066        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/addaxe</dd> 
     
    10631069        <dd>a parameter from the routine ./Interpolation/angle</dd> 
    10641070         
     1071        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd.html?format=raw#_cutcmd">prefix</a></dt> 
     1072        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd</dd> 
     1073         
    10651074        <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickread/ncdf_quickread_helper.html?format=raw#_ncdf_quickread_helper">prefix</a></dt> 
    10661075        <dd>a keyword from the routine ncdf_quickread_helper</dd> 
    10671076         
    1068         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd.html?format=raw#_cutcmd">prefix</a></dt> 
    1069         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd</dd> 
    1070          
    10711077        <dt><a href="./buildinit.html?format=raw#_printerdef_event">printerdef_event</a></dt> 
    10721078        <dd>a procedure from the file buildinit.pro</dd> 
     
    10841090        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checktypeminmax</dd> 
    10851091         
     1092        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">procedure</a></dt> 
     1093        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
     1094         
    10861095        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html?format=raw#_buildreadcmd">procedure</a></dt> 
    10871096        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd> 
    10881097         
    1089         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">procedure</a></dt> 
    1090         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
    1091          
    10921098        <dt><a href="./ToBeReviewed/CALCULS/projectondepth.html?format=raw#_projectondepth">projectondepth</a></dt> 
    10931099        <dd>a function from the file projectondepth.pro</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-T.html

    r151 r153  
    829829        <dd>a keyword from the routine COLORBAR</dd> 
    830830         
     831        <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">TOUT</a></dt> 
     832        <dd>a keyword from the routine nlec</dd> 
     833         
     834        <dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">TOUT</a></dt> 
     835        <dd>a keyword from the routine grille</dd> 
     836         
     837        <dt><a href="./Obsolete/lec.html?format=raw#_lec">TOUT</a></dt> 
     838        <dd>a keyword from the routine lec</dd> 
     839         
     840        <dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">TOUT</a></dt> 
     841        <dd>a keyword from the routine nlec5j</dd> 
     842         
     843        <dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">TOUT</a></dt> 
     844        <dd>a keyword from the routine nlecan</dd> 
     845         
     846        <dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">TOUT</a></dt> 
     847        <dd>a keyword from the routine nlecmois</dd> 
     848         
     849        <dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">TOUT</a></dt> 
     850        <dd>a keyword from the routine nlecsaison</dd> 
     851         
     852        <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">TOUT</a></dt> 
     853        <dd>a keyword from the routine nlecserie</dd> 
     854         
    831855        <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">TOUT</a></dt> 
    832856        <dd>a keyword from the routine read_ncdf</dd> 
    833857         
    834         <dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">TOUT</a></dt> 
    835         <dd>a keyword from the routine grille</dd> 
    836          
    837         <dt><a href="./Obsolete/lec.html?format=raw#_lec">TOUT</a></dt> 
    838         <dd>a keyword from the routine lec</dd> 
    839          
    840         <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">TOUT</a></dt> 
    841         <dd>a keyword from the routine nlec</dd> 
    842          
    843         <dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">TOUT</a></dt> 
    844         <dd>a keyword from the routine nlec5j</dd> 
    845          
    846         <dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">TOUT</a></dt> 
    847         <dd>a keyword from the routine nlecan</dd> 
    848          
    849         <dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">TOUT</a></dt> 
    850         <dd>a keyword from the routine nlecmois</dd> 
    851          
    852         <dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">TOUT</a></dt> 
    853         <dd>a keyword from the routine nlecsaison</dd> 
    854          
    855         <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">TOUT</a></dt> 
    856         <dd>a keyword from the routine nlecserie</dd> 
    857          
    858858        <dt><a href="./Obsolete/imprime.html?format=raw#_imprime">TRANS</a></dt> 
    859859        <dd>a keyword from the routine imprime</dd> 
     
    877877        <dd>a keyword from the routine Str_token</dd> 
    878878         
     879        <dt><a href="./ToBeReviewed/STRING/strtok.html?format=raw#_Strtok">TRIM</a></dt> 
     880        <dd>a keyword from the routine Strtok</dd> 
     881         
    879882        <dt><a href="./ToBeReviewed/STRING/strsci.html?format=raw#_StrSci">TRIM</a></dt> 
    880883        <dd>a keyword from the routine StrSci</dd> 
    881884         
    882         <dt><a href="./ToBeReviewed/STRING/strtok.html?format=raw#_Strtok">TRIM</a></dt> 
    883         <dd>a keyword from the routine Strtok</dd> 
    884          
    885885        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">TRIMSK</a></dt> 
    886886        <dd>a keyword from the routine pltbase</dd> 
     
    892892        <dd>a keyword from the routine GETCOLOR</dd> 
    893893         
     894        <dt><a href="./Utilities/find.html?format=raw#_find">TRYFIND</a></dt> 
     895        <dd>a keyword from the routine find</dd> 
     896         
     897        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">TT</a></dt> 
     898        <dd>a keyword from the routine pltt</dd> 
     899         
     900        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">TT</a></dt> 
     901        <dd>a keyword from the routine plt1d</dd> 
     902         
    894903        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">TT</a></dt> 
    895904        <dd>a keyword from the routine checktypeminmax</dd> 
    896905         
    897         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">TT</a></dt> 
    898         <dd>a keyword from the routine plt1d</dd> 
    899          
    900         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">TT</a></dt> 
    901         <dd>a keyword from the routine pltt</dd> 
    902          
    903906        <dt><a href="./Interpolation/map_npoints.html?format=raw#_Map_npoints">TWO_BY_TWO</a></dt> 
    904907        <dd>a keyword from the routine Map_npoints</dd> 
     
    907910        <dd>a parameter from the routine ./ToBeReviewed/STRING/getwrd</dd> 
    908911         
     912        <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">TYPE</a></dt> 
     913        <dd>a keyword from the routine decoupeterre</dd> 
     914         
     915        <dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">TYPE</a></dt> 
     916        <dd>a keyword from the routine section</dd> 
     917         
     918        <dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">TYPE</a></dt> 
     919        <dd>a keyword from the routine domdef</dd> 
     920         
     921        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">TYPE</a></dt> 
     922        <dd>a keyword from the routine placedessin</dd> 
     923         
     924        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">TYPE</a></dt> 
     925        <dd>a keyword from the routine checktypeminmax</dd> 
     926         
    909927        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">TYPE</a></dt> 
    910928        <dd>a keyword from the routine checkfield</dd> 
    911929         
    912         <dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">TYPE</a></dt> 
    913         <dd>a keyword from the routine section</dd> 
    914          
    915         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">TYPE</a></dt> 
    916         <dd>a keyword from the routine placedessin</dd> 
    917          
    918         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">TYPE</a></dt> 
    919         <dd>a keyword from the routine checktypeminmax</dd> 
    920          
    921         <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">TYPE</a></dt> 
    922         <dd>a keyword from the routine decoupeterre</dd> 
    923          
    924         <dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">TYPE</a></dt> 
    925         <dd>a keyword from the routine domdef</dd> 
     930        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">TYPEIN</a></dt> 
     931        <dd>a keyword from the routine pltz</dd> 
    926932         
    927933        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">TYPEIN</a></dt> 
     
    931937        <dd>a keyword from the routine pltt</dd> 
    932938         
    933         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">TYPEIN</a></dt> 
    934         <dd>a keyword from the routine pltz</dd> 
    935          
    936939        <dt><a href="./ToBeReviewed/PLOTS/legende.html?format=raw#_legende">TYPE_YZ</a></dt> 
    937940        <dd>a keyword from the routine legende</dd> 
     
    955958        <dd>a file from the directory ./ToBeReviewed/GRILLE</dd> 
    956959         
     960        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">tab</a></dt> 
     961        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd> 
     962         
     963        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">tab</a></dt> 
     964        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd> 
     965         
     966        <dt><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html?format=raw#_depth2floatlevel">tab</a></dt> 
     967        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2floatlevel</dd> 
     968         
     969        <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">tab</a></dt> 
     970        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd> 
     971         
     972        <dt><a href="./ToBeReviewed/CALCULS/level2mask.html?format=raw#_level2mask">tab</a></dt> 
     973        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2mask</dd> 
     974         
     975        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">tab</a></dt> 
     976        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltz</dd> 
     977         
     978        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">tab</a></dt> 
     979        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd> 
     980         
     981        <dt><a href="./ToBeReviewed/CALCULS/level2depth.html?format=raw#_level2depth">tab</a></dt> 
     982        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2depth</dd> 
     983         
    957984        <dt><a href="./Obsolete/extrait.html?format=raw#_extrait">tab</a></dt> 
    958985        <dd>a parameter from the routine ./Obsolete/extrait</dd> 
    959986         
     987        <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">tab</a></dt> 
     988        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grossemoyenne</dd> 
     989         
     990        <dt><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html?format=raw#_floatlevel2depth">tab</a></dt> 
     991        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/floatlevel2depth</dd> 
     992         
     993        <dt><a href="./ToBeReviewed/CALCULS/depth2mask.html?format=raw#_depth2mask">tab</a></dt> 
     994        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2mask</dd> 
     995         
     996        <dt><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw#_depth2level">tab</a></dt> 
     997        <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2level</dd> 
     998         
    960999        <dt><a href="./Grid/changemsk.html?format=raw#_changemsk">tab</a></dt> 
    9611000        <dd>a parameter from the routine ./Grid/changemsk</dd> 
    9621001         
    963         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">tab</a></dt> 
    964         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd> 
    965          
    966         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">tab</a></dt> 
    967         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltz</dd> 
    968          
    969         <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">tab</a></dt> 
    970         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd> 
    971          
    972         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">tab</a></dt> 
    973         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd> 
    974          
    975         <dt><a href="./ToBeReviewed/CALCULS/level2mask.html?format=raw#_level2mask">tab</a></dt> 
    976         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2mask</dd> 
    977          
    978         <dt><a href="./ToBeReviewed/CALCULS/level2depth.html?format=raw#_level2depth">tab</a></dt> 
    979         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2depth</dd> 
    980          
    981         <dt><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html?format=raw#_floatlevel2depth">tab</a></dt> 
    982         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/floatlevel2depth</dd> 
    983          
    984         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">tab</a></dt> 
    985         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd> 
    986          
    987         <dt><a href="./ToBeReviewed/CALCULS/depth2mask.html?format=raw#_depth2mask">tab</a></dt> 
    988         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2mask</dd> 
    989          
    990         <dt><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw#_depth2level">tab</a></dt> 
    991         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2level</dd> 
    992          
    993         <dt><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html?format=raw#_depth2floatlevel">tab</a></dt> 
    994         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2floatlevel</dd> 
    995          
    996         <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">tab</a></dt> 
    997         <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grossemoyenne</dd> 
     1002        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">tab1</a></dt> 
     1003        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltsc</dd> 
    9981004         
    9991005        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">tab1</a></dt> 
    10001006        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd> 
    10011007         
    1002         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">tab1</a></dt> 
    1003         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltsc</dd> 
    1004          
    10051008        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">tab2</a></dt> 
    10061009        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltsc</dd> 
     
    10091012        <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/chcolps</dd> 
    10101013         
    1011         <dt><a href="./Matrix/congridseb.html?format=raw#_congridseb">tableau</a></dt> 
    1012         <dd>a parameter from the routine ./Matrix/congridseb</dd> 
     1014        <dt><a href="./Obsolete/congridseb.html?format=raw#_congridseb">tableau</a></dt> 
     1015        <dd>a parameter from the routine ./Obsolete/congridseb</dd> 
    10131016         
    10141017        <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_gribtable.html?format=raw#_read_gribtable">tablename</a></dt> 
     
    10331036        <dd>a keyword from the routine readoldoparestart</dd> 
    10341037         
     1038        <dt><a href="./ToBeReviewed/GRILLE/f2v.html?format=raw#_f2v">temp</a></dt> 
     1039        <dd>a parameter from the routine ./ToBeReviewed/GRILLE/f2v</dd> 
     1040         
     1041        <dt><a href="./ToBeReviewed/GRILLE/u2t.html?format=raw#_u2t">temp</a></dt> 
     1042        <dd>a parameter from the routine ./ToBeReviewed/GRILLE/u2t</dd> 
     1043         
     1044        <dt><a href="./ToBeReviewed/GRILLE/v2t.html?format=raw#_v2t">temp</a></dt> 
     1045        <dd>a parameter from the routine ./ToBeReviewed/GRILLE/v2t</dd> 
     1046         
    10351047        <dt><a href="./ToBeReviewed/GRILLE/t2v.html?format=raw#_t2v">temp</a></dt> 
    10361048        <dd>a parameter from the routine ./ToBeReviewed/GRILLE/t2v</dd> 
    10371049         
    1038         <dt><a href="./ToBeReviewed/GRILLE/v2t.html?format=raw#_v2t">temp</a></dt> 
    1039         <dd>a parameter from the routine ./ToBeReviewed/GRILLE/v2t</dd> 
    1040          
    1041         <dt><a href="./ToBeReviewed/GRILLE/u2t.html?format=raw#_u2t">temp</a></dt> 
    1042         <dd>a parameter from the routine ./ToBeReviewed/GRILLE/u2t</dd> 
    1043          
    1044         <dt><a href="./ToBeReviewed/GRILLE/f2v.html?format=raw#_f2v">temp</a></dt> 
    1045         <dd>a parameter from the routine ./ToBeReviewed/GRILLE/f2v</dd> 
    1046          
    10471050        <dt><a href="./ToBeReviewed/PLOTS/axe.html?format=raw#_axe">tempsmax</a></dt> 
    10481051        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/axe</dd> 
     
    10631066        <dd>a file from the directory ./Utilities</dd> 
    10641067         
     1068        <dt><a href="./ToBeReviewed/WIDGET/xnotice.html?format=raw#_xnotice">text</a></dt> 
     1069        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/xnotice</dd> 
     1070         
     1071        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html?format=raw#_inserthistory">text</a></dt> 
     1072        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory</dd> 
     1073         
     1074        <dt><a href="./Utilities/report.html?format=raw#_report">text</a></dt> 
     1075        <dd>a parameter from the routine ./Utilities/report</dd> 
     1076         
    10651077        <dt><a href="./Utilities/text_box.html?format=raw#_text_box">text</a></dt> 
    10661078        <dd>a parameter from the routine ./Utilities/text_box</dd> 
    10671079         
    1068         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html?format=raw#_inserthistory">text</a></dt> 
    1069         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory</dd> 
    1070          
    1071         <dt><a href="./ToBeReviewed/WIDGET/xnotice.html?format=raw#_xnotice">text</a></dt> 
    1072         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/xnotice</dd> 
    1073          
    10741080        <dt><a href="./ToBeReviewed/LECTURE/read_ftp.html?format=raw#_ftp_parse_pasv">text</a></dt> 
    10751081        <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ftp</dd> 
    10761082         
    1077         <dt><a href="./Utilities/report.html?format=raw#_report">text</a></dt> 
    1078         <dd>a parameter from the routine ./Utilities/report</dd> 
    1079          
    10801083        <dt><a href="./Utilities/text_box.html?format=raw#_text_box">text_box</a></dt> 
    10811084        <dd>a procedure from the file text_box.pro</dd> 
     
    11261129        <dd>a parameter from the routine ./Textoidl/strtrans</dd> 
    11271130         
     1131        <dt><a href="./ToBeReviewed/STRING/strtok.html?format=raw#_Strtok">token</a></dt> 
     1132        <dd>a parameter from the routine ./ToBeReviewed/STRING/strtok</dd> 
     1133         
    11281134        <dt><a href="./Textoidl/translate_sub_super.html?format=raw#_Sub_sup_idl">token</a></dt> 
    11291135        <dd>a parameter from the routine ./Textoidl/translate_sub_super</dd> 
    11301136         
    1131         <dt><a href="./ToBeReviewed/STRING/strtok.html?format=raw#_Strtok">token</a></dt> 
    1132         <dd>a parameter from the routine ./ToBeReviewed/STRING/strtok</dd> 
    1133          
    11341137        <dt><a href="./Textoidl/sub_sup_idl.html?format=raw#_Sub_sup_idl">token</a></dt> 
    11351138        <dd>a parameter from the routine ./Textoidl/sub_sup_idl</dd> 
     
    11471150        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt</dd> 
    11481151         
     1152        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html?format=raw#_findline">top_uvalue</a></dt> 
     1153        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline</dd> 
     1154         
    11491155        <dt><a href="./ToBeReviewed/HOPE/domainpart.html?format=raw#_domainpart">top_uvalue</a></dt> 
    11501156        <dd>a parameter from the routine ./ToBeReviewed/HOPE/domainpart</dd> 
    11511157         
    1152         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html?format=raw#_findline">top_uvalue</a></dt> 
    1153         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline</dd> 
    1154          
    11551158        <dt><a href="./ToBeReviewed/HOPE/rh_alldomains.html?format=raw#_rh_alldomains">topid</a></dt> 
    11561159        <dd>a parameter from the routine ./ToBeReviewed/HOPE/rh_alldomains</dd> 
     
    13811384        <dd>a parameter from the routine ./ToBeReviewed/STRING/nwrds</dd> 
    13821385         
     1386        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">type</a></dt> 
     1387        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/addaxe</dd> 
     1388         
     1389        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">type</a></dt> 
     1390        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd> 
     1391         
     1392        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_1d">type</a></dt> 
     1393        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
     1394         
     1395        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_2d">type</a></dt> 
     1396        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
     1397         
     1398        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_3d">type</a></dt> 
     1399        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
     1400         
     1401        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html?format=raw#_buildreadcmd">type</a></dt> 
     1402        <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd> 
     1403         
    13831404        <dt><a href="./Colors/xpal.html?format=raw#_XP_REPLOT">type</a></dt> 
    13841405        <dd>a parameter from the routine ./Colors/xpal</dd> 
    13851406         
    1386         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">type</a></dt> 
    1387         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd> 
    1388          
    1389         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_1d">type</a></dt> 
    1390         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
    1391          
    1392         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_2d">type</a></dt> 
    1393         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
     1407        <dt><a href="./Matrix/cmapply.html?format=raw#_cmapply">type</a></dt> 
     1408        <dd>a keyword from the routine cmapply</dd> 
    13941409         
    13951410        <dt><a href="./Colors/xpal.html?format=raw#_XP_CHANGE_COLOR">type</a></dt> 
    13961411        <dd>a parameter from the routine ./Colors/xpal</dd> 
    13971412         
    1398         <dt><a href="./Matrix/cmapply.html?format=raw#_cmapply">type</a></dt> 
    1399         <dd>a keyword from the routine cmapply</dd> 
    1400          
    1401         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_err_3d">type</a></dt> 
    1402         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 
    1403          
    1404         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html?format=raw#_buildreadcmd">type</a></dt> 
    1405         <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd> 
    1406          
    1407         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">type</a></dt> 
    1408         <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/addaxe</dd> 
    1409          
    14101413        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">typedessin</a></dt> 
    14111414        <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placedessin</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-X.html

    r151 r153  
    949949        <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/dessinetri</dd> 
    950950         
    951         <dt><a href="./Matrix/congridseb.html?format=raw#_congridseb">x</a></dt> 
    952         <dd>a parameter from the routine ./Matrix/congridseb</dd> 
     951        <dt><a href="./Obsolete/congridseb.html?format=raw#_congridseb">x</a></dt> 
     952        <dd>a parameter from the routine ./Obsolete/congridseb</dd> 
    953953         
    954954        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">x</a></dt> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-Y.html

    r151 r153  
    904904        <dd>a parameter from the routine ./Interpolation/inquad</dd> 
    905905         
    906         <dt><a href="./Matrix/congridseb.html?format=raw#_congridseb">y</a></dt> 
    907         <dd>a parameter from the routine ./Matrix/congridseb</dd> 
     906        <dt><a href="./Obsolete/congridseb.html?format=raw#_congridseb">y</a></dt> 
     907        <dd>a parameter from the routine ./Obsolete/congridseb</dd> 
    908908         
    909909        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">y</a></dt> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-index-_.html

    r151 r153  
    781781      <dl> 
    782782         
     783        <dt><a href="./Obsolete/ncdf_meshlec.html?format=raw#_ncdf_meshlec">_EXTRA</a></dt> 
     784        <dd>a keyword from the routine ncdf_meshlec</dd> 
     785         
     786        <dt><a href="./ToBeReviewed/PLOTS/axe.html?format=raw#_axe">_EXTRA</a></dt> 
     787        <dd>a keyword from the routine axe</dd> 
     788         
     789        <dt><a href="./ToBeReviewed/PLOTS/legende.html?format=raw#_legende">_EXTRA</a></dt> 
     790        <dd>a keyword from the routine legende</dd> 
     791         
     792        <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">_EXTRA</a></dt> 
     793        <dd>a keyword from the routine nlec</dd> 
     794         
     795        <dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">_EXTRA</a></dt> 
     796        <dd>a keyword from the routine nlec5j</dd> 
     797         
     798        <dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">_EXTRA</a></dt> 
     799        <dd>a keyword from the routine grille</dd> 
     800         
     801        <dt><a href="./ToBeReviewed/TRIANGULATION/ciseauxtri.html?format=raw#_ciseauxtri">_EXTRA</a></dt> 
     802        <dd>a keyword from the routine ciseauxtri</dd> 
     803         
     804        <dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">_EXTRA</a></dt> 
     805        <dd>a keyword from the routine nlecan</dd> 
     806         
     807        <dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">_EXTRA</a></dt> 
     808        <dd>a keyword from the routine nlecmois</dd> 
     809         
     810        <dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">_EXTRA</a></dt> 
     811        <dd>a keyword from the routine nlecsaison</dd> 
     812         
     813        <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">_EXTRA</a></dt> 
     814        <dd>a keyword from the routine nlecserie</dd> 
     815         
     816        <dt><a href="./ToBeReviewed/INIT/initncdf.html?format=raw#_initncdf">_EXTRA</a></dt> 
     817        <dd>a keyword from the routine initncdf</dd> 
     818         
     819        <dt><a href="./Obsolete/vairdate.html?format=raw#_vairdate">_EXTRA</a></dt> 
     820        <dd>a keyword from the routine vairdate</dd> 
     821         
     822        <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">_EXTRA</a></dt> 
     823        <dd>a keyword from the routine read_ncdf</dd> 
     824         
     825        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/bar_plot.html?format=raw#_bar_plot">_EXTRA</a></dt> 
     826        <dd>a keyword from the routine bar_plot</dd> 
     827         
     828        <dt><a href="./ToBeReviewed/TRIANGULATION/tracecote.html?format=raw#_tracecote">_EXTRA</a></dt> 
     829        <dd>a keyword from the routine tracecote</dd> 
     830         
     831        <dt><a href="./Obsolete/vraidate.html?format=raw#_vraidate">_EXTRA</a></dt> 
     832        <dd>a keyword from the routine vraidate</dd> 
     833         
     834        <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">_EXTRA</a></dt> 
     835        <dd>a keyword from the routine IMDISP</dd> 
     836         
     837        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">_EXTRA</a></dt> 
     838        <dd>a keyword from the routine pltbase</dd> 
     839         
     840        <dt><a href="./Colors/newpalette.html?format=raw#_newpalette">_EXTRA</a></dt> 
     841        <dd>a keyword from the routine newpalette</dd> 
     842         
     843        <dt><a href="./Calendar/date2string.html?format=raw#_date2string">_EXTRA</a></dt> 
     844        <dd>a keyword from the routine date2string</dd> 
     845         
     846        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">_EXTRA</a></dt> 
     847        <dd>a keyword from the routine read_vermair</dd> 
     848         
     849        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">_EXTRA</a></dt> 
     850        <dd>a keyword from the routine pltv</dd> 
     851         
     852        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">_EXTRA</a></dt> 
     853        <dd>a keyword from the routine pltz</dd> 
     854         
     855        <dt><a href="./ReadWrite/ncdf_timeget.html?format=raw#_ncdf_timeget">_EXTRA</a></dt> 
     856        <dd>a keyword from the routine ncdf_timeget</dd> 
     857         
     858        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">_EXTRA</a></dt> 
     859        <dd>a keyword from the routine scontour</dd> 
     860         
     861        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">_EXTRA</a></dt> 
     862        <dd>a keyword from the routine splot</dd> 
     863         
     864        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">_EXTRA</a></dt> 
     865        <dd>a keyword from the routine tvplus</dd> 
     866         
     867        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">_EXTRA</a></dt> 
     868        <dd>a keyword from the routine addaxe</dd> 
     869         
     870        <dt><a href="./ReadWrite/read_grads.html?format=raw#_read_grads">_EXTRA</a></dt> 
     871        <dd>a keyword from the routine read_grads</dd> 
     872         
     873        <dt><a href="./ReadWrite/scanctl.html?format=raw#_scanctl">_EXTRA</a></dt> 
     874        <dd>a keyword from the routine scanctl</dd> 
     875         
     876        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">_EXTRA</a></dt> 
     877        <dd>a keyword from the routine checkfield</dd> 
     878         
     879        <dt><a href="./ToBeReviewed/WIDGET/slec.html?format=raw#_slec">_EXTRA</a></dt> 
     880        <dd>a keyword from the routine slec</dd> 
     881         
     882        <dt><a href="./Calendar/monthname.html?format=raw#_monthname">_EXTRA</a></dt> 
     883        <dd>a keyword from the routine monthname</dd> 
     884         
     885        <dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">_EXTRA</a></dt> 
     886        <dd>a keyword from the routine ncdf_meshread</dd> 
     887         
     888        <dt><a href="./ToBeReviewed/WIDGET/xxx.html?format=raw#_xxx">_EXTRA</a></dt> 
     889        <dd>a keyword from the routine xxx</dd> 
     890         
     891        <dt><a href="./Utilities/createfunc.html?format=raw#_createfunc">_EXTRA</a></dt> 
     892        <dd>a keyword from the routine createfunc</dd> 
     893         
     894        <dt><a href="./Utilities/createpro.html?format=raw#_createpro">_EXTRA</a></dt> 
     895        <dd>a keyword from the routine createpro</dd> 
     896         
     897        <dt><a href="./Interpolation/clickincell.html?format=raw#_clickincell">_EXTRA</a></dt> 
     898        <dd>a keyword from the routine clickincell</dd> 
     899         
     900        <dt><a href="./Colors/lct.html?format=raw#_lct">_EXTRA</a></dt> 
     901        <dd>a keyword from the routine lct</dd> 
     902         
     903        <dt><a href="./Obsolete/juldate.html?format=raw#_juldate">_EXTRA</a></dt> 
     904        <dd>a keyword from the routine juldate</dd> 
     905         
     906        <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html?format=raw#_LABEL_DATE">_EXTRA</a></dt> 
     907        <dd>a keyword from the routine LABEL_DATE</dd> 
     908         
     909        <dt><a href="./Utilities/text_box.html?format=raw#_text_box">_EXTRA</a></dt> 
     910        <dd>a keyword from the routine text_box</dd> 
     911         
     912        <dt><a href="./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html?format=raw#_ajoutvect">_EXTRA</a></dt> 
     913        <dd>a keyword from the routine ajoutvect</dd> 
     914         
    783915        <dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html?format=raw#_VELOVECT">_EXTRA</a></dt> 
    784916        <dd>a keyword from the routine VELOVECT</dd> 
    785917         
    786         <dt><a href="./ToBeReviewed/PLOTS/legende.html?format=raw#_legende">_EXTRA</a></dt> 
    787         <dd>a keyword from the routine legende</dd> 
    788          
    789         <dt><a href="./Obsolete/nlec.html?format=raw#_nlec">_EXTRA</a></dt> 
    790         <dd>a keyword from the routine nlec</dd> 
    791          
    792         <dt><a href="./Obsolete/nlec5j.html?format=raw#_nlec5j">_EXTRA</a></dt> 
    793         <dd>a keyword from the routine nlec5j</dd> 
    794          
    795         <dt><a href="./ToBeReviewed/GRILLE/grille.html?format=raw#_grille">_EXTRA</a></dt> 
    796         <dd>a keyword from the routine grille</dd> 
    797          
    798         <dt><a href="./ToBeReviewed/TRIANGULATION/ciseauxtri.html?format=raw#_ciseauxtri">_EXTRA</a></dt> 
    799         <dd>a keyword from the routine ciseauxtri</dd> 
    800          
    801         <dt><a href="./Obsolete/nlecan.html?format=raw#_nlecan">_EXTRA</a></dt> 
    802         <dd>a keyword from the routine nlecan</dd> 
    803          
    804         <dt><a href="./Obsolete/nlecmois.html?format=raw#_nlecmois">_EXTRA</a></dt> 
    805         <dd>a keyword from the routine nlecmois</dd> 
    806          
    807         <dt><a href="./Obsolete/nlecsaison.html?format=raw#_nlecsaison">_EXTRA</a></dt> 
    808         <dd>a keyword from the routine nlecsaison</dd> 
    809          
    810         <dt><a href="./Obsolete/nlecserie.html?format=raw#_nlecserie">_EXTRA</a></dt> 
    811         <dd>a keyword from the routine nlecserie</dd> 
    812          
    813         <dt><a href="./ToBeReviewed/INIT/initncdf.html?format=raw#_initncdf">_EXTRA</a></dt> 
    814         <dd>a keyword from the routine initncdf</dd> 
    815          
    816         <dt><a href="./Obsolete/vairdate.html?format=raw#_vairdate">_EXTRA</a></dt> 
    817         <dd>a keyword from the routine vairdate</dd> 
    818          
    819         <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html?format=raw#_read_ncdf">_EXTRA</a></dt> 
    820         <dd>a keyword from the routine read_ncdf</dd> 
    821          
    822         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/bar_plot.html?format=raw#_bar_plot">_EXTRA</a></dt> 
    823         <dd>a keyword from the routine bar_plot</dd> 
    824          
    825         <dt><a href="./ToBeReviewed/TRIANGULATION/tracecote.html?format=raw#_tracecote">_EXTRA</a></dt> 
    826         <dd>a keyword from the routine tracecote</dd> 
    827          
    828         <dt><a href="./Obsolete/vraidate.html?format=raw#_vraidate">_EXTRA</a></dt> 
    829         <dd>a keyword from the routine vraidate</dd> 
    830          
    831         <dt><a href="./Picture/imdisp.html?format=raw#_IMDISP">_EXTRA</a></dt> 
    832         <dd>a keyword from the routine IMDISP</dd> 
    833          
    834         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html?format=raw#_pltbase">_EXTRA</a></dt> 
    835         <dd>a keyword from the routine pltbase</dd> 
    836          
    837         <dt><a href="./Colors/newpalette.html?format=raw#_newpalette">_EXTRA</a></dt> 
    838         <dd>a keyword from the routine newpalette</dd> 
    839          
    840         <dt><a href="./Calendar/date2string.html?format=raw#_date2string">_EXTRA</a></dt> 
    841         <dd>a keyword from the routine date2string</dd> 
    842          
    843         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html?format=raw#_read_vermair">_EXTRA</a></dt> 
    844         <dd>a keyword from the routine read_vermair</dd> 
    845          
    846         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw#_pltz">_EXTRA</a></dt> 
    847         <dd>a keyword from the routine pltz</dd> 
    848          
    849         <dt><a href="./ReadWrite/ncdf_timeget.html?format=raw#_ncdf_timeget">_EXTRA</a></dt> 
    850         <dd>a keyword from the routine ncdf_timeget</dd> 
    851          
    852         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html?format=raw#_scontour">_EXTRA</a></dt> 
    853         <dd>a keyword from the routine scontour</dd> 
    854          
    855         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">_EXTRA</a></dt> 
    856         <dd>a keyword from the routine splot</dd> 
    857          
    858         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">_EXTRA</a></dt> 
    859         <dd>a keyword from the routine tvplus</dd> 
    860          
    861         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html?format=raw#_addaxe">_EXTRA</a></dt> 
    862         <dd>a keyword from the routine addaxe</dd> 
    863          
    864         <dt><a href="./ReadWrite/read_grads.html?format=raw#_read_grads">_EXTRA</a></dt> 
    865         <dd>a keyword from the routine read_grads</dd> 
    866          
    867         <dt><a href="./ReadWrite/scanctl.html?format=raw#_scanctl">_EXTRA</a></dt> 
    868         <dd>a keyword from the routine scanctl</dd> 
    869          
    870         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html?format=raw#_checkfield">_EXTRA</a></dt> 
    871         <dd>a keyword from the routine checkfield</dd> 
    872          
    873         <dt><a href="./Calendar/monthname.html?format=raw#_monthname">_EXTRA</a></dt> 
    874         <dd>a keyword from the routine monthname</dd> 
    875          
    876         <dt><a href="./ToBeReviewed/WIDGET/slec.html?format=raw#_slec">_EXTRA</a></dt> 
    877         <dd>a keyword from the routine slec</dd> 
    878          
    879         <dt><a href="./Grid/ncdf_meshread.html?format=raw#_ncdf_meshread">_EXTRA</a></dt> 
    880         <dd>a keyword from the routine ncdf_meshread</dd> 
    881          
    882         <dt><a href="./Interpolation/clickincell.html?format=raw#_clickincell">_EXTRA</a></dt> 
    883         <dd>a keyword from the routine clickincell</dd> 
    884          
    885         <dt><a href="./ToBeReviewed/WIDGET/xxx.html?format=raw#_xxx">_EXTRA</a></dt> 
    886         <dd>a keyword from the routine xxx</dd> 
    887          
    888         <dt><a href="./Utilities/createfunc.html?format=raw#_createfunc">_EXTRA</a></dt> 
    889         <dd>a keyword from the routine createfunc</dd> 
    890          
    891         <dt><a href="./Utilities/createpro.html?format=raw#_createpro">_EXTRA</a></dt> 
    892         <dd>a keyword from the routine createpro</dd> 
    893          
    894         <dt><a href="./Colors/lct.html?format=raw#_lct">_EXTRA</a></dt> 
    895         <dd>a keyword from the routine lct</dd> 
    896          
    897         <dt><a href="./Obsolete/juldate.html?format=raw#_juldate">_EXTRA</a></dt> 
    898         <dd>a keyword from the routine juldate</dd> 
    899          
    900         <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html?format=raw#_LABEL_DATE">_EXTRA</a></dt> 
    901         <dd>a keyword from the routine LABEL_DATE</dd> 
    902          
    903         <dt><a href="./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html?format=raw#_ajoutvect">_EXTRA</a></dt> 
    904         <dd>a keyword from the routine ajoutvect</dd> 
    905          
    906         <dt><a href="./Utilities/text_box.html?format=raw#_text_box">_EXTRA</a></dt> 
    907         <dd>a keyword from the routine text_box</dd> 
    908          
    909         <dt><a href="./Obsolete/ncdf_meshlec.html?format=raw#_ncdf_meshlec">_EXTRA</a></dt> 
    910         <dd>a keyword from the routine ncdf_meshlec</dd> 
    911          
    912         <dt><a href="./ToBeReviewed/PLOTS/axe.html?format=raw#_axe">_EXTRA</a></dt> 
    913         <dd>a keyword from the routine axe</dd> 
     918        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw.html?format=raw#_letsdraw">_extra</a></dt> 
     919        <dd>a keyword from the routine letsdraw</dd> 
     920         
     921        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/loadgrid.html?format=raw#_loadgrid">_extra</a></dt> 
     922        <dd>a keyword from the routine loadgrid</dd> 
     923         
     924        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/scanfile.html?format=raw#_scanfile">_extra</a></dt> 
     925        <dd>a keyword from the routine scanfile</dd> 
     926         
     927        <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html?format=raw#_selectfile">_extra</a></dt> 
     928        <dd>a keyword from the routine selectfile</dd> 
     929         
     930        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html?format=raw#_cw_calendar">_extra</a></dt> 
     931        <dd>a keyword from the routine cw_calendar</dd> 
     932         
     933        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html?format=raw#_cw_combobox_pm">_extra</a></dt> 
     934        <dd>a keyword from the routine cw_combobox_pm</dd> 
     935         
     936        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">_extra</a></dt> 
     937        <dd>a keyword from the routine cw_domain</dd> 
     938         
     939        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">_extra</a></dt> 
     940        <dd>a keyword from the routine cw_droplist_pm</dd> 
     941         
     942        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">_extra</a></dt> 
     943        <dd>a keyword from the routine cw_pagelayout</dd> 
     944         
     945        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">_extra</a></dt> 
     946        <dd>a keyword from the routine cw_slide_slice</dd> 
     947         
     948        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html?format=raw#_cw_slider_pm">_extra</a></dt> 
     949        <dd>a keyword from the routine cw_slider_pm</dd> 
     950         
     951        <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html?format=raw#_cw_specifie">_extra</a></dt> 
     952        <dd>a keyword from the routine cw_specifie</dd> 
     953         
     954        <dt><a href="./ToBeReviewed/WIDGET/xquestion.html?format=raw#_xquestion">_extra</a></dt> 
     955        <dd>a keyword from the routine xquestion</dd> 
     956         
     957        <dt><a href="./ToBeReviewed/WIDGET/xx.html?format=raw#_xx">_extra</a></dt> 
     958        <dd>a keyword from the routine xx</dd> 
     959         
     960        <dt><a href="./Utilities/find.html?format=raw#_find">_extra</a></dt> 
     961        <dd>a keyword from the routine find</dd> 
     962         
     963        <dt><a href="./Utilities/isadirectory.html?format=raw#_isadirectory">_extra</a></dt> 
     964        <dd>a keyword from the routine isadirectory</dd> 
     965         
     966        <dt><a href="./Utilities/isafile.html?format=raw#_isafile">_extra</a></dt> 
     967        <dd>a keyword from the routine isafile</dd> 
     968         
     969        <dt><a href="./Utilities/report.html?format=raw#_report">_extra</a></dt> 
     970        <dd>a keyword from the routine report</dd> 
     971         
     972        <dt><a href="./Utilities/xfile.html?format=raw#_xfile">_extra</a></dt> 
     973        <dd>a keyword from the routine xfile</dd> 
     974         
     975        <dt><a href="./Utilities/xhelp.html?format=raw#_xhelp">_extra</a></dt> 
     976        <dd>a keyword from the routine xhelp</dd> 
     977         
     978        <dt><a href="./buildinit.html?format=raw#_xask">_extra</a></dt> 
     979        <dd>a keyword from the routine xask</dd> 
     980         
     981        <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">_extra</a></dt> 
     982        <dd>a keyword from the routine COLORBAR</dd> 
     983         
     984        <dt><a href="./Grid/computegrid.html?format=raw#_computegrid">_extra</a></dt> 
     985        <dd>a keyword from the routine computegrid</dd> 
     986         
     987        <dt><a href="./Obsolete/cp.html?format=raw#_cp">_extra</a></dt> 
     988        <dd>a keyword from the routine cp</dd> 
     989         
     990        <dt><a href="./Postscript/openps.html?format=raw#_openps">_extra</a></dt> 
     991        <dd>a keyword from the routine openps</dd> 
     992         
     993        <dt><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw#_depth2level">_extra</a></dt> 
     994        <dd>a keyword from the routine depth2level</dd> 
     995         
     996        <dt><a href="./ToBeReviewed/CALCULS/depth2mask.html?format=raw#_depth2mask">_extra</a></dt> 
     997        <dd>a keyword from the routine depth2mask</dd> 
     998         
     999        <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">_extra</a></dt> 
     1000        <dd>a keyword from the routine grossemoyenne</dd> 
     1001         
     1002        <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">_extra</a></dt> 
     1003        <dd>a keyword from the routine moyenne</dd> 
     1004         
     1005        <dt><a href="./ToBeReviewed/CALCULS/norme.html?format=raw#_norme">_extra</a></dt> 
     1006        <dd>a keyword from the routine norme</dd> 
     1007         
     1008        <dt><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw#_remplit">_extra</a></dt> 
     1009        <dd>a keyword from the routine remplit</dd> 
     1010         
     1011        <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">_extra</a></dt> 
     1012        <dd>a keyword from the routine decoupeterre</dd> 
     1013         
     1014        <dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">_extra</a></dt> 
     1015        <dd>a keyword from the routine domdef</dd> 
     1016         
     1017        <dt><a href="./ToBeReviewed/GRILLE/tracegrille.html?format=raw#_tracegrille">_extra</a></dt> 
     1018        <dd>a keyword from the routine tracegrille</dd> 
     1019         
     1020        <dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval">_extra</a></dt> 
     1021        <dd>a keyword from the routine cw_selectinterval</dd> 
     1022         
     1023        <dt><a href="./ToBeReviewed/HOPE/read_hope.html?format=raw#_read_hope">_extra</a></dt> 
     1024        <dd>a keyword from the routine read_hope</dd> 
     1025         
     1026        <dt><a href="./ToBeReviewed/HOPE/xrh.html?format=raw#_xrh">_extra</a></dt> 
     1027        <dd>a keyword from the routine xrh</dd> 
     1028         
     1029        <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">_extra</a></dt> 
     1030        <dd>a keyword from the routine ncdf_lec</dd> 
     1031         
     1032        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">_extra</a></dt> 
     1033        <dd>a keyword from the routine plt</dd> 
     1034         
     1035        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">_extra</a></dt> 
     1036        <dd>a keyword from the routine plt1d</dd> 
     1037         
     1038        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">_extra</a></dt> 
     1039        <dd>a keyword from the routine pltsc</dd> 
     1040         
     1041        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">_extra</a></dt> 
     1042        <dd>a keyword from the routine pltt</dd> 
     1043         
     1044        <dt><a href="./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html?format=raw#_sbar_plot">_extra</a></dt> 
     1045        <dd>a keyword from the routine sbar_plot</dd> 
     1046         
     1047        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">_extra</a></dt> 
     1048        <dd>a keyword from the routine axis4pltz</dd> 
     1049         
     1050        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">_extra</a></dt> 
     1051        <dd>a keyword from the routine barrecouleur</dd> 
     1052         
     1053        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">_extra</a></dt> 
     1054        <dd>a keyword from the routine checktypeminmax</dd> 
     1055         
     1056        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">_extra</a></dt> 
     1057        <dd>a keyword from the routine determineminmax</dd> 
     1058         
     1059        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placecolor.html?format=raw#_placecolor">_extra</a></dt> 
     1060        <dd>a keyword from the routine placecolor</dd> 
     1061         
     1062        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">_extra</a></dt> 
     1063        <dd>a keyword from the routine placedessin</dd> 
     1064         
     1065        <dt><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw#_terminedessin">_extra</a></dt> 
     1066        <dd>a keyword from the routine terminedessin</dd> 
     1067         
     1068        <dt><a href="./ToBeReviewed/PLOTS/VECTEUR/vecteur.html?format=raw#_vecteur">_extra</a></dt> 
     1069        <dd>a keyword from the routine vecteur</dd> 
     1070         
     1071        <dt><a href="./ToBeReviewed/PLOTS/plotsym.html?format=raw#_plotsym">_extra</a></dt> 
     1072        <dd>a keyword from the routine plotsym</dd> 
     1073         
     1074        <dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">_extra</a></dt> 
     1075        <dd>a keyword from the routine calibre</dd> 
     1076         
     1077        <dt><a href="./ToBeReviewed/STRING/string2struct.html?format=raw#_too_cool">_extra</a></dt> 
     1078        <dd>a keyword from the routine too_cool</dd> 
     1079         
     1080        <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_draw_corner_triangle">_extra</a></dt> 
     1081        <dd>a keyword from the routine draw_corner_triangle</dd> 
     1082         
     1083        <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_completecointerre">_extra</a></dt> 
     1084        <dd>a keyword from the routine completecointerre</dd> 
     1085         
     1086        <dt><a href="./ToBeReviewed/TRIANGULATION/dessinetri.html?format=raw#_dessinetri">_extra</a></dt> 
     1087        <dd>a keyword from the routine dessinetri</dd> 
     1088         
     1089        <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html?format=raw#_drawcoast_c">_extra</a></dt> 
     1090        <dd>a keyword from the routine drawcoast_c</dd> 
     1091         
     1092        <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">_extra</a></dt> 
     1093        <dd>a keyword from the routine drawcoast_e</dd> 
     1094         
     1095        <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">_extra</a></dt> 
     1096        <dd>a keyword from the routine drawsectionbottom</dd> 
     1097         
     1098        <dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">_extra</a></dt> 
     1099        <dd>a keyword from the routine fillcornermask</dd> 
     1100         
     1101        <dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">_extra</a></dt> 
     1102        <dd>a keyword from the routine section</dd> 
     1103         
     1104        <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">_extra</a></dt> 
     1105        <dd>a keyword from the routine tracemask</dd> 
     1106         
     1107        <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">_extra</a></dt> 
     1108        <dd>a keyword from the routine triangule</dd> 
    9141109         
    9151110        <dt><a href="./ToBeReviewed/UTILITAIRE/get_extra.html?format=raw#_get_extra">_extra</a></dt> 
    9161111        <dd>a keyword from the routine get_extra</dd> 
    9171112         
    918         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw.html?format=raw#_letsdraw">_extra</a></dt> 
    919         <dd>a keyword from the routine letsdraw</dd> 
    920          
    921         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/loadgrid.html?format=raw#_loadgrid">_extra</a></dt> 
    922         <dd>a keyword from the routine loadgrid</dd> 
    923          
    924         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/scanfile.html?format=raw#_scanfile">_extra</a></dt> 
    925         <dd>a keyword from the routine scanfile</dd> 
    926          
    927         <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html?format=raw#_selectfile">_extra</a></dt> 
    928         <dd>a keyword from the routine selectfile</dd> 
    929          
    930         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html?format=raw#_cw_calendar">_extra</a></dt> 
    931         <dd>a keyword from the routine cw_calendar</dd> 
    932          
    933         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html?format=raw#_cw_combobox_pm">_extra</a></dt> 
    934         <dd>a keyword from the routine cw_combobox_pm</dd> 
    935          
    936         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html?format=raw#_cw_domain">_extra</a></dt> 
    937         <dd>a keyword from the routine cw_domain</dd> 
    938          
    939         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html?format=raw#_cw_droplist_pm">_extra</a></dt> 
    940         <dd>a keyword from the routine cw_droplist_pm</dd> 
    941          
    942         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html?format=raw#_cw_pagelayout">_extra</a></dt> 
    943         <dd>a keyword from the routine cw_pagelayout</dd> 
    944          
    945         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html?format=raw#_cw_slide_slice">_extra</a></dt> 
    946         <dd>a keyword from the routine cw_slide_slice</dd> 
    947          
    948         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html?format=raw#_cw_slider_pm">_extra</a></dt> 
    949         <dd>a keyword from the routine cw_slider_pm</dd> 
    950          
    951         <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html?format=raw#_cw_specifie">_extra</a></dt> 
    952         <dd>a keyword from the routine cw_specifie</dd> 
    953          
    954         <dt><a href="./ToBeReviewed/WIDGET/xquestion.html?format=raw#_xquestion">_extra</a></dt> 
    955         <dd>a keyword from the routine xquestion</dd> 
    956          
    957         <dt><a href="./ToBeReviewed/WIDGET/xx.html?format=raw#_xx">_extra</a></dt> 
    958         <dd>a keyword from the routine xx</dd> 
    959          
    960         <dt><a href="./Utilities/find.html?format=raw#_find">_extra</a></dt> 
    961         <dd>a keyword from the routine find</dd> 
    962          
    963         <dt><a href="./Utilities/isadirectory.html?format=raw#_isadirectory">_extra</a></dt> 
    964         <dd>a keyword from the routine isadirectory</dd> 
    965          
    966         <dt><a href="./Utilities/isafile.html?format=raw#_isafile">_extra</a></dt> 
    967         <dd>a keyword from the routine isafile</dd> 
    968          
    969         <dt><a href="./Utilities/report.html?format=raw#_report">_extra</a></dt> 
    970         <dd>a keyword from the routine report</dd> 
    971          
    972         <dt><a href="./Utilities/xfile.html?format=raw#_xfile">_extra</a></dt> 
    973         <dd>a keyword from the routine xfile</dd> 
    974          
    975         <dt><a href="./Utilities/xhelp.html?format=raw#_xhelp">_extra</a></dt> 
    976         <dd>a keyword from the routine xhelp</dd> 
    977          
    978         <dt><a href="./buildinit.html?format=raw#_xask">_extra</a></dt> 
    979         <dd>a keyword from the routine xask</dd> 
    980          
    981         <dt><a href="./Colors/colorbar.html?format=raw#_COLORBAR">_extra</a></dt> 
    982         <dd>a keyword from the routine COLORBAR</dd> 
    983          
    984         <dt><a href="./Grid/computegrid.html?format=raw#_computegrid">_extra</a></dt> 
    985         <dd>a keyword from the routine computegrid</dd> 
    986          
    987         <dt><a href="./Obsolete/cp.html?format=raw#_cp">_extra</a></dt> 
    988         <dd>a keyword from the routine cp</dd> 
    989          
    990         <dt><a href="./Postscript/openps.html?format=raw#_openps">_extra</a></dt> 
    991         <dd>a keyword from the routine openps</dd> 
    992          
    993         <dt><a href="./ToBeReviewed/CALCULS/depth2level.html?format=raw#_depth2level">_extra</a></dt> 
    994         <dd>a keyword from the routine depth2level</dd> 
    995          
    996         <dt><a href="./ToBeReviewed/CALCULS/depth2mask.html?format=raw#_depth2mask">_extra</a></dt> 
    997         <dd>a keyword from the routine depth2mask</dd> 
    998          
    999         <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html?format=raw#_grossemoyenne">_extra</a></dt> 
    1000         <dd>a keyword from the routine grossemoyenne</dd> 
    1001          
    1002         <dt><a href="./ToBeReviewed/CALCULS/moyenne.html?format=raw#_moyenne">_extra</a></dt> 
    1003         <dd>a keyword from the routine moyenne</dd> 
    1004          
    1005         <dt><a href="./ToBeReviewed/CALCULS/norme.html?format=raw#_norme">_extra</a></dt> 
    1006         <dd>a keyword from the routine norme</dd> 
    1007          
    1008         <dt><a href="./ToBeReviewed/CALCULS/remplit.html?format=raw#_remplit">_extra</a></dt> 
    1009         <dd>a keyword from the routine remplit</dd> 
    1010          
    1011         <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html?format=raw#_decoupeterre">_extra</a></dt> 
    1012         <dd>a keyword from the routine decoupeterre</dd> 
    1013          
    1014         <dt><a href="./ToBeReviewed/GRILLE/domdef.html?format=raw#_domdef">_extra</a></dt> 
    1015         <dd>a keyword from the routine domdef</dd> 
    1016          
    1017         <dt><a href="./ToBeReviewed/GRILLE/tracegrille.html?format=raw#_tracegrille">_extra</a></dt> 
    1018         <dd>a keyword from the routine tracegrille</dd> 
    1019          
    1020         <dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html?format=raw#_cw_selectinterval">_extra</a></dt> 
    1021         <dd>a keyword from the routine cw_selectinterval</dd> 
    1022          
    1023         <dt><a href="./ToBeReviewed/HOPE/read_hope.html?format=raw#_read_hope">_extra</a></dt> 
    1024         <dd>a keyword from the routine read_hope</dd> 
    1025          
    1026         <dt><a href="./ToBeReviewed/HOPE/xrh.html?format=raw#_xrh">_extra</a></dt> 
    1027         <dd>a keyword from the routine xrh</dd> 
    1028          
    1029         <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html?format=raw#_ncdf_lec">_extra</a></dt> 
    1030         <dd>a keyword from the routine ncdf_lec</dd> 
    1031          
    1032         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html?format=raw#_plt">_extra</a></dt> 
    1033         <dd>a keyword from the routine plt</dd> 
    1034          
    1035         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html?format=raw#_plt1d">_extra</a></dt> 
    1036         <dd>a keyword from the routine plt1d</dd> 
    1037          
    1038         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html?format=raw#_pltsc">_extra</a></dt> 
    1039         <dd>a keyword from the routine pltsc</dd> 
    1040          
    1041         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html?format=raw#_pltt">_extra</a></dt> 
    1042         <dd>a keyword from the routine pltt</dd> 
    1043          
    1044         <dt><a href="./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html?format=raw#_sbar_plot">_extra</a></dt> 
    1045         <dd>a keyword from the routine sbar_plot</dd> 
    1046          
    1047         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html?format=raw#_axis4pltz">_extra</a></dt> 
    1048         <dd>a keyword from the routine axis4pltz</dd> 
    1049          
    1050         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html?format=raw#_barrecouleur">_extra</a></dt> 
    1051         <dd>a keyword from the routine barrecouleur</dd> 
    1052          
    1053         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html?format=raw#_checktypeminmax">_extra</a></dt> 
    1054         <dd>a keyword from the routine checktypeminmax</dd> 
    1055          
    1056         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html?format=raw#_determineminmax">_extra</a></dt> 
    1057         <dd>a keyword from the routine determineminmax</dd> 
    1058          
    1059         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placecolor.html?format=raw#_placecolor">_extra</a></dt> 
    1060         <dd>a keyword from the routine placecolor</dd> 
    1061          
    1062         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html?format=raw#_placedessin">_extra</a></dt> 
    1063         <dd>a keyword from the routine placedessin</dd> 
    1064          
    1065         <dt><a href="./ToBeReviewed/PLOTS/DIVERS/terminedessin.html?format=raw#_terminedessin">_extra</a></dt> 
    1066         <dd>a keyword from the routine terminedessin</dd> 
    1067          
    1068         <dt><a href="./ToBeReviewed/PLOTS/VECTEUR/vecteur.html?format=raw#_vecteur">_extra</a></dt> 
    1069         <dd>a keyword from the routine vecteur</dd> 
    1070          
    1071         <dt><a href="./ToBeReviewed/PLOTS/plotsym.html?format=raw#_plotsym">_extra</a></dt> 
    1072         <dd>a keyword from the routine plotsym</dd> 
    1073          
    1074         <dt><a href="./ToBeReviewed/POSTSCRIPT/calibre.html?format=raw#_calibre">_extra</a></dt> 
    1075         <dd>a keyword from the routine calibre</dd> 
    1076          
    1077         <dt><a href="./ToBeReviewed/STRING/string2struct.html?format=raw#_too_cool">_extra</a></dt> 
    1078         <dd>a keyword from the routine too_cool</dd> 
    1079          
    1080         <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_draw_corner_triangle">_extra</a></dt> 
    1081         <dd>a keyword from the routine draw_corner_triangle</dd> 
    1082          
    1083         <dt><a href="./ToBeReviewed/TRIANGULATION/completecointerre.html?format=raw#_completecointerre">_extra</a></dt> 
    1084         <dd>a keyword from the routine completecointerre</dd> 
    1085          
    1086         <dt><a href="./ToBeReviewed/TRIANGULATION/dessinetri.html?format=raw#_dessinetri">_extra</a></dt> 
    1087         <dd>a keyword from the routine dessinetri</dd> 
    1088          
    1089         <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html?format=raw#_drawcoast_c">_extra</a></dt> 
    1090         <dd>a keyword from the routine drawcoast_c</dd> 
    1091          
    1092         <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html?format=raw#_drawcoast_e">_extra</a></dt> 
    1093         <dd>a keyword from the routine drawcoast_e</dd> 
    1094          
    1095         <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html?format=raw#_drawsectionbottom">_extra</a></dt> 
    1096         <dd>a keyword from the routine drawsectionbottom</dd> 
    1097          
    1098         <dt><a href="./ToBeReviewed/TRIANGULATION/fillcornermask.html?format=raw#_fillcornermask">_extra</a></dt> 
    1099         <dd>a keyword from the routine fillcornermask</dd> 
    1100          
    1101         <dt><a href="./ToBeReviewed/TRIANGULATION/section.html?format=raw#_section">_extra</a></dt> 
    1102         <dd>a keyword from the routine section</dd> 
    1103          
    1104         <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html?format=raw#_tracemask">_extra</a></dt> 
    1105         <dd>a keyword from the routine tracemask</dd> 
    1106          
    1107         <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html?format=raw#_triangule">_extra</a></dt> 
    1108         <dd>a keyword from the routine triangule</dd> 
    1109          
    11101113        <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html?format=raw#__str">_str</a></dt> 
    11111114        <dd>a function from the file ncdf_quickwrite_helper2.pro</dd> 
  • trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html

    r151 r153  
    14091409</tr> 
    14101410 
     1411</table><a href="./Obsolete/congridseb.html?format=raw">./Obsolete/congridseb.pro</a> 
     1412<table> 
     1413 
     1414<tr> 
     1415<td class="docroutine"><a href="./Obsolete/congridseb.html?format=raw#_congridseb">congridseb</a></td> 
     1416<td class="docstat partialdoc">partially documented</td> 
     1417</tr> 
     1418 
    14111419</table><a href="./Obsolete/fictype.html?format=raw">./Obsolete/fictype.pro</a> 
    14121420<table> 
     
    21292137</tr> 
    21302138 
     2139</table><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/pltv.pro</a> 
     2140<table> 
     2141 
     2142<tr> 
     2143<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html?format=raw#_pltv">pltv</a></td> 
     2144<td class="docstat partialdoc">partially documented</td> 
     2145</tr> 
     2146 
    21312147</table><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/pltz.pro</a> 
    21322148<table> 
     
    21582174<tr> 
    21592175<td class="docroutine"><a href="./ToBeReviewed/PLOTS/DESSINE/splot.html?format=raw#_splot">splot</a></td> 
    2160 <td class="docstat partialdoc">partially documented</td> 
    2161 </tr> 
    2162  
    2163 </table><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw">./ToBeReviewed/PLOTS/DESSINE/tvplus.pro</a> 
    2164 <table> 
    2165  
    2166 <tr> 
    2167 <td class="docroutine"><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html?format=raw#_tvplus">tvplus</a></td> 
    21682176<td class="docstat partialdoc">partially documented</td> 
    21692177</tr> 
     
    28162824</table></div> 
    28172825<div id="obsolete"> 
    2818   <h2>Obsolete routines</h2><a href="./Obsolete/cp.html?format=raw">./Obsolete/cp.pro</a> 
     2826  <h2>Obsolete routines</h2><a href="./Obsolete/congridseb.html?format=raw">./Obsolete/congridseb.pro</a> 
     2827<table> 
     2828 
     2829<tr> 
     2830<td class="obsroutine"><a href="./Obsolete/congridseb.html?format=raw#_congridseb">congridseb</a></td> 
     2831</tr> 
     2832 
     2833</table><a href="./Obsolete/cp.html?format=raw">./Obsolete/cp.pro</a> 
    28192834<table> 
    28202835 
  • trunk/SRC/Documentation/idldoc_html_output/overview.html

    r151 r153  
    968968        <tr> 
    969969          <td>PRO files</td> 
    970           <td class="value">         391</td> 
     970          <td class="value">         392</td> 
    971971        </tr> 
    972972        <tr> 
     
    980980        <tr> 
    981981          <td>Routines/methods</td> 
    982           <td class="value">         731</td> 
     982          <td class="value">         732</td> 
    983983        </tr> 
    984984        <tr> 
    985985          <td>Lines of code</td> 
    986           <td class="value">       58915</td> 
     986          <td class="value">       59136</td> 
    987987        </tr> 
    988988      </table> 
  • trunk/SRC/Documentation/idldoc_html_output/search.js

    r151 r153  
    3030a[28] = new Array("./ForOldVersion/updatenew.html", "updatenew.pro", "", ""); 
    3131a[29] = new Array("./ForOldVersion/updateold.html", "updateold.pro", "", ""); 
    32 a[30] = new Array("./Grid/changemsk.html", "changemsk.pro", "", "           file_comments add land points on a 2D land sea mask      categories grid      param msk  in required  a 2D land sea mask  with 1 on sea and 0 on land      keyword CELLSIZE size  in pixel  of the square                     representing one point of the mask      keyword NOUSEINFOS activite to supress the printed message explaining                       how to use tvplus      returns newmsk the new 2D land sea mask      examples   IDL  a   changemsk tmask 0     to add ocean points   IDL  a   1   changemsk 1   tmask 0       history        Sebastien Masson  smasson lodyc jussieu fr         June 2006      version  Id: changemsk pro 124 2006 07 06 13:46:17Z pinsard           function changemsk tab  CELLSIZE   cellsize     compile_opt idl2  strictarrsubs      newmsk    1    taille   size tab     if taille 0  NE 2 then return  newmsk    newmsk byte tab     if keyword_set cellsize  THEN cellsize   long cellsize       ELSE cellsize   long 2     window xsize taille 1 cellsize ysize taille 2 cellsize    tvscl  congridseb newmsk  taille 1 cellsize  taille 2 cellsize      if NOT keyword_set nouseinfos  then begin     print   left button  : use it twice to define the diagonal of the rectangle to be set to 0  land      print   middle button: put 0  land  on the clicked point      print   right button : quit    endif    cursor x1 y1 device   up    while  mouse button ne 4  do begin       case  mouse button of          0:return  newmsk          1:BEGIN             cursor x2 y2 device   up             x    x1  x2              x   x sort x              x   round x cellsize              y    y1  y2              y   y sort y              y   round y cellsize              newmsk x 0 :x 1  y 0 :y 1      0             tvscl  replicate 0 x 1 x 0 1 cellsize                                 y 1 y 0 1 cellsize                  x 0 cellsize y 0 cellsize          end          2:BEGIN             x1   round x1 cellsize              y1   round y1 cellsize              newmsk x1  y1    0             tvscl replicate 0 cellsize cellsize                  x1 cellsize y1 cellsize            END          ELSE:       endcase       cursor x1 y1 device   up    endwhile     return  newmsk end "); 
     32a[30] = new Array("./Grid/changemsk.html", "changemsk.pro", "", "           file_comments add land points on a 2D land sea mask      categories grid      param msk  in required  a 2D land sea mask  with 1 on sea and 0 on land      keyword CELLSIZE size  in pixel  of the square                     representing one point of the mask      keyword NOUSEINFOS activite to supress the printed message explaining                       how to use tvplus      returns newmsk the new 2D land sea mask      examples   IDL  a   changemsk tmask 0     to add ocean points   IDL  a   1   changemsk 1   tmask 0       history        Sebastien Masson  smasson lodyc jussieu fr         June 2006      version  Id: changemsk pro 152 2006 08 10 07:01:35Z smasson           function changemsk tab  CELLSIZE   cellsize     compile_opt idl2  strictarrsubs      newmsk    1    taille   size tab     if taille 0  NE 2 then return  newmsk    newmsk byte tab     if keyword_set cellsize  THEN cellsize   long cellsize       ELSE cellsize   long 2     window xsize taille 1 cellsize ysize taille 2 cellsize    tvscl  congrid newmsk  taille 1 cellsize  taille 2 cellsize      if NOT keyword_set nouseinfos  then begin     print   left button  : use it twice to define the diagonal of the rectangle to be set to 0  land      print   middle button: put 0  land  on the clicked point      print   right button : quit    endif    cursor x1 y1 device   up    while  mouse button ne 4  do begin       case  mouse button of          0:return  newmsk          1:BEGIN             cursor x2 y2 device   up             x    x1  x2              x   x sort x              x   round x cellsize              y    y1  y2              y   y sort y              y   round y cellsize              newmsk x 0 :x 1  y 0 :y 1      0             tvscl  replicate 0 x 1 x 0 1 cellsize                                 y 1 y 0 1 cellsize                  x 0 cellsize y 0 cellsize          end          2:BEGIN             x1   round x1 cellsize              y1   round y1 cellsize              newmsk x1  y1    0             tvscl replicate 0 cellsize cellsize                  x1 cellsize y1 cellsize            END          ELSE:       endcase       cursor x1 y1 device   up    endwhile     return  newmsk end "); 
    3333a[31] = new Array("./Grid/computegrid.html", "computegrid.pro", "", "             file_comments compute the grid parameters from cm_4mesh common:           computegrid  startx  starty  stepx  stepy  nx  ny         computegrid  startx  starty  stepx  stepy         computegrid  xaxis   xaxis  yaxis   yaxis         or a suitable mix      glamt   glamf   gphit   gphit   e1t   e2t   horizontal parameters     glamu  in    glamv  in    gphiu  in    gphiv  in    e1u  in    e1v  in    e1f  in    e2u  in    e2v  in    e2f  in    horizontal parameters if FULLCGRID keyword is defined     gdept   gdepw   e3t   e3w   verticals parameters     tmask   masks     umaskred  in    vmaskred  in    fmaskredx  in    fmaskredy  in    masks if FULLCGRID keyword is defined     triangles_list   triangulation      categories grid      param startx  in required  scalar  x starting point    param starty  in required  scalar  y starting point    param stepxin  in required  scalar or vector: x direction step  must be   0               if vector nx is not used    param stepyin  in required  scalar or vector: y direction step                could be   0  south to north  or  lon1 and lon2   lon1 le 360         key_shift will be defined automaticaly computed according to         glamboundary by using the FIRST LINE of glamt but         key_shift will   0 only if key_periodic   1      keyword MASK to specify the mask with a 2 or 3 dimension array      keyword 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      keyword 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       keyword PLAIN force PERIODIC   0  SHIFT   0  STRIDE    1  1  1  and         suppress the automatic redefinition of the domain in case of         x periodicity overlap  y periodicity overlap  ORCA type only          and mask border to 0       keyword SHIFT   scalar to force the manual definition of key_shift  By         default  key_shift is automaticaly computed according to         glamboundary  when defined  by using the FIRST LINE of glamt  if         key_periodic 0 then in any case key_shift   0       keyword STRCALLING a string containing the calling command used to         call computegrid  this is used by xxx pro       keyword STRIDE  default 1  1  1  a 3 elements vector to specify the stride in x  y  z         direction  The resulting value         will be stored in the common  cm_4mesh  variable key_stride      keyword XAXIS to specify longitude1 with a 1 or 2 dimension array  in         this case startx  stepx and nx are not used but could be         necessary if the y axis is not defined with yaxis  It must be         possible to sort the first line of xaxis in the increasing         order by shifting its elements       keyword YAXIS to specify latitudes with a 1 or 2 dimension array  in         this case starty  stepy and ny are not used but starty and         stepy could be necessary if the x axis is not defined with xaxis          It must be sorted in the increasing or deceasing order          along each column if 2d array       keyword XYINDEX activate to specify that the horizontal grid should         be simply defined by using the index of the points             xaxis   findgen nx  and yaxis   findgen ny          using this keyword forces key_onearth 0      keyword XMINMESH  default 0L     keyword YMINMESH  default 0L     keyword ZMINMESH  default 0L          to define the common variables i xyz minmesh         used to define the grid only in a zoomed part of the original         grid  max value is  XYZ MAXMESH      keyword XMAXMESH  default jpiglo 1     keyword YMAXMESH  default jpjglo 1     keyword ZMAXMESH  default jpkglo 1          to define the common variables i xyz maxmesh         used to define the grid only in a zoomed part of the original         grid  max value is jp ijk glo 1          if  XYZ MAXMESH is negative  then we define i xyz maxmesh as         jp ijk glo   1    XYZ MAXMESH instead of  XYZ MAXMESH        keyword FBASE2TBASE      keyword STRCALLING      keyword ZAXIS to specify the vertical axis with a 1 dimension         array  Must be sorted in the increasing or deceasing order      keyword _EXTRA used to pass your keywords to the created function       uses cm_4mesh cm_4data cm_4cal      restrictions if the grid has x y periodicity orverlap and or if      the mask has 0 everywhere at the border  like a close sea  and      if  we did not activate  plain and xminmesh  xmaxmesh  yminmesh       ymaxmesh keywords are defined to their default values  we redefine      xminmesh  xmaxmesh  yminmesh  ymaxmesh in order to reove the      overlapping part and or to open the domain  avoid ti be forced      to use cell_fill   1       restrictions FUV points definition       history Sebastien Masson  smasson lodyc jussieu fr                         2000 04 20    Sept 2004  several bug fixs to suit C grid type     Aug 2005  rewritte almost everything       version  Id: computegrid pro 134 2006 07 07 10:19:08Z navarro             PRO computegrid  startx  starty  stepxin  stepyin  nxin  nyin                      XAXIS   xaxis  YAXIS   yaxis  ZAXIS   zaxis                      MASK   mask  GLAMBOUNDARY   glamboundary                      XMINMESH   xminmesh  XMAXMESH   xmaxmesh                      YMINMESH   yminmesh  YMAXMESH   ymaxmesh                      ZMINMESH   zminmesh  ZMAXMESH   zmaxmesh                      ONEARTH   onearth  PERIODIC   periodic                      PLAIN   plain  SHIFT   shift  STRIDE   stride                      FULLCGRID   fullcgrid  XYINDEX   xyindex                      FBASE2TBASE   fbase2tbase  STRCALLING   strcalling                      _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       time1   systime 1               for key_performance         Check input parameters       xaxis related parameters     if n_elements xaxis  NE 0 then BEGIN     CASE  size xaxis 0  OF       0:nx   1L       1:nx    size xaxis 1        2:nx    size xaxis 1      ENDCASE   ENDIF ELSE BEGIN     IF n_elements startx  EQ 0 THEN BEGIN       dummy   report If xaxis is not given  startx must be defined        return     ENDIF     CASE n_elements stepxin  OF       0:BEGIN         dummy   report If xaxis is not given  stepxin must be defined          return       END       1:BEGIN         IF n_elements nxin  EQ 0 THEN BEGIN           dummy   report If xaxis is not given and stepxin has only one element  nx must be defined            return         ENDIF ELSE nx   nxin       END       ELSE:nx   n_elements stepxin      ENDCASE   ENDELSE     yaxis related parameters     if n_elements yaxis  NE 0 then BEGIN     CASE  size yaxis 0  OF       0:ny   1L       1:ny    size yaxis 1        2:ny    size yaxis 2      ENDCASE   ENDIF ELSE BEGIN     IF n_elements starty  EQ 0 THEN BEGIN       dummy   report If yaxis is not given  starty must be defined        return     ENDIF     CASE n_elements stepyin  OF       0:BEGIN         dummy   report If yaxis is not given  stepyin must be defined          return       END       1:BEGIN         IF n_elements nyin  EQ 0 THEN BEGIN           dummy   report If yaxis is not given and stepyin has only one element  ny must be defined            return         ENDIF ELSE ny   nyin       END       ELSE:ny   n_elements stepyin      ENDCASE   ENDELSE     zaxis related parameters     if n_elements zaxis  NE 0 then BEGIN     CASE  size zaxis 0  OF       0:nz   1L       1:nz    size zaxis 1        ELSE:BEGIN         print   not coded          stop       END     ENDCASE   ENDIF ELSE nz   1L       Others automatic definitions        jpiglo   long nx    jpjglo   long ny    jpkglo   long nz      impact of plain keyword:     IF keyword_set plain  THEN BEGIN     periodic   0     shift   0     stride    1  1  1    ENDIF     IF n_elements xminmesh  NE 0 THEN ixminmesh   long xminmesh 0  ELSE ixminmesh    0l   IF n_elements xmaxmesh  NE 0 THEN ixmaxmesh   long xmaxmesh 0  ELSE ixmaxmesh    jpiglo 1   IF n_elements yminmesh  NE 0 THEN iyminmesh   long yminmesh 0  ELSE iyminmesh    0l   IF n_elements ymaxmesh  NE 0 THEN iymaxmesh   long ymaxmesh 0  ELSE iymaxmesh    jpjglo 1   IF n_elements zminmesh  NE 0 THEN izminmesh   long zminmesh 0  ELSE izminmesh    0l   IF n_elements zmaxmesh  NE 0 THEN izmaxmesh   long zmaxmesh 0  ELSE izmaxmesh    jpkglo 1     iymaxmesh   iymaxmesh keyword_set fbase2tbase      IF ixmaxmesh LT 0 THEN ixmaxmesh   jpiglo  1   ixmaxmesh   IF iymaxmesh LT 0 THEN iymaxmesh   jpjglo  1   iymaxmesh   IF izmaxmesh LT 0 THEN izmaxmesh   jpkglo  1   izmaxmesh   avoid basics errors    ixmaxmesh   0   ixmaxmesh  ixminmesh  iymaxmesh  iyminmesh  izmaxmesh  izminmesh  temporary glamf   gphif  temporary glamu   gphiu  temporary glamv   gphiv   gdept stepz 2      ENDIF ELSE BEGIN       stepz   1        gdepw   gdept     ENDELSE       e3 tw :         e3t   stepz     IF n_elements stepz  GT 1 THEN BEGIN       e3w   0 5 stepz shift stepz  1        e3w 0    0 5 e3t 0      ENDIF ELSE e3w   e3t       Mask       default mask eq 1   if NOT keyword_set mask  then mask    1     if mask 0  NE  1 then BEGIN     tmask   byte mask ixminmesh:ixmaxmesh  iyminmesh:iymaxmesh  izminmesh:izmaxmesh      tmask   reform tmask  jpi  jpj  jpk   over      if key_shift NE 0 then tmask   shift tmask  key_shift  0  0    because tmask   reverse tmask  2  is not working if the 3rd   dimension of tmask   1  we call reform      IF jpk EQ 1 THEN tmask   reform tmask   over      IF key_yreverse EQ 1 THEN tmask   reverse tmask  2      IF jpk EQ 1 THEN tmask   reform tmask  jpi  jpj  jpk   over      IF key_zreverse EQ 1 THEN tmask   reverse tmask  3      IF jpk EQ 1 THEN tmask   reform tmask  jpi  jpj  jpk   over      IF keyword_set fullcgrid  THEN BEGIN       IF keyword_set key_periodic  THEN BEGIN         msk   tmask shift tmask   1  0  0          umaskred   msk jpi 1            ENDIF ELSE umaskred   tmask jpi 1            vmaskred   tmask  jpj 1          fmaskredy   tmask jpi 1            fmaskredx   tmask  jpj 1        ENDIF   ENDIF ELSE BEGIN     tmask   replicate 1b  jpi  jpj  jpk      IF keyword_set fullcgrid  THEN BEGIN       umaskred    replicate 1b  jpj  jpk        vmaskred    replicate 1b  jpi  jpk        fmaskredy   replicate 1b  jpj  jpk        fmaskredx   replicate 1b  jpi  jpk      ENDIF   ENDELSE     IF jpi GT 2 AND jpj GT 2 AND NOT keyword_set plain         AND ixminmesh EQ 0l AND ixmaxmesh eq jpiglo 1        AND iyminmesh EQ 0l AND iymaxmesh eq jpjglo 1        AND total tmask  0    EQ 0 AND total tmask  jpj 1    EQ 0        AND total tmask 0      EQ 0 AND total tmask jpi 1      EQ 0 THEN BEGIN         xminmesh   1         xmaxmesh    1         yminmesh   1         ymaxmesh    1         computegrid  XAXIS   glamt  YAXIS   gphit  ZAXIS   zaxis                          MASK   mask  GLAMBOUNDARY   glamboundary                          XMINMESH   xminmesh  XMAXMESH   xmaxmesh                          YMINMESH   yminmesh  YMAXMESH   ymaxmesh                          ZMINMESH   zminmesh  ZMAXMESH   zmaxmesh                          ONEARTH   onearth  PERIODIC   periodic                          PLAIN   plain  SHIFT   shift  STRIDE   stride                          FULLCGRID   fullcgrid  XYINDEX   xyindex                          FBASE2TBASE   fbase2tbase  STRCALLING   strcalling                          _extra   ex         return   ENDIF     IF NOT keyword_set fullcgrid  THEN BEGIN     umaskred    values f_nan     vmaskred    values f_nan     fmaskredy    values f_nan     fmaskredx    values f_nan   ENDIF       stride        IF total key_stride  GT 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       glamt    temporary glamt 0: :stride 0  0: :stride 1      gphit    temporary gphit 0: :stride 0  0: :stride 1      e1t    temporary e1t 0: :stride 0  0: :stride 1      e2t    temporary e2t 0: :stride 0  0: :stride 1      tmask    temporary tmask 0: :stride 0  0: :stride 1  0: :stride 2      gdept   gdept 0: :stride 2      gdepw   gdepw 0: :stride 2      e3t   e3t 0: :stride 2      e3w   e3w 0: :stride 2    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       IF jpj EQ 1 THEN BEGIN       glamt   reform glamt  jpi  jpj   over        gphit   reform gphit  jpi  jpj   over        glamf   reform glamf  jpi  jpj   over        gphif   reform gphif  jpi  jpj   over        e1t   reform e1t  jpi  jpj   over        e2t   reform e2t  jpi  jpj   over      ENDIF       IF keyword_set fullcgrid  THEN BEGIN       glamu    temporary glamu 0: :stride 0  0: :stride 1        gphiu    temporary gphiu 0: :stride 0  0: :stride 1        e1u    temporary e1u 0: :stride 0  0: :stride 1        e2u    temporary e2u 0: :stride 0  0: :stride 1        glamv    temporary glamv 0: :stride 0  0: :stride 1        gphiv    temporary gphiv 0: :stride 0  0: :stride 1        e1v    temporary e1v 0: :stride 0  0: :stride 1        e2v    temporary e2v 0: :stride 0  0: :stride 1        e1f    temporary e1f 0: :stride 0  0: :stride 1        e2f    temporary e2f 0: :stride 0  0: :stride 1        umaskred    temporary umaskred 0  0: :stride 1  0: :stride 2        vmaskred    temporary vmaskred 0: :stride 0  0  0: :stride 2        fmaskredy    temporary fmaskredy 0  0: :stride 1  0: :stride 2        fmaskredx    temporary fmaskredx 0: :stride 0  0  0: :stride 2        IF jpj EQ 1 THEN BEGIN         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          e1f   reform e1f  jpi  jpj   over          e2f   reform e2f  jpi  jpj   over        ENDIF     ENDIF   ENDIF       apply all the grid parameters        updateold   domdef       Triangulation       IF total tmask  EQ jpi jpj jpk       AND NOT keyword_set key_irregular  THEN triangles_list    1     ELSE BEGIN   are we using ORCA2       IF jpiglo EQ 182 AND jpi EQ 181 AND jpjglo EQ 149 AND jpj EQ 148 THEN          triangles_list   triangule  ELSE triangles_list   triangule keep_cont    ENDELSE       time axis  default definition        IF n_elements time  EQ 0 OR n_elements jpt  EQ 0 THEN BEGIN     jpt   1     time   0   ENDIF     IF NOT keyword_set key_forgetold  THEN BEGIN  updateold   ENDIF     grid parameters used by xxx       IF NOT keyword_set strcalling  THEN BEGIN     IF n_elements ccmeshparameters  EQ 0 THEN strcalling    computegrid        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     ccreadparameters    funclec_name: read_ncdf                jpidta:jpidta  jpjdta:jpjdta  jpkdta:jpkdta               ixmindta:ixmindta  ixmaxdta:ixmaxdta               iymindta:iymindta  iymaxdta:iymaxdta               izmindta:izmindta  izmaxdta:izmaxdta      IF keyword_set key_performance  EQ 1 THEN       print   time computegrid  systime 1 time1     return end"); 
    3434a[32] = new Array("./Grid/micromeshmask.html", "micromeshmask.pro", "", "       file_comments reduce the size of the NetCDF meshmask created by OPA by   using bit  and not byte  format for the masks and the float format   for the other fields       categories for OPA meshmask files      param inid  in required     param outid  in required     param inname  in required     param outname  in optional       history        July 2004 Sebastien Masson  smasson lodyc jussieu fr       version  Id: micromeshmask pro 134 2006 07 07 10:19:08Z navarro           PRO ncdf_transfer  inid  outid  inname  outname     compile_opt idl2  strictarrsubs     IF n_elements outname  EQ 0 THEN outname   inname   ncdf_varget  inid  inname  zzz   ncdf_varput  outid  outname  float reform zzz   over    RETURN END          param ncfilein  in required    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       param ncfileout  in optional  the name of the uniq reduced meshmask file    default definition is micromeshmask nc      keyword IODIR to define the files path       examples   IDL  meshdir d1fes2 raid2 smasson DATA ORCA05    IDL  micromeshmask   meshmask_ORCA_R05 nc iodir meshdir     PRO micromeshmask  ncfilein  ncfileout  IODIR   iodir     compile_opt idl2  strictarrsubs     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   for the mask  we use  its byte  representation   its y dimension   will be extended to be a multiple of 8  then it will be divided by   8    if  jpj mod 8  eq 0 the jpj_m jpi 8 else jpj_m jpi 8   1   jpj_m    jpj 7 8   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       dummy   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    micromeshmask 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    dimidy_m   ncdf_dimdef cdfidout   y_m  jpj_m    dimidz   ncdf_dimdef cdfidout   z  jpk    global attributs   ncdf_attput  cdfidout   IDL_Program_Name   micromeshmask 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 BEGIN     varid    varid  ncdf_vardef cdfidout  msklist m                                       dimidx  dimidy_m  dimidz   byte        ncdf_attput  cdfidout  varid n_elements varid 1               Comment   the mask is stored as bit  You must use              the binary representation of the byte to get back the data    ENDFOR       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       zzz   byte temporary zzz    zzz must contain only 0 or 1       zzz   temporary zzz  MOD 2   we transpose zzz because we need to work with the y dimension as the   first dimension       zzz   transpose temporary zzz    extend jpj to be a multiple of 8       jpjadd   jpj_m 8 jpj       IF jpjadd NE 0 THEN zzz    temporary zzz  bytarr jpjadd  jpi    reform zzz  to look like output of binary pro       zzz   reform zzz  8  1  jpj_m  jpi   over    convert into  its byte form        zzz   inverse_binary temporary zzz        ncdf_varput  cdfidout  msklist m  transpose temporary zzz              offset    0  0  k  count    jpi  jpj_m  1      ENDFOR   ENDFOR       ncdf_close  cdfid   ncdf_close  cdfidout    RETURN END"); 
     
    6666a[64] = new Array("./Matrix/cmapply.html", "cmapply.pro", "", "     file_comments   Utility function  adapted from CMPRODUCT      version  Id: cmapply pro 136 2006 07 10 15:20:19Z pinsard        todo seb     function cmapply_product  x     compile_opt idl2  strictarrsubs     sz   size x    n   sz 1     while n GT 1 do begin       if  n mod 2  EQ 1 then x 0    x 0    x n 1        n2   floor n 2        x   x 0:n2 1    x n2:        n   n2   endwhile   return  reform x 0   overwrite  end       file_comments   cmapply_redim : Utility function  used to collect collaped dimensions      todo seb     pro cmapply_redim  newarr  dimapply  dimkeep  nkeep  totcol  totkeep     compile_opt idl2  strictarrsubs     sz   size newarr      First task: rearrange dimensions so that the dimensions     that are  kept   ie  uncollapsed  are at the back   dimkeep   where histogram dimapply min 1 max sz 0  ne 1  nkeep    if nkeep EQ 0 then return    newarr   transpose temporary newarr   dimapply 1  dimkeep      totcol is the total number of collapsed elements   totcol   sz dimapply 0    for i   1  n_elements dimapply 1 do totcol   totcol   sz dimapply i    totkeep   sz dimkeep 0 1    for i   1  n_elements dimkeep 1 do totkeep   totkeep   sz dimkeep i 1       this new array has two dimensions:         the first  all elements that will be collapsed         the second  all dimensions that will be preserved      the ordering is so that all elements to be collapsed are      adjacent in memory    newarr   reform newarr   totcol  totkeep   overwrite  end    Main function        file_comments   Applies a function to specified dimensions of an array     Description:     CMAPPLY will apply one of a few select functions to specified   dimensions of an array   Unlike some IDL functions  you  do  have   a choice of which dimensions that are to be  collapsed  by this   function   Iterative loops are avoided where possible  for   performance reasons        The possible functions are:              and number of loop iterations:                Performs a sum  as in TOTAL        number of collapsed dimensions       AND     Finds LOGICAL  AND   not bitwise   same       OR      Finds LOGICAL  OR    not bitwise   same               Performs a product                 LOG_2 no  of collapsed elts          MIN     Finds the minimum value            smaller of no  of collapsed       MAX     Finds the maximum value            or output elements         USER    Applies user defined function      no  of output elements         It is possible to perform user defined operations arrays using     CMAPPLY   The OP parameter is set to  USER:FUNCTNAME  where     FUNCTNAME is the name of a user defined function   The user     defined function should be defined such that it accepts a single     parameter  a vector  and returns a single scalar value   Here is a     prototype for the function definition:          FUNCTION FUNCTNAME  x  KEYWORD1 key1              scalar     function of x or keywords             RETURN  scalar        END       The function may accept keywords   Keyword values are passed in to     CMAPPLY through the FUNCTARGS keywords parameter  and passed to     the user function via the _EXTRA mechanism   Thus  while the     definition of the user function is highly constrained in the     number of positional parameters  there is absolute freedom in     passing keyword parameters        It s worth noting however  that the implementation of user defined     functions is not particularly optimized for speed   Users are     encouraged to implement their own array if the number of output     elements is large       categories Arrays      param OP  in required    The operation to perform  as a string   May be upper or lower case      If a user defined operation is to be passed  then OP is of   the form   USER:FUNCTNAME  where FUNCTNAME is the name of   the user defined function       param ARRAY  in required    An array of values to be operated on    Must not be of type STRING  7  or STRUCTURE  8       param dimapply  in optional default 1  ie  first dimension    An array of dimensions that are to be  collapsed  where   the the first dimension starts with 1  ie  same convention   as IDL function TOTAL   Whereas TOTAL only allows one   dimension to be added  you can specify multiple dimensions   to CMAPPLY   Order does not matter  since all operations   are associative and transitive   NOTE: the dimensions refer   to the  input  array  not the output array   IDL allows a   maximum of 8 dimensions       keyword DOUBLE  default not set    Set this if you wish the internal computations to be done   in double precision if necessary   If ARRAY is double   precision  real or complex  then DOUBLE 1 is implied       keyword TYPE   Set this to the IDL code of the desired output type  refer   to documentation of SIZE   Internal results will be   rounded to the nearest integer if the output type is an   integer type    DEFAULT: same is input type      keyword FUNCTARGS   If OP is  USER:  then the contents of this keyword   are passed to the user function using the _EXTRA   mechanism   This way you can pass additional data to   your user supplied function  via keywords  without   using common blocks    DEFAULT: undefined  i e  no keywords passed by _EXTRA       returns   An array of the required TYPE  whose elements are the result of   the requested operation   Depending on the operation and number of   elements in the input array  the result may be vulnerable to   overflow or underflow       examples       First example:  Shows how CMAPPLY can be used to total the second dimension of the     array called IN   This is equivalent to OUT   TOTAL IN  2        IDL  IN    INDGEN 5 5      IDL  OUT   CMAPPLY  IN   2      IDL  HELP  OUT     OUT             INT         Array 5        Second example:  Input is assumed to be an 5x100 array of 1 s and     0 s indicating the status of 5 detectors at 100 points in time      The desired output is an array of 100 values  indicating whether     all 5 detectors are on  1  at one time   Use the logical AND     operation        IDL  IN   detector_status               5x100 array     IDL  OUT   CMAPPLY AND  IN   1       collapses 1st dimension     IDL  HELP  OUT     OUT             BYTE        Array 100         note that MIN could also have been used in this particular case      although there would have been more loop iterations        Third example:  Shows sum over first and third dimensions in an     array with dimensions 4x4x4:       IDL  IN   INDGEN 4 4 4      IDL  OUT   CMAPPLY  IN   1 3      IDL  PRINT  OUT          408     472     536     600       Fourth example:  A user function  MEDIAN  is used:       IDL  IN   RANDOMN SEED 10 10 5      IDL  OUT   CMAPPLY USER:MEDIAN  IN  3      IDL  HELP  OUT     OUT             FLOAT       Array 10  10         OUT i j  is the median value of IN i j       history Mar 1998  Written  CM     Changed usage message to not bomb  24 Mar 2000  CM     Signficant rewrite for   MIN and MAX  inspired by Todd Clements         FOR loop indices are now type       LONG  copying terms are liberalized  CM  22  Aug 2000     More efficient MAX MIN  inspired by Alex Schuster  CM  25 Jan       2002     Make new MAX MIN actually work with 3d arrays  CM  08 Feb 2002     Add user defined functions  ON_ERROR  CM  09 Feb 2002     Correct bug in MAX MIN initialization of RESULT  CM  05 Dec 2002      Author: Craig B  Markwardt  NASA GSFC Code 662  Greenbelt  MD 20770    craigm lheamail gsfc nasa gov      version  Id: cmapply pro 136 2006 07 10 15:20:19Z pinsard       function cmapply  op  array  dimapply  double dbl  type type                      functargs functargs  nocatch nocatch     compile_opt idl2  strictarrsubs      if n_params  LT 2 then begin       message   USAGE: XX   CMAPPLY OP ARRAY 2   info       message          where OP is     AND  OR  MIN  MAX   info       return   1L   endif   if NOT keyword_set nocatch  then       on_error  2     else       on_error  0      Parameter checking     1  the dimensions of the array   sz   size array    if sz 0  EQ 0 then       message   ERROR: ARRAY must be an array       2  The type of the array   if sz sz 0 1  EQ 0 OR sz sz 0 1  EQ 7 OR sz sz 0 1  EQ 8 then       message   ERROR: Cannot apply to UNDEFINED  STRING  or STRUCTURE    if n_elements type  EQ 0 then type   sz sz 0 1       3  The type of the operation   szop   size op    if szop szop 0 1  NE 7 then       message   ERROR: operation OP was not a string       4  The dimensions to apply  default is to apply to first dim    if n_params  EQ 2 then dimapply   1   dimapply     dimapply     dimapply   dimapply sort dimapply      Sort in ascending order   napply   n_elements dimapply       5  Use double precision if requested or if needed   if n_elements dbl  EQ 0 then begin       dbl 0       if type EQ 5 OR type EQ 9 then dbl 1   endif    newop   strupcase op    newarr   array   newarr   reform newarr  sz 1:sz 0   overwrite    case 1 of            Addition        newop EQ  : begin           for i   0L  napply 1 do begin               newarr   total temporary newarr  dimapply i i  double dbl            endfor       end            Multiplication        newop EQ  : begin   Multiplication  by summation of logarithms            cmapply_redim  newarr  dimapply  dimkeep  nkeep  totcol  totkeep           if nkeep EQ 0 then begin               newarr   reform newarr  n_elements newarr  1   overwrite                return   cmapply_product newarr 0            endif            result   cmapply_product newarr            result   reform result  sz dimkeep 1   overwrite            return  result       end            LOGICAL AND or OR        newop EQ  AND  OR  newop EQ  OR : begin           newarr   temporary newarr  NE 0           totelt   1L           for i   0L  napply 1 do begin               newarr   total temporary newarr  dimapply i i                totelt   totelt   sz dimapply i            endfor           if newop EQ  AND  then return   round newarr  EQ totelt            if newop EQ  OR   then return   round newarr  NE 0        end          Operations requiring a little more attention over how to         iterate        newop EQ  MAX  OR  newop EQ  MIN : begin           cmapply_redim  newarr  dimapply  dimkeep  nkeep  totcol  totkeep           if nkeep EQ 0 then begin               if newop EQ  MAX  then return  max newarr                if newop EQ  MIN  then return  min newarr            endif              Next task: create result array           result   make_array totkeep  type type               Now either iterate over the number of output elements  or             the number of collapsed elements  whichever is smaller            if totcol LT totkeep then begin                 Iterate over the number of collapsed elements               result 0    reform newarr 0 totkeep overwrite                case newop of                    MAX : for i   1L  totcol 1 do                       result 0    result   newarr i                     MIN : for i   1L  totcol 1 do                       result 0    result   newarr i                endcase           endif else begin                 Iterate over the number of output elements               case newop of                    MAX : for i   0L  totkeep 1 do result i    max newarr i                     MIN : for i   0L  totkeep 1 do result i    min newarr i                endcase           endelse            result   reform result  sz dimkeep 1   overwrite            return  result       end          User function        strmid newop 0 4  EQ  USER : begin           functname   strmid newop 5            if functname EQ   then               message   ERROR:  newop  is not a valid operation             cmapply_redim  newarr  dimapply  dimkeep  nkeep  totcol  totkeep           if nkeep EQ 0 then begin               if n_elements functargs  GT 0 then                   return  call_function functname  newarr  _EXTRA functargs                return  call_function functname  newarr            endif              Next task: create result array           result   make_array totkeep  type type               Iterate over the number of output elements           if n_elements functargs  GT 0 then begin               for i   0L  totkeep 1 do                   result i    call_function functname  newarr i  _EXTRA functargs            endif else begin               for i   0L  totkeep 1 do                   result i    call_function functname  newarr i            endelse            result   reform result  sz dimkeep 1   overwrite            return  result       end     endcase    newsz   size newarr    if type EQ newsz newsz 0 1  then return  newarr      Cast the result into the desired type  if necessary   castfns    UNDEF   BYTE   FIX   LONG   FLOAT                  DOUBLE   COMPLEX   UNDEF   UNDEF   DCOMPLEX      if type GE 1 AND type LE 3 then       return  call_function castfns type  round newarr      else       return  call_function castfns type  newarr  end"); 
    6767a[65] = new Array("./Matrix/cmset_op.html", "cmset_op.pro", "", "     hidden      file_comments   Simplified version of CMSET_OP_UNIQ which sorts  and takes the    first  value  whatever that may mean       todo seb     function cmset_op_uniq  a     compile_opt idl2  strictarrsubs     if n_elements a  LE 1 then return  0L    ii   sort a    b   a ii    wh   where b NE shift b   1L  ct    if ct GT 0 then return  ii wh     return  0L   end        file_comments   Performs an AND  OR  or XOR operation between two sets     Description: SET_OP performs three common operations between two sets  The   three supported functions of OP are:            OP          Meaning         AND    to find the intersection of A and B          OR     to find the union of A and B          XOR    to find the those elements who are members of A or B                but not both        Sets as defined here are one dimensional arrays composed of     numeric or string types  Comparisons of equality between elements     are done using the IDL EQ operator        The complements of either set can be taken as well  by using the     NOT1 and NOT2 keywords  For example  it may be desireable to find     the elements in A but not B  or B but not A  they are different      The following IDL expressions achieve each of those effects:          SET   CMSET_OP A   AND   NOT2  B      A but not B        SET   CMSET_OP NOT1  A   AND  B      B but not A       Note the distinction between NOT1 and NOT2   NOT1 refers to the     first set  A  and NOT2 refers to the second  B   Their ordered     placement in the calling sequence is entirely optional  but the     above ordering makes the logical meaning explicit        NOT1 and NOT2 can only be set for the  AND  operator  and never     simultaneously  This is because the results of an operation with      OR  or  XOR  and any combination of NOTs   or with  AND  and     both NOTs   formally cannot produce a defined result        The implementation depends on the type of operands  For integer     types  a fast technique using HISTOGRAM is used  However  this     algorithm becomes inefficient when the dynamic range in the data     is large  For those cases  and for other data types  a technique     based on SORT  is used  Thus the compute time should scale     roughly as  A B ALOG A B  or better  rather than  A B  for the     brute force approach  For large arrays this is a significant     benefit       categories array      param A  in required    The two sets to be operated on  A one dimensional array of   either numeric or string type  A and B must be of the same   type  Empty sets are permitted  and are either represented   as an undefined variable  or by setting EMPTY1 or EMPTY2       param B  in required    See A      param OP0  in required    a string  the operation to be performed  Must be one of    AND   OR  or  XOR   lower or mixed case is permitted    Other operations will cause an error message to be produced       keyword NOT1   If set and OP is  AND  then the complement of A  for   NOT1  or B  for NOT2  will be used in the operation    NOT1 and NOT2 cannot be set simultaneously       keyword NOT2   See NOT1      keyword EMPTY1   If set  then A  for EMPTY1  or B  for EMPTY2  are   assumed to be the empty set  The actual values   passed as A or B are then ignored       keyword EMPTY2   See EMPTY1      keyword INDEX   if set  then return a list of indices instead of the array   values themselves  The  slower  set operations are always   performed in this case      The indices refer to the  combined  array  A B  To   clarify  in the following call: I   CMSET_OP   INDEX    returned values from 0 to NA 1 refer to A I  and values   from NA to NA NB 1 refer to B I NA       keyword COUNT   upon return  the number of elements in the result set    This is only important when the result set is the empty   set  in which case COUNT is set to zero       returns   The resulting set as a one dimensional array  The set may be   represented by either an array of data values  default  or an   array of indices  if INDEX is set  Duplicate elements  if any    are removed  and element order may not be preserved      The empty set is represented as a return value of  1L  and COUNT   is set to zero  Note that the only way to recognize the empty set   is to examine COUNT      SEE ALSO:      SET_UTILS PRO by RSI      history Written  CM  23 Feb 2000     Added empty set capability  CM  25 Feb 2000     Documentation clarification  CM 02 Mar 2000     Incompatible but more consistent reworking of EMPTY keywords  CM        04 Mar 2000     Minor documentation clarifications  CM  26 Mar 2000     Corrected bug in empty_arg special case  CM 06 Apr 2000     Add INDEX keyword  CM 31 Jul 2000     Clarify INDEX keyword documentation  CM 06 Sep 2000     Made INDEX keyword always force SLOW_SET_OP  CM 06 Sep 2000     Added CMSET_OP_UNIQ  and ability to select FIRST_UNIQUE or       LAST_UNIQUE values  CM  18 Sep 2000     Removed FIRST_UNIQUE and LAST_UNIQUE  and streamlined       CMSET_OP_UNIQ until problems with SORT can be understood  CM  20       Sep 2000  thanks to Ben Tupper      Still trying to get documentation of INDEX and NOT right  CM  28       Sep 2000  no code changes      Correct bug for AND case  when input sets A and B each only have       one unique value  and the values are equal   CM  04 Mar 2004        thanks to James B  jbattat at cfa dot harvard dot edu      Add support for the cases where the input data types are mixed         but still compatible  also  attempt to return the same data        type that was passed in  CM  05 Feb 2005     Fix bug in type checking  thanks to  marit  CM  10 Dec 2005     Work around a stupidity in the built in IDL HISTOGRAM routine         which tries to  help  you by restricting the MIN MAX to the        range of the input variable  thanks to Will Maddox  CM  16 Jan 2006       Author: Craig B  Markwardt  NASA GSFC Code 662  Greenbelt  MD 20770     craigm lheamail gsfc nasa gov      version  Id: cmset_op pro 136 2006 07 10 15:20:19Z pinsard        examples   Utility function  similar to UNIQ  but allowing choice of taking   first or last unique element  or non unique elements    Unfortunately this doesn t work because of implementation dependent   versions of the SORT  function      function cmset_op_uniq  a  first first  non non  count ct  sort sortit     if n_elements a  LE 1 then return  0L     sh    2L keyword_set first 1L 2L keyword_set non 1        if keyword_set sortit  then begin           Sort it manually         ii   sort a    b   a ii          if keyword_set non  then wh   where b EQ shift b  sh  ct            else                     wh   where b NE shift b  sh  ct          if ct GT 0 then return  ii wh      endif else begin           Use the user s values directly         if keyword_set non  then wh   where a EQ shift a  sh  ct            else                     wh   where a NE shift a  sh  ct          if ct GT 0 then return  wh     endelse       if keyword_set first  then return  0L else return  n_elements a 1   end    Simplified version of CMSET_OP_UNIQ which sorts  and takes the    first  value  whatever that may mean        function cmset_op  a  op0  b  not1 not1  not2 not2  count count                  empty1 empty1  empty2 empty2  maxarray ma  index index     compile_opt idl2  strictarrsubs      on_error  2   return on error   count   0L   index0    1L     Histogram technique is used for array sizes  max2       nbins   maxx minn 1       if  maxx minn  GT floor ma 0  then goto  SLOW_SET_OP          Work around a stupidity in the built in IDL HISTOGRAM routine       if  tp1 EQ 2 OR tp2 EQ 2  AND  minn LT  32768 OR maxx GT 32767  then           goto  SLOW_SET_OP          Following operations create a histogram of the integer values        ha   histogram a  min minn  max maxx    1       hb   histogram b  min minn  max maxx    1          Compute NOT cases       if keyword_set not1  then ha   1b   ha       if keyword_set not2  then hb   1b   hb       case op of             Boolean operations            AND : mask   temporary ha  AND temporary hb              OR : mask   temporary ha   OR temporary hb             XOR : mask   temporary ha  XOR temporary hb        endcase        wh   where temporary mask  count        if count EQ 0 then return   1L        result   temporary wh minn        if tp1 NE tp2 then return  result       szr   size result    tpr   szr szr 0 1           Cast to the original type if necessary       if tpr NE tp1 then begin           fresult   make_array n_elements result  type tp1            fresult 0    temporary result            result   temporary fresult        endif        return  result    endelse    return   1L    DEFAULT CASE end        Here is how I did the INDEX stuff with fast histogramming   It       works  but is complicated  so I forced it to go to SLOW_SET_OP        ha   histogram a  min minn  max maxx  reverse ra    1       rr   ra 0:nbins    mask   rr NE rr 1:    ra   ra rr mask 1L mask       hb   histogram b  min minn  max maxx  reverse rb    1       rr   rb 0:nbins    mask   rr NE rr 1:    rb   rb rr mask 1L mask          AND OR XOR NOT masking here         ra   ra wh    rb   rb wh        return  ra ra GE 0     rb n1 ra LT 0    is last  ra  right  "); 
    68 a[66] = new Array("./Matrix/congridseb.html", "congridseb.pro", "", "           file_comments   Like congrid but here  it works           example:   IDL  print  congrid 1 2 3 4 5 6 7 8 12 4          1 1 1 2 2 2 3 3 3 3 4 4         1 1 1 2 2 2 3 3 3 3 4 4         5 5 5 6 6 6 7 7 7 7 8 8         5 5 5 6 6 6 7 7 7 7 8 8   IDL  print  rebin 1 2 3 4 5 6 7 8 12 4          1 1 1 2 2 2 3 3 3 4 4 4         3 3 3 4 4 4 5 5 5 6 6 6         5 5 5 6 6 6 7 7 7 8 8 8         5 5 5 6 6 6 7 7 7 8 8 8   IDL  print  congridseb 1 2 3 4 5 6 7 8 12 4          1 1 1 2 2 2 3 3 3 4 4 4         1 1 1 2 2 2 3 3 3 4 4 4         5 5 5 6 6 6 7 7 7 8 8 8         5 5 5 6 6 6 7 7 7 8 8 8      categories utilities      param tableau  in required    A table 1 ou 2d      param x  in required    dimension in x of the result which must be   a multiple of the dimension in x of the table       param y  in required    dimension in y of the result which must be   a multiple of the dimension in y of the table       returns   a table dim x   y      history Sebastien Masson  smasson lodyc jussieu fr                         20 3 98                        18 6 1999 supression d une horrible boucle      version  Id: congridseb pro 136 2006 07 10 15:20:19Z pinsard             function congridseb  tableau  x  y     compile_opt idl2  strictarrsubs      res tableau    taille   size tableau     CASE N_PARAMS  OF       2: begin          res replicate 1 1 x taille 1 res           return  res        end       3: begin          res   transpose res           res   replicate 1  1 y taille 2 res           res   reform res  y  taille 1   over           res   transpose res           res   replicate 1  1 x taille 1 res          return  reform res  x y   overwrite        end       else: return  report Mauvais nombre de parametre dans l appel de CONGRIDSEB     endcase end"); 
    69 a[67] = new Array("./Matrix/different.html", "different.pro", "", "             file_comments    calculate the different elements of 2 matrix of positif whole numbers       categories Calculation of matrixes      param a  in required  arrays of positive integers  which need                 not be sorted  Duplicate elements are ignored  as they have no                 effect on the result      param b  in required  see a      returns tableau      restrictions 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       examples       a    2 4 6 8      b    6 1 3 2      different a b      4  8            Elements in A but not in B      history http: www dfanning com tips set_operations html      version  Id: different pro 134 2006 07 07 10:19:08Z navarro             FUNCTION different  a  b       compile_opt idl2  strictarrsubs           a and  not b    elements in A but not in B  mina   Min a  Max maxa  minb   Min b  Max maxb  IF  minb GT maxa  OR  maxb LT mina  THEN RETURN  a  No intersection  r   Where Histogram a  Min mina  Max maxa               1 Histogram b  Min mina  Max maxa  count  IF count eq 0 THEN RETURN   1 ELSE RETURN  r   mina END"); 
    70 a[68] = new Array("./Matrix/extrac2.html", "extrac2.pro", "", "             file_comments   extraction of subdomains of matrixes    Even if the subdomain is  pierced   see the example    By default  IDL can make extractions of subdomain:          IDL  a indgen 5 5         IDL  print  a               0       1       2       3       4               5       6       7       8       9              10      11      12      13      14              15      16      17      18      19              20      21      22      23      24        IDL  print  a 0 2 3               15      17        IDL  print  a 0 2                0       2               5       7              10      12              15      17              20      22   but        IDL  print  a 0 2 3 4               15      22   while        IDL  print  extrac2 a 0 2 3 4               15      17              20      22      categories utilities      param array  in required    a 1 2 3 or 4 dim input array      param index1  in required    can have 2 forms:   1 a vector containing indexes of lines we want to keep   2 the string   if we want to keep all lines       param index2  in required    the same thing that index1 but for dim 2       param index3  in required    the same thing that index1 but for dim 3       param index4  in required    the same thing that index1 but for dim 4       returns   a matrix 1 2 3 or 4d extract from input array      restrictions    1 in case of mistake      examples   I have a dim 2 matrix named A  I want extract a small intersection   matrix 2d of the line 2 3 and 7 and of the column 0 and 1:      IDL  res extrac2 A 2 3 7 0 1      other ex:   IDL  print  a   a b c   d e f   g h i   IDL  print  extrac2 a 0 2 0 2    a c   g i      history Sebastien Masson  smasson lodyc jussieu fr                          12 1 1999                         29 4 1999: correction of a bug and complement of the heading      version  Id: extrac2 pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION extrac2  array  index1  index2  index3  index4       compile_opt idl2  strictarrsubs      taille   size array      test of the numbre of parameters   and of the nature of the index  for THE case  x       if n_params  NE taille 0 1 THEN       return  report we need as many indexes as the number of dimensions of the input array     IF n_params  GE 5 THEN BEGIN       if size index4 type  EQ 7 then index4   lindgen taille 4          ELSE index4   long index4        nt   n_elements index4     ENDIF    IF n_params  GE 4 THEN BEGIN       if size index3 type  EQ 7 then index3   lindgen taille 3          ELSE index3   long index3        nz   n_elements index3     ENDIF    IF n_params  GE 3 THEN BEGIN       if size index2 type  EQ 7 then index2   lindgen taille 2          ELSE index2   long index2        ny   n_elements index2     ENDIF    IF n_params  GE 2 THEN BEGIN       if size index1 type  EQ 7 then index1   lindgen taille 1          ELSE index1   long index1        nx   n_elements index1     ENDIF      construction of an array of indexes and of results following the size of array     case taille 0  of       1:res   array index1        2:BEGIN          index   index1 replicate 1  ny taille 1 replicate 1  nx index2          res   array index        END       3:BEGIN          index   index1 replicate 1  ny taille 1 replicate 1  nx index2          index   temporary index replicate 1  nz               taille 1 taille 2 replicate 1  nx ny index3          res   array reform index  nx  ny  nz   over        END       4:BEGIN          index   index1 replicate 1  ny taille 1 replicate 1  nx index2          index   temporary index replicate 1  nz               taille 1 taille 2 replicate 1  nx ny index3          index   temporary index replicate 1  nt               taille 1 taille 2 taille 3 replicate 1  nx ny nz index4          res   array reform index  nx  ny  nz  nz   over        END    endcase          return  res end"); 
    71 a[69] = new Array("./Matrix/inter.html", "inter.pro", "", "             file_comments    calculate the intersection between 2 matrixes of whole numbers      categories calculation of matrixes      param a  in required  arrays of positive integers  which need not to be   sorted  Duplicate elements are ignored  as they have noeffect on the   result      param b  in required  see a      returns tableau      restrictions 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       examples  a    2 4 6 8      b    6 1 3 2      inter a b      2  6          Common elements       history  http: www dfanning com tips set_operations html      version  Id: inter pro 134 2006 07 07 10:19:08Z navarro              FUNCTION inter  a  b       compile_opt idl2  strictarrsubs      case 1 of       n_elements a  EQ 0:return    1       n_elements b  EQ 0:return    1       n_elements a  EQ 1 AND n_elements b  NE 1:          if  where b EQ a 0 0  EQ  1 then return   1 ELSE return   a 0        n_elements b  EQ 1 AND n_elements a  NE 1:          if  where a EQ b 0 0  EQ  1 then return   1 ELSE return   b 0        n_elements a  EQ 1 AND n_elements b  EQ 1:          if  where a 0  EQ b 0 0  EQ  1 then return   1 ELSE return   a 0        ELSE:    ENDCASE   minab   Min a  Max maxa    Min b  Max maxb   Only need intersection of ranges maxab   maxa   maxb       If either set is empty  or their ranges don t intersect: result   NULL   IF maxab LT minab OR maxab LT 0 THEN RETURN   1 r   Where Histogram a  Min minab  Max maxab               Histogram b  Min minab  Max maxab  count   IF count EQ 0 THEN RETURN   1 ELSE RETURN  r   minab END"); 
    72 a[70] = new Array("./Matrix/make_selection.html", "make_selection.pro", "", "      file_comments    Convert an array of selected values to an index          array that identifies the selected values in a list          or data array       categories tools       param NAMES  in required  A list or array of values to choose from       param SELNAMES  in required  A list of selected values      keyword ONLY_VALID Return only indices of found values  Values not              found are skipped  Default is to return 1 index value for              each SELNAME  which is  1 if SELNAME is not contained in               NAMES  If ONLY_VALID is set  the  1 values will be deleted               and a value of  1 indicates that no SELNAME has been found              at all       keyword REQUIRED Normally  MAKE_SELECTION will return indices for              all values that are found  simply ignoring the selected              values that are not in the NAMES array  although an error              message is displayed  Set this keyword to return with               1 as soon as a selected value is not found       keyword QUIET Suppress printing of the error message if a              selected value is not found  the error condition will              still be set       returns A  long  array with indices to reference the selected values          in the NAMES array       restrictions If the NAMES array contains multiple entries of the same value           only the index to the first entry will be returned             A selection can contain multiple instances of the same value           The index array will contain one entry per selected item           See example below       examples names      Alfred Anton Peter John Mary              index   MAKE_SELECTION names Peter Mary              print index               prints  2  4               vals   indgen 20              index   MAKE_SELECTION vals 9 5 8 7 7 8 9              print index               prints  9   1  8  7  7  8  9               index   MAKE_SELECTION vals 9 5 8 7 7 8 9 ONLY_VALID              print index               prints  9  8  7  7  8  9               index   MAKE_SELECTION vals 9 5 8 7 7 8 9 REQUIRED              print index               prints   1      history mgs  28 Aug 1998: VERSION 1 00            mgs  29 Aug 1998:   changed behaviour and added ONLY_VALID keyword      version  Id: make_selection pro 134 2006 07 07 10:19:08Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine make_selection      function make_selection names selnames                 only_valid only_valid required required                 quiet quiet     compile_opt idl2  strictarrsubs               return an index array with a number for each element in        selnames that is found in names        Set the REQUIRED keyword to return  1 if one element is       not found  otherwise  1 will only be returned  if no        element is found          reset error state to 0     message reset       quiet   keyword_set quiet      result    1L       for i 0 n_elements selnames 1 do begin        test   where names eq selnames i         result     result  test 0            if  test 0  lt 0  then begin            if  keyword_set ONLY_VALID  OR keyword_set REQUIRED  then                 message Selected name not found in names array                           strtrim selnames i 2 CONT NOPRINT quiet            if  keyword_set required  then return 1L        endif     endfor       if  n_elements result  gt 1  then result   result 1:       if  keyword_set only_valid  then begin         ind   where result ge 0          if  ind 0  ge 0  then result   result ind            else result    1L     endif       return result   end"); 
    73 a[71] = new Array("./Matrix/union.html", "union.pro", "", "             file_comments    calculate tne union between 2 matrixes of whole numbers      categories calculation of matrixes      param a  in required  arrays of positive integers  which need                 not be sorted  Duplicate elements are ignored  as they have no                 effect on the result      param b  in required  see a      returns tableau      restrictions 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       examples a    2 4 6 8              b    6 1 3 2              union a b      1  2  3  4  6  8     Elements in either set      history  http: www dfanning com tips set_operations html      version  Id: union pro 134 2006 07 07 10:19:08Z navarro             FUNCTION union  a  b     compile_opt idl2  strictarrsubs   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"); 
    74 a[72] = new Array("./Matrix/zero_one.html", "zero_one.pro", "", "           file_comments    Send back a vector or a matrix constituate of 0 and 1 in alternation      categories function  matrixes      param n1  in required  number of elements in the first dimension    param n2  in required  numbre of elements in the second dimension      returns resultat       history Sebastien Masson  smasson lodyc jussieu fr                          1 12 98      version  Id: zero_one pro 134 2006 07 07 10:19:08Z navarro             function zero_one  n1 n2     compile_opt idl2  strictarrsubs      CASE N_PARAMS  OF       1:return  findgen n1  mod 2       2:BEGIN           if fix n1 2  EQ n1 2  then BEGIN  even number of columns             res   findgen n1 1 n2  mod 2             return  res 0:n1 1             ENDIF ELSE return  findgen n1 n2  mod 2  odd number of columns       END       else: return   report bad number of arguments     endcase             end"); 
    75 a[73] = new Array("./Obsolete/common.html", "common.pro", "", ""); 
     68a[66] = new Array("./Matrix/different.html", "different.pro", "", "             file_comments    calculate the different elements of 2 matrix of positif whole numbers       categories Calculation of matrixes      param a  in required  arrays of positive integers  which need                 not be sorted  Duplicate elements are ignored  as they have no                 effect on the result      param b  in required  see a      returns tableau      restrictions 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       examples       a    2 4 6 8      b    6 1 3 2      different a b      4  8            Elements in A but not in B      history http: www dfanning com tips set_operations html      version  Id: different pro 134 2006 07 07 10:19:08Z navarro             FUNCTION different  a  b       compile_opt idl2  strictarrsubs           a and  not b    elements in A but not in B  mina   Min a  Max maxa  minb   Min b  Max maxb  IF  minb GT maxa  OR  maxb LT mina  THEN RETURN  a  No intersection  r   Where Histogram a  Min mina  Max maxa               1 Histogram b  Min mina  Max maxa  count  IF count eq 0 THEN RETURN   1 ELSE RETURN  r   mina END"); 
     69a[67] = new Array("./Matrix/extrac2.html", "extrac2.pro", "", "             file_comments   extraction of subdomains of matrixes    Even if the subdomain is  pierced   see the example    By default  IDL can make extractions of subdomain:          IDL  a indgen 5 5         IDL  print  a               0       1       2       3       4               5       6       7       8       9              10      11      12      13      14              15      16      17      18      19              20      21      22      23      24        IDL  print  a 0 2 3               15      17        IDL  print  a 0 2                0       2               5       7              10      12              15      17              20      22   but        IDL  print  a 0 2 3 4               15      22   while        IDL  print  extrac2 a 0 2 3 4               15      17              20      22      categories utilities      param array  in required    a 1 2 3 or 4 dim input array      param index1  in required    can have 2 forms:   1 a vector containing indexes of lines we want to keep   2 the string   if we want to keep all lines       param index2  in required    the same thing that index1 but for dim 2       param index3  in required    the same thing that index1 but for dim 3       param index4  in required    the same thing that index1 but for dim 4       returns   a matrix 1 2 3 or 4d extract from input array      restrictions    1 in case of mistake      examples   I have a dim 2 matrix named A  I want extract a small intersection   matrix 2d of the line 2 3 and 7 and of the column 0 and 1:      IDL  res extrac2 A 2 3 7 0 1      other ex:   IDL  print  a   a b c   d e f   g h i   IDL  print  extrac2 a 0 2 0 2    a c   g i      history Sebastien Masson  smasson lodyc jussieu fr                          12 1 1999                         29 4 1999: correction of a bug and complement of the heading      version  Id: extrac2 pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION extrac2  array  index1  index2  index3  index4       compile_opt idl2  strictarrsubs      taille   size array      test of the numbre of parameters   and of the nature of the index  for THE case  x       if n_params  NE taille 0 1 THEN       return  report we need as many indexes as the number of dimensions of the input array     IF n_params  GE 5 THEN BEGIN       if size index4 type  EQ 7 then index4   lindgen taille 4          ELSE index4   long index4        nt   n_elements index4     ENDIF    IF n_params  GE 4 THEN BEGIN       if size index3 type  EQ 7 then index3   lindgen taille 3          ELSE index3   long index3        nz   n_elements index3     ENDIF    IF n_params  GE 3 THEN BEGIN       if size index2 type  EQ 7 then index2   lindgen taille 2          ELSE index2   long index2        ny   n_elements index2     ENDIF    IF n_params  GE 2 THEN BEGIN       if size index1 type  EQ 7 then index1   lindgen taille 1          ELSE index1   long index1        nx   n_elements index1     ENDIF      construction of an array of indexes and of results following the size of array     case taille 0  of       1:res   array index1        2:BEGIN          index   index1 replicate 1  ny taille 1 replicate 1  nx index2          res   array index        END       3:BEGIN          index   index1 replicate 1  ny taille 1 replicate 1  nx index2          index   temporary index replicate 1  nz               taille 1 taille 2 replicate 1  nx ny index3          res   array reform index  nx  ny  nz   over        END       4:BEGIN          index   index1 replicate 1  ny taille 1 replicate 1  nx index2          index   temporary index replicate 1  nz               taille 1 taille 2 replicate 1  nx ny index3          index   temporary index replicate 1  nt               taille 1 taille 2 taille 3 replicate 1  nx ny nz index4          res   array reform index  nx  ny  nz  nz   over        END    endcase          return  res end"); 
     70a[68] = new Array("./Matrix/inter.html", "inter.pro", "", "             file_comments    calculate the intersection between 2 matrixes of whole numbers      categories calculation of matrixes      param a  in required  arrays of positive integers  which need not to be   sorted  Duplicate elements are ignored  as they have noeffect on the   result      param b  in required  see a      returns tableau      restrictions 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       examples  a    2 4 6 8      b    6 1 3 2      inter a b      2  6          Common elements       history  http: www dfanning com tips set_operations html      version  Id: inter pro 134 2006 07 07 10:19:08Z navarro              FUNCTION inter  a  b       compile_opt idl2  strictarrsubs      case 1 of       n_elements a  EQ 0:return    1       n_elements b  EQ 0:return    1       n_elements a  EQ 1 AND n_elements b  NE 1:          if  where b EQ a 0 0  EQ  1 then return   1 ELSE return   a 0        n_elements b  EQ 1 AND n_elements a  NE 1:          if  where a EQ b 0 0  EQ  1 then return   1 ELSE return   b 0        n_elements a  EQ 1 AND n_elements b  EQ 1:          if  where a 0  EQ b 0 0  EQ  1 then return   1 ELSE return   a 0        ELSE:    ENDCASE   minab   Min a  Max maxa    Min b  Max maxb   Only need intersection of ranges maxab   maxa   maxb       If either set is empty  or their ranges don t intersect: result   NULL   IF maxab LT minab OR maxab LT 0 THEN RETURN   1 r   Where Histogram a  Min minab  Max maxab               Histogram b  Min minab  Max maxab  count   IF count EQ 0 THEN RETURN   1 ELSE RETURN  r   minab END"); 
     71a[69] = new Array("./Matrix/make_selection.html", "make_selection.pro", "", "      file_comments    Convert an array of selected values to an index          array that identifies the selected values in a list          or data array       categories tools       param NAMES  in required  A list or array of values to choose from       param SELNAMES  in required  A list of selected values      keyword ONLY_VALID Return only indices of found values  Values not              found are skipped  Default is to return 1 index value for              each SELNAME  which is  1 if SELNAME is not contained in               NAMES  If ONLY_VALID is set  the  1 values will be deleted               and a value of  1 indicates that no SELNAME has been found              at all       keyword REQUIRED Normally  MAKE_SELECTION will return indices for              all values that are found  simply ignoring the selected              values that are not in the NAMES array  although an error              message is displayed  Set this keyword to return with               1 as soon as a selected value is not found       keyword QUIET Suppress printing of the error message if a              selected value is not found  the error condition will              still be set       returns A  long  array with indices to reference the selected values          in the NAMES array       restrictions If the NAMES array contains multiple entries of the same value           only the index to the first entry will be returned             A selection can contain multiple instances of the same value           The index array will contain one entry per selected item           See example below       examples names      Alfred Anton Peter John Mary              index   MAKE_SELECTION names Peter Mary              print index               prints  2  4               vals   indgen 20              index   MAKE_SELECTION vals 9 5 8 7 7 8 9              print index               prints  9   1  8  7  7  8  9               index   MAKE_SELECTION vals 9 5 8 7 7 8 9 ONLY_VALID              print index               prints  9  8  7  7  8  9               index   MAKE_SELECTION vals 9 5 8 7 7 8 9 REQUIRED              print index               prints   1      history mgs  28 Aug 1998: VERSION 1 00            mgs  29 Aug 1998:   changed behaviour and added ONLY_VALID keyword      version  Id: make_selection pro 134 2006 07 07 10:19:08Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine make_selection      function make_selection names selnames                 only_valid only_valid required required                 quiet quiet     compile_opt idl2  strictarrsubs               return an index array with a number for each element in        selnames that is found in names        Set the REQUIRED keyword to return  1 if one element is       not found  otherwise  1 will only be returned  if no        element is found          reset error state to 0     message reset       quiet   keyword_set quiet      result    1L       for i 0 n_elements selnames 1 do begin        test   where names eq selnames i         result     result  test 0            if  test 0  lt 0  then begin            if  keyword_set ONLY_VALID  OR keyword_set REQUIRED  then                 message Selected name not found in names array                           strtrim selnames i 2 CONT NOPRINT quiet            if  keyword_set required  then return 1L        endif     endfor       if  n_elements result  gt 1  then result   result 1:       if  keyword_set only_valid  then begin         ind   where result ge 0          if  ind 0  ge 0  then result   result ind            else result    1L     endif       return result   end"); 
     72a[70] = new Array("./Matrix/union.html", "union.pro", "", "             file_comments    calculate tne union between 2 matrixes of whole numbers      categories calculation of matrixes      param a  in required  arrays of positive integers  which need                 not be sorted  Duplicate elements are ignored  as they have no                 effect on the result      param b  in required  see a      returns tableau      restrictions 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       examples a    2 4 6 8              b    6 1 3 2              union a b      1  2  3  4  6  8     Elements in either set      history  http: www dfanning com tips set_operations html      version  Id: union pro 134 2006 07 07 10:19:08Z navarro             FUNCTION union  a  b     compile_opt idl2  strictarrsubs   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"); 
     73a[71] = new Array("./Matrix/zero_one.html", "zero_one.pro", "", "           file_comments    Send back a vector or a matrix constituate of 0 and 1 in alternation      categories function  matrixes      param n1  in required  number of elements in the first dimension    param n2  in required  numbre of elements in the second dimension      returns resultat       history Sebastien Masson  smasson lodyc jussieu fr                          1 12 98      version  Id: zero_one pro 134 2006 07 07 10:19:08Z navarro             function zero_one  n1 n2     compile_opt idl2  strictarrsubs      CASE N_PARAMS  OF       1:return  findgen n1  mod 2       2:BEGIN           if fix n1 2  EQ n1 2  then BEGIN  even number of columns             res   findgen n1 1 n2  mod 2             return  res 0:n1 1             ENDIF ELSE return  findgen n1 n2  mod 2  odd number of columns       END       else: return   report bad number of arguments     endcase             end"); 
     74a[72] = new Array("./Obsolete/common.html", "common.pro", "", ""); 
     75a[73] = new Array("./Obsolete/congridseb.html", "congridseb.pro", "", "           file_comments     Used to avoid a bug in congrid in a old version of IDL   Useless now      old example: based on a old version of IDL  5    IDL  print  congrid 1 2 3 4 5 6 7 8 12 4          1 1 1 2 2 2 3 3 3 3 4 4         1 1 1 2 2 2 3 3 3 3 4 4         5 5 5 6 6 6 7 7 7 7 8 8         5 5 5 6 6 6 7 7 7 7 8 8   IDL  print  rebin 1 2 3 4 5 6 7 8 12 4          1 1 1 2 2 2 3 3 3 4 4 4         3 3 3 4 4 4 5 5 5 6 6 6         5 5 5 6 6 6 7 7 7 8 8 8         5 5 5 6 6 6 7 7 7 8 8 8   IDL  print  congridseb 1 2 3 4 5 6 7 8 12 4          1 1 1 2 2 2 3 3 3 4 4 4         1 1 1 2 2 2 3 3 3 4 4 4         5 5 5 6 6 6 7 7 7 8 8 8         5 5 5 6 6 6 7 7 7 8 8 8      obsolete      param arr  in required    1 or 2d array      param x  in required    first dimension of the result which must be   a multiple of the first dimension of the input array       param y  in required    second dimension of the result which must be   a multiple of the second dimension of the input array      returns   an array which dimensions are x y      history Sebastien Masson  smasson lodyc jussieu fr                         20 3 98                        18 6 1999 supression d une horrible boucle      version  Id: congridseb pro 152 2006 08 10 07:01:35Z smasson             function congridseb  tableau  x  y     compile_opt idl2  strictarrsubs      CASE N_PARAMS  OF       2: return  congrid tableau  x        3:return  congrid tableau  x  y        else: return  report Bad number or arguments in the call of congridseb     endcase end"); 
    7676a[74] = new Array("./Obsolete/cp.html", "cp.pro", "", "           file_comments   copy files   file_copy should be used instead       obsolete      param filenamein  in required       param filenameout  in required       keyword _EXTRA used to pass your keywords      history   June 2005: Sebastien Masson   obsolete routine      version  Id: cp pro 134 2006 07 07 10:19:08Z navarro             PRO cp  filenamein  filenameout  _extra   ex     compile_opt idl2  strictarrsubs  obsolete     file_copy  filenamein  filenameout  _extra   ex   RETURN END"); 
    7777a[75] = new Array("./Obsolete/extrait.html", "extrait.pro", "", "             file_comments    extraction of subdomains of matrixes     Even if the subdomain is  pierced   see the example    By default  IDL can make extractions of subdomain:          IDL  a indgen 5 5          IDL  print  a                0       1       2       3       4               5       6       7       8       9              10      11      12      13      14              15      16      17      18      19              20      21      22      23      24        IDL  print  a 0 2 3                15      17        IDL  print  a 0 2                  0       2               5       7              10      12              15      17              20      22   but        IDL  print  a 0 2 3 4                15      22   while        IDL  print  extrait a 0 2 3 4                 15      17              20      22       you better use extrac2      obsolete      categories utilities      param tab  in required     a 1 2 3 or 4 dim table      param indicex  in required     can have 2 forms:   1 a vector containing indexes of lines we want to keep   2 the string   if we want to keep all lines       param indicey  in required     the same thing that indicex but for dim 2       param indicez  in required     the same thing that indicex but for dim 3        param indicet  in required     the same thing that indicex but for dim 4       returns    a matrix 1 2 3 or 4d extract from tab      restrictions    res 1 in case of mistake       examples    I have a dim 2 matrix named A  I want extract a small intersection    matrix 2d of the line 2 3 and 7 and of the column 0 and 1:           IDL  res extrait A 2 3 7 0 1      other ex:   IDL  print  a    a b c   d e f   g h i   IDL  print  extrait a 0 2 0 2            a c   g i       history Sebastien Masson  smasson lodyc jussieu fr    12 1 1999   29 4 1999: correction of a bug and complement of the heading      version  Id: extrait pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION extrait  tab  indicex  indicey  indicez  indicet       compile_opt idl2  strictarrsubs     case n_params  of       0:return  extrac2        1:return  extrac2 tab        2:return  extrac2 tab  indicex        3:return  extrac2 tab  indicex  indicey        4:return  extrac2 tab  indicex  indicey  indicez        5:return  extrac2 tab  indicex  indicey  indicez  indicet    endcase end"); 
     
    248248a[246] = new Array("./ToBeReviewed/MATRICE/colle.html", "colle.pro", "", "     file_comments    This concatenation function exist in IDL so long    as we do not try to stick with a dimension superior or equal at 4         categories utilities      param a0  in required       param a1  in required       param a2  in required       param a3  in required       param a4  in required       param a5  in required       param a6  in required       param a7  in required       param a8  in required       param a9  in required       param a10  in required       param a11  in required       param a12  in required       param a13  in required       param a14  in required       param a15  in required       param a16  in required       param a17  in required       param a18  in required       param a19  in required       param a20  in required       keyword SAUVE mot cle qui force a sauvegarder le tableau de           pointeur et les tableaux a coller       returns res matrice resultat      examples IDL  print  colle replicate 1 2 2 2 indgen 2 2 2 2                      1       1                  1       1                  0       1                  2       3                    1       1                  1       1                  4       5                  6       7      history Sebastien Masson  smasson lodyc jussieu fr                          13 1 98      version  Id: colle pro 142 2006 07 21 12:47:49Z navarro       FUNCTION colle  a0  a1  a2  a3  a4  a5  a6  a7  a8  a9  a10  a11  a12  a13  a14  a15  a16  a17  a18  a19  a20  SAUVE   sauve     compile_opt idl2  strictarrsubs      res    1     We put in place ptrtab and direc in function of input arguments      case 1 of       n_params  EQ 2:BEGIN       case where we directly give the pointer array          ptrtab   a0          direc   a1          if NOT keyword_set sauve  then undefine  a0   on recuperate the number of array to be pasted           nbretab    size ptrtab 1        end       n_params  GT 2:BEGIN   on recuperate the number of array to be pasted           nbretab   n_params 1          bidon   execute direc   a strtrim n_params 1  2    We write the pointer array whose each element point on an array           ptrtab ptrarr nbretab allocate_heap           for n   0 nbretab 1 do begin             bidon   execute ptrtab n a strtrim n  2              if NOT keyword_set sauve  then bidon   execute undefine  a strtrim n  2           endfor          sauve   0       end       ELSE:    endcase     case on the direct s value       case direc of       1:BEGIN                     we paste following the dimension 1          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END        2:BEGIN                     we paste following the dimension 2          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END        3:BEGIN                     we paste following the dimension 3          res    ptrtab 0           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN             res    temporary res   ptrtab n              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR        END       ELSE:BEGIN    We transpose res in order to put the dimension to be pasted number 1   To this  we contain the permuter vector which give the place that dimension    in the transposed matrix must take          siz    size ptrtab 0 0           if siz LT direc then              ptrtab 0    reform ptrtab 0   size ptrtab 0 1:siz  replicate 1  direc siz   over           permute   indgen size ptrtab 0 0           permute 0    direc 1          permute direc 1    0          res   transpose ptrtab 0  permute           if NOT keyword_set sauve  then ptr_free  ptrtab 0           FOR n   1 nbretab 1 DO BEGIN   we paste following the dimension 1on colle suivant la dimension 1             if  size ptrtab n 0  LT direc then                 ptrtab n    reform ptrtab n   size ptrtab n 1:siz  replicate 1  direc siz                          res    temporary res  transpose ptrtab n  permute              if NOT keyword_set sauve  then ptr_free  ptrtab n           ENDFOR          res   transpose temporary res  permute        END    ENDCASE       if NOT keyword_set sauve  then undefine  ptrtab sortie:    return   res      END     "); 
    249249a[247] = new Array("./ToBeReviewed/PLOTS/DESSINE/bar_plot.html", "bar_plot.pro", "", "        file_comments    Create a bar graph  or overplot on an existing one       categories    Graphics      param Values  in required     A vector containing the values to be represented by the bars    Each element in VALUES corresponds to a single bar in the   output       keyword BASELINES    A vector  the same size as VALUES  that contains the   base value associated with each bar   If not specified    a base value of zero is used for all bars       keyword COLORS    A vector  the same size as VALUES  containing the color index   to be used for each bar   If not specified  the colors are   selected based on spacing the color indices as widely as   possible within the available colors  specified by D N_COLORS       keyword BARNAMES    A string array  containing one string label per bar    If the bars are vertical  the labels are placed beneath   them   If horizontal  rotated  bars are specified  the labels   are placed to the left of the bars       keyword TITLE    A string containing the main title to for the bar plot       keyword XTITLE    A string containing the title for the X axis       keyword YTITLE    A string containing the title for the Y axis       keyword BASERANGE    A floating point scalar in the range 0 0 to 1 0  that   determines the fraction of the total available plotting area    in the direction perpendicular to the bars  to be used    If not specified  the full available area is used       keyword BARWIDTH    A floating point value that specifies the width of the bars   in units of  nominal bar width   The nominal bar width is   computed so that all the bars  and the space between them    set by default to 20  of the width of the bars  will fill the   available space  optionally controlled with the BASERANGE   keyword       keyword BARSPACE    A scalar that specifies  in units of  nominal bar width    the spacing between bars   For example  if BARSPACE is 1 0    then all bars will have one bar width of space between them    If not specified  the bars are spaced apart by 20  of the bar   width       keyword BAROFFSET    A scalar that specifies the offset to be applied to the   first bar  in units of  nominal bar width   This keyword   allows  for example  different groups of bars to be overplotted   on the same graph   If not specified  the default offset is   equal to BARSPACE       keyword OUTLINE    If set  this keyword specifies that an outline should be   drawn around each bar       keyword OVERPLOT    If set  this keyword specifies that the bar plot should be   overplotted on an existing graph       keyword BACKGROUND    A scalar that specifies the color index to be used for   the background color   By default  the normal IDL background   color is used       keyword ROTATE    If set  this keyword indicates that horizontal rather than   vertical bars should be drawn   The bases of horizontal bars   are on the left   Y  axis and the bars extend to the right       examples By using the overplotting capability  it is relatively easy to create  stacked bar charts  or different groups of bars on the same graph     For example  if ARRAY is a two dimensional array of 5 columns and 8  rows  it is natural to make a plot with 5 bars  each of which is a  stacked  composite of 8 sections   First  create a 2D COLORS array   equal in size to ARRAY  that has identical color index values across  each row to ensure that the same item is represented by the same color  in all bars     With ARRAYS and COLORS defined  the following code fragment  illustrates the creation of stacked bars  note that the number of rows  and columns is arbitrary :    Y RANGE    0 ymax    Scale range to accommodate the total bar lengths   BASE   INTARR NROWS   FOR I   0  NROWS 1 DO BEGIN     BAR_PLOT  ARRAY I  COLORS COLORS I  BASELINES BASE                  BARWIDTH 0 75  BARSPACE 0 25  OVER I GT 0      BASE   BASE   ARRAY I   ENDFOR    To plot each row of ARRAY as a clustered group of bars within the same  graph  use the BASERANGE keyword to restrict the available plotting  region for each set of bars   The sample code fragment below  illustrates this method:    FOR I   0  NROWS 1 DO       BAR_PLOT  ARRAY I  COLORS COLORVECT  BARWIDTH 0 8 BARSPACE 0 2          BAROFFSET I 1 0 BARSPACE NCOLS  OVER I GT 0  BASERANGE 0 19    where NCOLS is the number of columns in ARRAY  and COLORVECT is a  vector containing the color indices to be used for each group of  bars    In this example  each group uses the same set of colors  but  this could easily be changed       history August 1990  T J  Armitage  RSI  initial programming   Replacement  for PLOTBAR and OPLOTBAR routines written by William Thompson     September 1990  Steve Richards  RSI  changed defaults to improve the  appearance of the bar plots in the default mode  Included  spacing the bars slightly       Id: bar_plot pro 142 2006 07 21 12:47:49Z navarro       pro bar_plot values baselines baselines colors colors barnames barnames              title title xtitle xtitle ytitle ytitle baserange baserange              barwidth barwidth barspace barspace baroffset baroffset              outline outline overplot overplot background background              rotate rotate  _EXTRA   ex     compile_opt idl2  strictarrsubs   if  n_params d  eq 0  then begin   Print call   return if no parameters   print bar_test values baselines baselines colors colors barnames barnames    print  title title xtitle xtitle ytitle ytitle baserange baserange      print  barwidth barwidth barspace barspace baroffset baroffset      print  outline outline overplot overplot background background      print  rotate rotate    return endif  nbars n_elements values  Determine number of bars   Baselines  bars extend from baselines through values  default 0 if not keyword_set baselines  then baselines intarr nbars    Default colors spaced evenly in current color table if not keyword_set colors  then      colors fix d n_colors float nbars indgen nbars 0 5    Labels for the individual bars  none by default if not keyword_set barnames  then barnames strarr nbars      Main title if not keyword_set title  then title    Centered title under X axis if not keyword_set xtitle  then xtitle    Title for Y axis if not keyword_set ytitle  then ytitle    Fraction  0 1  of full X range to use if not keyword_set baserange  then baserange 1 0   Space betw  bars  taken from nominal bar widths  default is none If not keyword_set barspace  then barspace 0 2   Bar width scaling factor  relative to nominal if not keyword_set barwidth  then barwidth 1 0   barspace   barspace   nbars   Initial X offset  in scaled bar widths  default is none if not keyword_set baroffset  then baroffset barspace barwidth   Outline of bars  default is none outline   keyword_set outline    Overplot  do not erase the existing display  default is to create new plot overplot   keyword_set overplot    Background color index  defaults to 0  usually black  if not specified if not keyword_set background  then background 0   Rotate  make horizontal bars  default is vertical bars rotate   keyword_set rotate   mnB   MIN baselines  MAX mxB   NAN  mnV   MIN values  MAX mxV   NAN  range mnB  mxV        Maximum of bases   values  if  rotate  then begin     Horizontal bars    if  x range 0  eq 0  and  x range 1  eq 0      Determine range for X axis       then xrange range         else xrange x range     Or  use range specified    if  y range 0  eq 0  and  y range 1  eq 0      Plot will calculate       then                                           defaults for X  but not         yrange    0  n_elements values              for Ys  so fill in here        else           yrange y range     Axis perpend  to bars    yticks 1     Suppress ticks in plot    ytickname strarr 2       xticks 0    xtickname strarr 1  endif else begin     Vertical bars    if  y range 0  eq 0  and  y range 1  eq 0      Determine range for Y axis       then yrange range         else yrange y range                 Or  use range specified    xrange x range     Axis perpend  to bars    xticks 1     Suppress ticks in plot    xtickname strarr 2       yticks 0    ytickname strarr 1  endelse if  overplot eq 0  then      Create new plot  no data plot values nodata title title xtitle xtitle ytitle ytitle       noerase overplot xrange xrange yrange yrange xticks xticks       xtickname xtickname yticks yticks ytickname ytickname       xstyle 1 ystyle 1 data background background  _EXTRA   ex if  rotate  then begin     Horizontal bars    base_win y window     Window range in Y    scal_fact x s     Scaling factors    tick_scal_fact y s     Tick scaling factors endif else begin     Vertical bars    base_win x window     Window range in X    scal_fact y s     Scaling factors    tick_scal_fact x s     Tick scaling factors endelse winrange baserange base_win 1 base_win 0     Normal  window range barsize barwidth winrange nbars     Normal  bar width winoffset base_win 0 baroffset barsize     Normal  first offset bases scal_fact 0 scal_fact 1 baselines     Baselines  in normal coor  normal scal_fact 0 scal_fact 1 values     Values  in normal coor  barstart indgen nbars barsize barspace winrange nbars   Coor  at left edges tickv winoffset barstart 0 5 barsize     Tick coor   centered  for i 0 nbars 1 do begin     Draw the bars    width winoffset barstart i barstart i         Compute bar width       barstart i barsize barstart i barsize     length bases i normal i normal i bases i    Compute bar length    if  rotate  then begin     Horizontal bars       x length     X axis is  length  axis       y width     Y axis is  width  axis    endif else begin     Vertical bars       x width     X axis is  width  axis       y length     Y axis is  length  axis    endelse    polyfill x y color colors i normal     Polyfill with color    if  outline  then plots x y normal     Outline using  p color endfor  tickv tickv tick_scal_fact 0 tick_scal_fact 1    Locations of the ticks if  rotate  then      Label the bars  Y axis    axis yaxis 0 ystyle 1 yticks nbars 1 ytickv tickv ytickname barnames      yticklen 0 0   else      Label the bars  X axis    axis xaxis 0 xstyle 1 xticks nbars 1 xtickv tickv xtickname barnames      xticklen 0 0 return end"); 
    250 a[248] = new Array("./ToBeReviewed/PLOTS/DESSINE/plt.html", "plt.pro", "", "             file_comments    Draw horizontal graph  map       categories    graphic      param TAB1  in required     The field whose we want to make the horizontal map can be 2 kind of thing:           1  an array  if needed  its mean along the z and t direction           will be automatically performed            2  a structure respecting all criterions specified by           litchamp pro  cf  IDL  xhelp litchamp         param PARAM2  in optional default min of tab1  on ocean points     Min value we want to consider in the contour s drawing            Note: Could also be the type of plot that can be only  xy  for plt      param PARAM3  in optional default max of tab1  on ocean points     Max value we want to consider in the contour s drawing            Note: if param2 is defined as  xy  then param3 is used to define the min  see param2       param PARAM4  in optional default xy     Type of plot  can be only  xy  for plt            Note: if param2 is defined as  xy  then param4 is used to define the max  see param3       keyword BOXZOOM    Vector indicating the geographic zone on which we want to cut the map      If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword REALCONT    Allow to draw continents defined in IDL  REALCONT can have 2 form:              REALCONT: we draww continents in place of the mask             REALCONT 2 we draw cnotinents s contour over the mask  this allows                         to see if the mask correspond at real continents       keyword CONTINTERVALLE    When CONTOUR is activated  it is the value between 2 isolines    traced by a trait  So it can be different from the one specified by INTERVALLE which     in this case  does not control colored isolines in color anymore  If there is noone    specified min  we choose a contour min which goes well with the specified interval     If this keyword is not specified  we trace 20 isolines from the min to the max        keyword CONTLABEL    It is an integer n  When CONTOUR is actvated  if n   is different of 0  choose the label type corresponding to n cases for    the traced by a traitisolines  To specify the type of label of the    colored contour  use LABEL      keyword CONTMAX    When CONTOUR is activated  max value we want to consider in the isoline    traced by a trait s line  By default  we take the max  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTMIN    When CONTOUR is activated  min value we want to consider in the isoline    traced by a trait s line  By default  we take the min  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword GRIDTYPE  U T V W  or  F  to specify possibly the grid on wiche the field is joined    Comment: In this case  we should use a structure like field       keyword INTERVALLE    Value of an internal between to isoline  If there is none specified min     we choose a min contour which goes well with the specified interval  If this keyword is not    specified  we trace 20 isoline from the min to the max  Comment: When CONTOUR is activated     INTERVALLE only specify the interval between 2 colored isoline  To specify the interval    between 2 isolines traced by a trait  use CONTINTERVALLE       keyword INV    Invert the color vector used to color the graph                   without use the black  the white and the used palette        keyword LABEL    It is an integer n  If n different of 0  it choose the label s type    corresponding to cases n  cf label pro   Comment: When CONTOUR is activated  it only specify the label s type for colored isolines     For tese one traced by a trait  use CONTLABEL       keyword MAP    We use it when we want to do a projection    This keyword can be of two types:       MAP P0lat P0lon Rot  For the descrption of these 3 values  see the online help of MAP_SET         MAP: In this case  map is automatically caculated have the value:             map    0   lon1 lon2 2  0    Comment: A good way to choose the type of the projection we want to do is to have a look at IDL demo:   IDL  demo   Then choose earth sciences and  mapping    Comment2: By default it  is a cindrical projection which is effectuated  with or without the keyword map     If we want an other projection  MAP must be activated and we have to add the keyword:  nom_projection    For example  for a polar projection centered on the south pole:   IDL  domdef 180 180 90 45   IDL  plt  tab   stereo map 90 0 0       keyword LABMAP    Corresponds to label keywords of map_set  Defaut         definition is labmap 1        keyword MAXIN    Allows to specify the max value we want to consider in the drawing of contour    helping by the keyword instead of the argument max  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword MININ    Allows to specify the min value we want to consider in the drawing of contour    helping by the keyword instead of the argument min  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword NLEVEL    Number of contour to draw by default  20  active if   LABEL 0 or is not specified       keyword NOTRI    To force not to use the triangulation  Beware  in this case  the    drawing only works if the grid is undeformed  It means that each point of a longitude    give one latitude and each point of a latitude give one longitude  exept if we use    the keyword CELL_FILL 2     Comment: if the field contain points  values f_nan  then we even do a triangulation       keyword OVERPLOT    To make a plot over an other one     Comment: Contrarily to the use of CONTOUR or VECTEUR  the use of this keyword    does not the caption and or the color bar       keyword STRICTFILL    Activate this keyword to that the filling of contours be    precisely done between the min and the max specified letting values inferior at the    specified min and values superior at the specified max in white       keyword STYLE    Contour s style to adopt to draw isolines by default  style 0  see style pro       keyword VECTEUR   It is a structure composed by 2 elements containing the 2 fields U   and V of values of the zonal and meridian component of the vector of the fields   to draw  These fields can be an array or a structure          For example: vecteur matriceu:lec unsurface matricev:lec vnsurface          Comment: name of elements of vectors are inconsenquential          vecteur u:lec unsurface v:lec vnsurface  is also appropriated       keyword _EXTRA   used to pass your keywords       keyword CONT_NOFILL          Activate it not to fill the point mask to let them transparent     Comment: Nevertheless  we trace mask s contour        keyword USETRI   To force using triangulation        keyword MASKFILL        keyword DUPLICATE      keyword DECIMATETRI      uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr    7 1999   Sebastien Masson 08 02 2000 checkfield and   notri keyword  or triangule    1          version    Id: plt pro 142 2006 07 21 12:47:49Z navarro         todo seb    Changer param  tab1 keyword  REMPLI   UNLABSUR   UNSUR2     UNVECTSUR  quelques trucs dans la routine          pro plt  tab1  param2  param3  param4  REALCONT   realcont  CONTOUR   contour              INTERVALLE   intervalle  INV   inv  GRIDTYPE   gridtype  BOXZOOM   boxzoom              CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel              STYLE   style  CONTMAX   contmax  CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel              VECTEUR   vecteur  MAP   map  MININ   minin  MAXIN   maxin              CONT_NOFILL   cont_nofill              USETRI   usetri  NOTRI   notri  MASKFILL   maskfill              DUPLICATE   duplicate  STRICTFILL   strictfill  OVERPLOT   overplot              DECIMATETRI   decimatetri   LABMAP   labmap  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             To key_performance       I  preparation of the graphic environment and small verifications        I1  verification of the grid s type associated to tab1      if keyword_set gridtype  then vargrid   gridtype   if keyword_set vecteur  AND  NOT keyword_set gridtype  then BEGIN     vargrid   litchamp tab1   grid      if vargrid eq   then BEGIN       vargrid   xquestion What is the grid associated to the data to contour   T   chkwidget        vargrid   strupcase vargrid      endif   ENDIF     I2  Reading of the field and checkup      if keyword_set boxzoom  AND n_elements contour  ne 4  then BEGIN     savedbox   1b     saveboxparam   boxparam4plt dat    END   if n_elements param2  NE 0 then type   param2   if n_elements param3  NE 0 then min   param3   if n_elements param4  NE 0 then max   param4   if n_elements minin  NE 0 then min   minin    if n_elements maxin  NE 0 then max   maxin   checktypeminmax   plt  TYPE   type  MIN   min  MAX   max  _extra   ex   z2d   checkfield tab1   plt  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  VECTEUR   vecteur  _extra   ex     if z2d 0  EQ  1 then BEGIN      IF keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat      return   ENDIF   IF n_elements usetri  EQ 0 THEN BEGIN   do we have holes in the triangulation      holeintri   n_elements triangles_list 3 LT  jpi 1 keyword_set key_periodic jpj 1 2     the triangulation must be used to draw the field    do we have a triangulation      wehavetri   triangles_list 0  NE  1     the triangulation must be used to draw the continents   if we make a map  are we periodic and nx jpi       CASE strupcase vargrid  OF        T :nx   nxt        W :nx   nxt        U :nx   nxu        V :nx   nxv        F :nx   nxf     ENDCASE     mapperio   keyword_set map keyword_set key_periodic nx eq jpi       usetri    wehavetri wehavetri holeintri mapperio keyword_set key_irregular    2 notri    ENDIF     I3  reinitialization   p x y    Comment: We do not reinitializate when we call bck plt in loop to use contour      if n_elements contour  ne 4 AND NOT keyword_set overplot  then reinitplt   z   invert     I4  attribution of the mask and of longitude and latitude arrays      IF  strupcase vargrid  EQ  W  THEN profond   firstzw NE 0     ELSE profond   firstzt NE 0    do we need to extract now the triangulation that will be use for   contouring the field    if keyword_set profond        OR  usetri EQ 0 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri NE 2 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx           lasty  lastz   forplt  _extra   ex   ENDIF ELSE BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx  lasty           lastz  TRI   trifield   forplt  _extra   ex   ENDELSE     I5 determination of the mi:min and of the ma:max of z2d in the same way    as max: max and min: min for the drawing      masknan   finite z2d    nan   total masknan  NE n_elements z2d     Do we need to do an autoscale     autoscale   testvar var   min  EQ testvar var   max  AND NOT keyword_set intervalle    determineminmax  z2d  mask  mi  ma  glam  gphi  MININ   min  MAXIN   max         nan   nan  INTERVALLE   intervalle  usetri   usetri  _extra   ex   if z2d 0  EQ  1 THEN GOTO  sortie   We do an autoscale if needed    if autoscale then autoscale  min  max  intervalle       II  We put the drawing in its place on the window or the page    and possible opening of the window or of the page      if n_elements contour  NE 4 AND NOT keyword_set overplot  THEN       placedessin   plt  posfenetre  posbar         CONTOUR   contour  VECTEUR   vecteur  MAP   map  DIREC   direc  _extra   ex       III  Covering of the drawing  labels style axis            III1  Choice of labels     if keyword_set intervalle  AND NOT keyword_set label  then label   1   if keyword_set label  eq 0 then cas   0 else cas   label   label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel         INTERVALLE   intervalle  strictfill   strictfill     III2  Choice of style     if not keyword_set style  then style   0   style  style  level_z2d  linestyle  thick   if keyword_set inv  then colnumb   reverse colnumb      III3  Definition of axis     if NOT keyword_set overplot  THEN axe   xy  _EXTRA   ex         IV  Drawing         extrapolation of field on lands and setup of min  max values     if keyword_set nan  then begin     z2d where masknan EQ 0    max   ENDIF ELSE masknan   1   filling the mask values   we fill only masknan or we fill mask masknan    IF keyword_set nan  AND keyword_set cont_nofill  THEN       z2d   remplit z2d  nite   1 vargrid NE  T  AND vargrid NE  W                        mask   masknan  _extra   ex       ELSE z2d   remplit z2d  nite    1    vargrid NE  T  AND vargrid NE  W                                         keyword_set nan                           1 keyword_set cont_nofill                           1 n_elements maskfill  NE 0                      mask   mask masknan  _extra   ex    IF keyword_set strictfill  EQ 0 AND n_elements maskfill  EQ 0 then       z2d   min   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   temporary z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1 mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    nan values      If we make a drawing in depth  we redifine a triangulation    on the zoom   this triangulation will be used to trace the    field  We use tmask in order to holes of this triangulation    are the same than these used for the mask and correspond to    holes there is in this new depth    if  keyword_set profond  OR keyword_set cont_nofill        AND  usetri GE 1 AND  vargrid EQ  T  OR vargrid EQ  W             OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  then BEGIN     trifield   triangule tmask firstx:lastx  firsty:lasty  firstz                               coinmonte   coinmontemask                              coindescend   coindescendmask                              keep_cont   cont_nofill  _extra   ex      indicezoommask    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF   triangulation for nan mask   if keyword_set nan  then BEGIN     trinan   triangule masknan   keep_cont                            coinmonte   coinmontenan                            coindescend   coindescendnan      indicezoomnan    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF    IF n_elements twin_corners_up  EQ 0 THEN coinmontemask    1 ELSE coinmontemask   twin_corners_up    IF n_elements twin_corners_dn  EQ 0 THEN coindescendmask     1 ELSE coindescendmask   twin_corners_dn   if vargrid EQ  T  OR vargrid EQ  W  then BEGIN      glammsk   glam     gphimsk   gphi ENDIF ELSE begin   decoupe terre: For the drawing of the coast be clean  we try to take additionally    points for the land  Like that  we do not see grid s gap  It is what decoupeterre    do  We profit of it to redefine trimsk      decoupeterre  mask  glammsk  gphimsk  type    xy          TRI   trimsk  usetri   usetri  indicezoom   indicezoommask           coinmonte   coinmontemask  coindescend   coindescendmask           _EXTRA   ex   ENDELSE     IV1  Choice of type of drawing      typetrace    classique    if keyword_set map  AND key_onearth then BEGIN    Call of  mapset when we want to do projections      IF n_elements map  NE 3 THEN map    0   lon1 lon2 2  MOD 360  0      typetrace    projection      map_lat   map 0      map_lon   map 1      map_rot   map 2      if chkstru ex   TITLE  then begin       maptitre   ex title        ex title         endif     map_set  map_lat  map_lon  map_rot  _extra   ex  position   posfenetre   iso           limit    lat1  lon1  lat2  lon2   noborder     if n_elements maptitre  ne 0 then ex title   maptitre     if n_elements trifield  GE 2 then trifield   ciseauxtri trifield  glam  gphi  _EXTRA   ex      if n_elements trimsk  GE 2 then trimsk   ciseauxtri trimsk  glammsk  gphimsk  _EXTRA   ex      if n_elements trinan  GE 2 then BEGIN        trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex        if trinan 0  EQ  1 then undefine  trinan     endif   ENDIF ELSE BEGIN   To axes of coordinates be considerated      if  x type EQ 0 AND n_elements contour  LE 4 then         plot   0   0   nodata  xstyle   5  ystyle   5  title     subtitle      noerase      if keyword_set key_periodic  then BEGIN   In this case  triangulation is closed in x and cover all the sphere     We have to cut it at the level where we cut the sphere to make the drawing        if n_elements trifield  GE 2 then trifield   ciseauxtri trifield  glam  gphi  _EXTRA   ex        if n_elements trimsk  GE 2 then trimsk   ciseauxtri trimsk  glammsk  gphimsk  _EXTRA   ex        if n_elements trinan  GE 2 then trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex      ENDIF   endelse     IV2  Contours and coloring     if keyword_set duplicate   then BEGIN   pour marina uniquement ATTENTION C EST TRES MAL CODE     lon   glam  0      decalage   max lon min lon lon shift lon  1 n_elements lon 1       x range 1     x range 1 duplicate 1 decalage     for i   1  duplicate 1 do BEGIN       z2d    z2d  z2d        gphi    gphi  gphi        mask    mask  mask        gphimsk    gphimsk  gphimsk        glam    glam  glam i decalage        glammsk    glammsk  glammsk      ENDFOR   endif   save  glam  gphi  trifield  file    tri dat    if keyword_set decimatetri  then BEGIN     tempsdeux   systime 1         To key_performance     IF n_elements trimsk  EQ 0 THEN trimsk   trifield     Verts   transpose temporary glam   temporary gphi                              temporary z2d      Conn    replicate 3  1  n_elements trifield 3  trifield      Result   mesh_decimate temporary verts   temporary Conn                                 Connout  vertices   Vertsout                                percent_vertices   decimatetri      connout   reform connout  4   n_elements connout 4   over       trifield    temporary connout 1:3        glam   reform Vertsout 0        gphi   reform Vertsout 1        z2d   reform Vertsout 2        undefine  Vertsout     print   temps decimatetri  systime 1 tempsdeux    ENDIF   pltbase  z2d  glam  gphi         mask  glammsk  gphimsk  trichamp   trifield  trimsk   trimsk   forplt         level_z2d  colnumb  contour   contour  usetri   usetri  realcont   realcont         overplot   keyword_set overplot keyword_set map          c_linestyle   linestyle  c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  cont_nofill   cont_nofill  nan   nan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         coinmontenan   coinmontenan  coindescendnan   coindescendnan         indicezoommask   indicezoommask  indicezoomnan   indicezoomnan         masknan   masknan  trinan   trinan  _extra   ex     IV3  Recall of plt in loop when contour is activated      if n_elements contour  eq 4 then BEGIN   c est la 2eme fois que je passe ds pltt     contour    mietma: mi  ma  unit:varunit  inter:intervalle    je renvoie le min  le max et l unite     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     plt  contour  contmin  contmax  CONTOUR   pourlegende   NOERASE           USETRI   usetri           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style           NLEVEL   contnlevel  DUPLICATE   duplicate  STRICTFILL   strictfill           MASKFILL   maskfill  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       V  Small functions           V1  Possible add of vectors in double exposure      if keyword_set vecteur  then BEGIN      oldattributs   saveatt      ajoutvect  vecteur  vectlegende  _extra   ex     restoreatt  oldattributs   ENDIF     if keyword_set overplot  then GOTO  fini     V2  Trace the line of change of date  the equator and the greenwich meridian        if NOT keyword_set map  AND key_onearth then meridienparallele   xy      V3  To trace IDL s continents     if keyword_set realcont  then BEGIN   si noease est passe de _extra  on s assure qu il est a 1     if chkstru ex   NOERASE  then begin       oldnoerase   ex noerase       ex noerase   1     ENDIF     if chkstru ex   coast_thick  then mlinethick   ex coast_thick ELSE mlinethick   1     if chkstru ex   coast_color  then mcolor   ex coast_color ELSE mcolor   0     IF NOT keyword_set map  THEN         map_set  0   lon1 lon2 2  MOD 360  0  position   posfenetre            limit    lat1  lon1  lat2  lon2   NOERASE   noborder  color   0           _extra   ex     if realcont NE 2 AND NOT keyword_set cont_nofill  then BEGIN       if chkstru ex   cont_color  then cntcol   ex coast_color         ELSE cntcol    d n_colors   1     255       map_continents   fill_continents  color   cntcol  _extra   ex   noerase     ENDIF     map_continents   continents  color   mcolor  MLINETHICK   mlinethick   noerase  _extra   ex     if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase   ENDIF     V4  caption   display of these      legende  mi  ma   xy  CONTOUR   pourlegende  VECTLEGENDE   vectlegende  INTERVALLE   intervalle  DIREC   direc  _EXTRA   ex   if n_elements ex  NE 0 then BEGIN    To keep frame s axes in black     if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   coast_color   endif     case typetrace of      classique :         plot   0   0   nodata   noerase  color   0  xstyle   1  ystyle   1  _extra   ex      projection : BEGIN        if chkstru ex   NOERASE  then begin         oldnoerase   ex noerase         ex noerase   1       endif       if chkstru ex   SUBTITLE  then  p subtitle   ex SUBTITLE       if n_elements maptitre  ne 0 then ex title   maptitre       map_set  map_lat  map_lon  map_rot  _extra   ex   iso  limit    lat1  lon1  lat2  lon2             NOERASE   noborder  title    p title  color   0           map_proj_info  numproj   current           map_proj_info  numproj  name   nomproj           if nomproj EQ  Mercator  OR nomproj EQ  Cylindrical  OR nomproj EQ  LambertConic             OR nomproj EQ  Gnomic  OR nomproj EQ  AlbersEqualAreaConic               OR nomproj EQ  TransverseMercator  OR nomproj EQ  MillerCylindrical               OR nomproj EQ  LambertConicEllipsoid  then map_grid  box_axes 1 latdel 10 londel 10             ELSE map_grid  charsize   0 75   label latalign   1 lonalign             1 latdel   10 londel   30       IF n_elements labmap  EQ 0 THEN labmap   1       map_grid  charsize   0 75  label   labmap  latalign   1  lonalign   1  latdel   10  londel   30  color   0  _extra   ex       if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase     end   endcase     V5  Colorbar      colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       VI  Possible print      fini:   terminedessin  _extra   ex     sortie:   if keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat    if keyword_set key_performance  NE 0 THEN print   temps plt  systime 1 tempsun        return end  "); 
     250a[248] = new Array("./ToBeReviewed/PLOTS/DESSINE/plt.html", "plt.pro", "", "             file_comments    Draw horizontal graph  map  with CONTOUR procedure      categories    graphic      param TAB1  in required     The field whose we want to make the horizontal map can be:           1  an array  if needed  its mean along the z and t direction           will be automatically performed            2  a structure respecting all criterions specified by           litchamp pro  cf  IDL  xhelp litchamp         param PARAM2  in optional default min of tab1  on ocean points     Min value we want to consider in the contour s drawing            Note: Could also be the type of plot that can be only  xy  for plt      param PARAM3  in optional default max of tab1  on ocean points     Max value we want to consider in the contour s drawing            Note: if param2 is defined as  xy  then param3 is used to define the min  see param2       param PARAM4  in optional default xy     Type of plot  can be only  xy  for plt            Note: if param2 is defined as  xy  then param4 is used to define the max  see param3       keyword BOXZOOM    Vector indicating the geographic zone on which we want to cut the map      If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword REALCONT    Allow to draw continents defined in IDL  REALCONT can have 2 form:              REALCONT: we draww continents in place of the mask             REALCONT 2 we draw cnotinents s contour over the mask  this allows                         to see if the mask correspond at real continents       keyword CONTINTERVALLE    When CONTOUR is activated  it is the value between 2 isolines    traced by a trait  So it can be different from the one specified by INTERVALLE which     in this case  does not control colored isolines in color anymore  If there is noone    specified min  we choose a contour min which goes well with the specified interval     If this keyword is not specified  we trace 20 isolines from the min to the max        keyword CONTLABEL    It is an integer n  When CONTOUR is actvated  if n   is different of 0  choose the label type corresponding to n cases for    the traced by a traitisolines  To specify the type of label of the    colored contour  use LABEL      keyword CONTMAX    When CONTOUR is activated  max value we want to consider in the isoline    traced by a trait s line  By default  we take the max  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTMIN    When CONTOUR is activated  min value we want to consider in the isoline    traced by a trait s line  By default  we take the min  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword GRIDTYPE  U T V W  or  F  to specify possibly the grid on wiche the field is joined    Comment: In this case  we should use a structure like field       keyword INTERVALLE    Value of an internal between to isoline  If there is none specified min     we choose a min contour which goes well with the specified interval  If this keyword is not    specified  we trace 20 isoline from the min to the max  Comment: When CONTOUR is activated     INTERVALLE only specify the interval between 2 colored isoline  To specify the interval    between 2 isolines traced by a trait  use CONTINTERVALLE       keyword INV    Invert the color vector used to color the graph                   without use the black  the white and the used palette        keyword LABEL    It is an integer n  If n different of 0  it choose the label s type    corresponding to cases n  cf label pro   Comment: When CONTOUR is activated  it only specify the label s type for colored isolines     For tese one traced by a trait  use CONTLABEL       keyword MAP    We use it when we want to do a projection    This keyword can be of two types:       MAP P0lat P0lon Rot  For the descrption of these 3 values  see the online help of MAP_SET         MAP: In this case  map is automatically caculated have the value:             map    0   lon1 lon2 2  0    Comment: A good way to choose the type of the projection we want to do is to have a look at IDL demo:   IDL  demo   Then choose earth sciences and  mapping    Comment2: By default it  is a cindrical projection which is effectuated  with or without the keyword map     If we want an other projection  MAP must be activated and we have to add the keyword:  nom_projection    For example  for a polar projection centered on the south pole:   IDL  domdef 180 180 90 45   IDL  plt  tab   stereo map 90 0 0       keyword LABMAP    Corresponds to label keywords of map_set  Defaut         definition is labmap 1        keyword MAXIN    to specify the max value we want to plot with a keyword instead of with the   input parameter max  If max is defined by both  parameter and keyword  the   keyword is retained       keyword MININ    to specify the min value we want to plot with a keyword instead of with the   input parameter min  If min is defined by both  parameter and keyword  the   keyword is retained       keyword NLEVEL    Number of contour to draw by default  20  active if   LABEL 0 or is not specified       keyword NOTRI    To force not to use the triangulation  Beware  in this case  the    drawing only works if the grid is undeformed  It means that each point of a longitude    give one latitude and each point of a latitude give one longitude  exept if we use    the keyword CELL_FILL 2     Comment: if the field contain points  values f_nan  then we even do a triangulation       keyword OVERPLOT    To make a plot over an other one     Comment: Contrarily to the use of CONTOUR or VECTEUR  the use of this keyword    does not the caption and or the color bar       keyword STRICTFILL    Activate this keyword to that the filling of contours be    precisely done between the min and the max specified letting values inferior at the    specified min and values superior at the specified max in white       keyword STYLE    Contour s style to adopt to draw isolines by default  style 0  see style pro       keyword VECTEUR   It is a structure composed by 2 elements containing the 2 fields U   and V of values of the zonal and meridian component of the vector of the fields   to draw  These fields can be an array or a structure          For example: vecteur matriceu:lec unsurface matricev:lec vnsurface          Comment: name of elements of vectors are inconsenquential          vecteur u:lec unsurface v:lec vnsurface  is also appropriated       keyword _EXTRA   used to pass your keywords       keyword CONT_NOFILL          Activate it not to fill the point mask to let them transparent     Comment: Nevertheless  we trace mask s contour        keyword USETRI   To force using triangulation        keyword MASKFILL        keyword DUPLICATE      keyword DECIMATETRI      uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr    7 1999   Sebastien Masson 08 02 2000 checkfield and   notri keyword  or triangule    1          version    Id: plt pro 152 2006 08 10 07:01:35Z smasson         todo seb    Changer param  tab1 keyword  REMPLI   UNLABSUR   UNSUR2     UNVECTSUR  quelques trucs dans la routine          pro plt  tab1  param2  param3  param4  REALCONT   realcont  CONTOUR   contour              INTERVALLE   intervalle  INV   inv  GRIDTYPE   gridtype  BOXZOOM   boxzoom              CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel              STYLE   style  CONTMAX   contmax  CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel              VECTEUR   vecteur  MAP   map  MININ   minin  MAXIN   maxin              CONT_NOFILL   cont_nofill              USETRI   usetri  NOTRI   notri  MASKFILL   maskfill              DUPLICATE   duplicate  STRICTFILL   strictfill  OVERPLOT   overplot              DECIMATETRI   decimatetri   LABMAP   labmap  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             To key_performance       I  preparation of the graphic environment and small verifications        I1  verification of the grid s type associated to tab1      if keyword_set gridtype  then vargrid   gridtype   if keyword_set vecteur  AND  NOT keyword_set gridtype  then BEGIN     vargrid   litchamp tab1   grid      if vargrid eq   then BEGIN       vargrid   xquestion What is the grid associated to the data to contour   T   chkwidget        vargrid   strupcase vargrid      endif   ENDIF     I2  Reading of the field and checkup      if keyword_set boxzoom  AND n_elements contour  ne 4  then BEGIN     savedbox   1b     saveboxparam   boxparam4plt dat    END   if n_elements param2  NE 0 then type   param2   if n_elements param3  NE 0 then min   param3   if n_elements param4  NE 0 then max   param4   if n_elements minin  NE 0 then min   minin    if n_elements maxin  NE 0 then max   maxin   checktypeminmax   plt  TYPE   type  MIN   min  MAX   max  _extra   ex   z2d   checkfield tab1   plt  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  VECTEUR   vecteur  _extra   ex     if z2d 0  EQ  1 then BEGIN      IF keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat      return   ENDIF   IF n_elements usetri  EQ 0 THEN BEGIN   do we have holes in the triangulation      holeintri   n_elements triangles_list 3 LT  jpi 1 keyword_set key_periodic jpj 1 2     the triangulation must be used to draw the field    do we have a triangulation      wehavetri   triangles_list 0  NE  1     the triangulation must be used to draw the continents   if we make a map  are we periodic and nx jpi       CASE strupcase vargrid  OF        T :nx   nxt        W :nx   nxt        U :nx   nxu        V :nx   nxv        F :nx   nxf     ENDCASE     mapperio   keyword_set map keyword_set key_periodic nx eq jpi       usetri    wehavetri wehavetri holeintri mapperio keyword_set key_irregular    2 notri    ENDIF     I3  reinitialization   p x y    Comment: We do not reinitializate when we call bck plt in loop to use contour      if n_elements contour  ne 4 AND NOT keyword_set overplot  then reinitplt   z   invert     I4  attribution of the mask and of longitude and latitude arrays      IF  strupcase vargrid  EQ  W  THEN profond   firstzw NE 0     ELSE profond   firstzt NE 0    do we need to extract now the triangulation that will be use for   contouring the field    if keyword_set profond        OR  usetri EQ 0 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri NE 2 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx           lasty  lastz   forplt  _extra   ex   ENDIF ELSE BEGIN     grille  mask  glam  gphi  gdep  nx  ny  nz           firstx  firsty  firstz  lastx  lasty           lastz  TRI   trifield   forplt  _extra   ex   ENDELSE     I5 determination of the mi:min and of the ma:max of z2d in the same way    as max: max and min: min for the drawing      masknan   finite z2d    nan   total masknan  NE n_elements z2d     Do we need to do an autoscale     autoscale   testvar var   min  EQ testvar var   max  AND NOT keyword_set intervalle    determineminmax  z2d  mask  mi  ma  glam  gphi  MININ   min  MAXIN   max         nan   nan  INTERVALLE   intervalle  usetri   usetri  _extra   ex   if z2d 0  EQ  1 THEN GOTO  sortie   We do an autoscale if needed    if autoscale then autoscale  min  max  intervalle       II  We put the drawing in its place on the window or the page    and possible opening of the window or of the page      if n_elements contour  NE 4 AND NOT keyword_set overplot  THEN       placedessin   plt  posfenetre  posbar         CONTOUR   contour  VECTEUR   vecteur  MAP   map  DIREC   direc  _extra   ex       III  Covering of the drawing  labels style axis            III1  Choice of labels     if keyword_set intervalle  AND NOT keyword_set label  then label   1   if keyword_set label  eq 0 then cas   0 else cas   label   label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel         INTERVALLE   intervalle  strictfill   strictfill     III2  Choice of style     if not keyword_set style  then style   0   style  style  level_z2d  linestyle  thick   if keyword_set inv  then colnumb   reverse colnumb      III3  Definition of axis     if NOT keyword_set overplot  THEN axe   xy  _EXTRA   ex         IV  Drawing         extrapolation of field on lands and setup of min  max values     if keyword_set nan  then begin     z2d where masknan EQ 0    max   ENDIF ELSE masknan   1   filling the mask values   we fill only masknan or we fill mask masknan    IF keyword_set nan  AND keyword_set cont_nofill  THEN       z2d   remplit z2d  nite   1 vargrid NE  T  AND vargrid NE  W                        mask   masknan  _extra   ex       ELSE z2d   remplit z2d  nite    1    vargrid NE  T  AND vargrid NE  W                                         keyword_set nan                           1 keyword_set cont_nofill                           1 n_elements maskfill  NE 0                      mask   mask masknan  _extra   ex    IF keyword_set strictfill  EQ 0 AND n_elements maskfill  EQ 0 then       z2d   min   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   temporary z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1 mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    nan values      If we make a drawing in depth  we redifine a triangulation    on the zoom   this triangulation will be used to trace the    field  We use tmask in order to holes of this triangulation    are the same than these used for the mask and correspond to    holes there is in this new depth    if  keyword_set profond  OR keyword_set cont_nofill        AND  usetri GE 1 AND  vargrid EQ  T  OR vargrid EQ  W             OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  then BEGIN     trifield   triangule tmask firstx:lastx  firsty:lasty  firstz                               coinmonte   coinmontemask                              coindescend   coindescendmask                              keep_cont   cont_nofill  _extra   ex      indicezoommask    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF   triangulation for nan mask   if keyword_set nan  then BEGIN     trinan   triangule masknan   keep_cont                            coinmonte   coinmontenan                            coindescend   coindescendnan      indicezoomnan    lindgen jpi  jpj firstx:lastx  firsty:lasty    ENDIF    IF n_elements twin_corners_up  EQ 0 THEN coinmontemask    1 ELSE coinmontemask   twin_corners_up    IF n_elements twin_corners_dn  EQ 0 THEN coindescendmask     1 ELSE coindescendmask   twin_corners_dn   if vargrid EQ  T  OR vargrid EQ  W  then BEGIN      glammsk   glam     gphimsk   gphi ENDIF ELSE begin   decoupe terre: For the drawing of the coast be clean  we try to take additionally    points for the land  Like that  we do not see grid s gap  It is what decoupeterre    do  We profit of it to redefine trimsk      decoupeterre  mask  glammsk  gphimsk  type    xy          TRI   trimsk  usetri   usetri  indicezoom   indicezoommask           coinmonte   coinmontemask  coindescend   coindescendmask           _EXTRA   ex   ENDELSE     IV1  Choice of type of drawing      typetrace    classique    if keyword_set map  AND key_onearth then BEGIN    Call of  mapset when we want to do projections      IF n_elements map  NE 3 THEN map    0   lon1 lon2 2  MOD 360  0      typetrace    projection      map_lat   map 0      map_lon   map 1      map_rot   map 2      if chkstru ex   TITLE  then begin       maptitre   ex title        ex title         endif     map_set  map_lat  map_lon  map_rot  _extra   ex  position   posfenetre   iso           limit    lat1  lon1  lat2  lon2   noborder     if n_elements maptitre  ne 0 then ex title   maptitre     if n_elements trifield  GE 2 then trifield   ciseauxtri trifield  glam  gphi  _EXTRA   ex      if n_elements trimsk  GE 2 then trimsk   ciseauxtri trimsk  glammsk  gphimsk  _EXTRA   ex      if n_elements trinan  GE 2 then BEGIN        trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex        if trinan 0  EQ  1 then undefine  trinan     endif   ENDIF ELSE BEGIN   To axes of coordinates be considerated      if  x type EQ 0 AND n_elements contour  LE 4 then         plot   0   0   nodata  xstyle   5  ystyle   5  title     subtitle      noerase      if keyword_set key_periodic  then BEGIN   In this case  triangulation is closed in x and cover all the sphere     We have to cut it at the level where we cut the sphere to make the drawing        if n_elements trifield  GE 2 then trifield   ciseauxtri trifield  glam  gphi  _EXTRA   ex        if n_elements trimsk  GE 2 then trimsk   ciseauxtri trimsk  glammsk  gphimsk  _EXTRA   ex        if n_elements trinan  GE 2 then trinan   ciseauxtri trinan  glam  gphi  _EXTRA   ex      ENDIF   endelse     IV2  Contours and coloring     if keyword_set duplicate   then BEGIN   pour marina uniquement ATTENTION C EST TRES MAL CODE     lon   glam  0      decalage   max lon min lon lon shift lon  1 n_elements lon 1       x range 1     x range 1 duplicate 1 decalage     for i   1  duplicate 1 do BEGIN       z2d    z2d  z2d        gphi    gphi  gphi        mask    mask  mask        gphimsk    gphimsk  gphimsk        glam    glam  glam i decalage        glammsk    glammsk  glammsk      ENDFOR   endif   save  glam  gphi  trifield  file    tri dat    if keyword_set decimatetri  then BEGIN     tempsdeux   systime 1         To key_performance     IF n_elements trimsk  EQ 0 THEN trimsk   trifield     Verts   transpose temporary glam   temporary gphi                              temporary z2d      Conn    replicate 3  1  n_elements trifield 3  trifield      Result   mesh_decimate temporary verts   temporary Conn                                 Connout  vertices   Vertsout                                percent_vertices   decimatetri      connout   reform connout  4   n_elements connout 4   over       trifield    temporary connout 1:3        glam   reform Vertsout 0        gphi   reform Vertsout 1        z2d   reform Vertsout 2        undefine  Vertsout     print   temps decimatetri  systime 1 tempsdeux    ENDIF   pltbase  z2d  glam  gphi         mask  glammsk  gphimsk  trichamp   trifield  trimsk   trimsk   forplt         level_z2d  colnumb  contour   contour  usetri   usetri  realcont   realcont         overplot   keyword_set overplot keyword_set map          c_linestyle   linestyle  c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  cont_nofill   cont_nofill  nan   nan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         coinmontenan   coinmontenan  coindescendnan   coindescendnan         indicezoommask   indicezoommask  indicezoomnan   indicezoomnan         masknan   masknan  trinan   trinan  _extra   ex     IV3  Recall of plt in loop when contour is activated      if n_elements contour  eq 4 then BEGIN   c est la 2eme fois que je passe ds pltt     contour    mietma: mi  ma  unit:varunit  inter:intervalle    je renvoie le min  le max et l unite     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     plt  contour  contmin  contmax  CONTOUR   pourlegende   NOERASE           USETRI   usetri           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style           NLEVEL   contnlevel  DUPLICATE   duplicate  STRICTFILL   strictfill           MASKFILL   maskfill  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       V  Small functions           V1  Possible add of vectors in double exposure      if keyword_set vecteur  then BEGIN      oldattributs   saveatt      ajoutvect  vecteur  vectlegende  _extra   ex     restoreatt  oldattributs   ENDIF     if keyword_set overplot  then GOTO  fini     V2  Trace the line of change of date  the equator and the greenwich meridian        if NOT keyword_set map  AND key_onearth then meridienparallele   xy      V3  To trace IDL s continents     if keyword_set realcont  then BEGIN   si noease est passe de _extra  on s assure qu il est a 1     if chkstru ex   NOERASE  then begin       oldnoerase   ex noerase       ex noerase   1     ENDIF     if chkstru ex   coast_thick  then mlinethick   ex coast_thick ELSE mlinethick   1     if chkstru ex   coast_color  then mcolor   ex coast_color ELSE mcolor   0     IF NOT keyword_set map  THEN         map_set  0   lon1 lon2 2  MOD 360  0  position   posfenetre            limit    lat1  lon1  lat2  lon2   NOERASE   noborder  color   0           _extra   ex     if realcont NE 2 AND NOT keyword_set cont_nofill  then BEGIN       if chkstru ex   cont_color  then cntcol   ex coast_color         ELSE cntcol    d n_colors   1     255       map_continents   fill_continents  color   cntcol  _extra   ex   noerase     ENDIF     map_continents   continents  color   mcolor  MLINETHICK   mlinethick   noerase  _extra   ex     if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase   ENDIF     V4  caption   display of these      legende  mi  ma   xy  CONTOUR   pourlegende  VECTLEGENDE   vectlegende  INTERVALLE   intervalle  DIREC   direc  _EXTRA   ex   if n_elements ex  NE 0 then BEGIN    To keep frame s axes in black     if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   coast_color   endif     case typetrace of      classique :         plot   0   0   nodata   noerase  color   0  xstyle   1  ystyle   1  _extra   ex      projection : BEGIN        if chkstru ex   NOERASE  then begin         oldnoerase   ex noerase         ex noerase   1       endif       if chkstru ex   SUBTITLE  then  p subtitle   ex SUBTITLE       if n_elements maptitre  ne 0 then ex title   maptitre       map_set  map_lat  map_lon  map_rot  _extra   ex   iso  limit    lat1  lon1  lat2  lon2             NOERASE   noborder  title    p title  color   0           map_proj_info  numproj   current           map_proj_info  numproj  name   nomproj           if nomproj EQ  Mercator  OR nomproj EQ  Cylindrical  OR nomproj EQ  LambertConic             OR nomproj EQ  Gnomic  OR nomproj EQ  AlbersEqualAreaConic               OR nomproj EQ  TransverseMercator  OR nomproj EQ  MillerCylindrical               OR nomproj EQ  LambertConicEllipsoid  then map_grid  box_axes 1 latdel 10 londel 10             ELSE map_grid  charsize   0 75   label latalign   1 lonalign             1 latdel   10 londel   30       IF n_elements labmap  EQ 0 THEN labmap   1       map_grid  charsize   0 75  label   labmap  latalign   1  lonalign   1  latdel   10  londel   30  color   0  _extra   ex       if chkstru ex   NOERASE  THEN  ex noerase   oldnoerase     end   endcase     V5  Colorbar      colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       VI  Possible print      fini:   terminedessin  _extra   ex     sortie:   if keyword_set savedbox  THEN restoreboxparam   boxparam4plt dat    if keyword_set key_performance  NE 0 THEN print   temps plt  systime 1 tempsun        return end  "); 
    251251a[249] = new Array("./ToBeReviewed/PLOTS/DESSINE/plt1d.html", "plt1d.pro", "", "         file_comments   Trace 1d graphes: x y z  or t but in this case  we recall directly pltt       categories   Graphics      param TAB  in required     The field whose we want to make the hovmoller map can be 2 kind of thing:  1  An array which can be:              2d  3d or 4d:  array xy  xyz  xyt or xyzt  In this case  the array will pass             in moyenne or grossemoyenne to be averaged and becomme  an array 1d                1d:Nevertheless  the type must be specified in order to we know which trace             it is about  To have a correct caption  respecify the  xctraction zone via BOXZOOM          2  a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contained in the structure             respecting criterions of case 1        param PARAM2  in required     Min value we want to consider in the contour s drawing    Note: could also be the type of plot: x y z         param PARAM3  in optional default min max of tab  on ocean points     Max value we want to consider in the contour s drawing    Note: if param2 is defined as  x y z  then param3 is used to define the min  see param2       param PARAM4  in optional default max of tab  on ocean points     Type of plot  can be only  x y z  for plt1d    Note: if param2 is defined as  xy  then param4 is used to define the max  see param3       keyword BOXZOOM   Vector indicating the geographique zone  3d  on which the extraction of the field must    be done to do the hovmoeller     If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  vert1  vert2    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 vert1 vert2 are global variables defined at the last domdef       keyword COL1d     OBSOLETE Color number when we make a trace 1d by default  0 It is better to use the    keyword COLOR used by plot       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates       keyword MAXIN    Allows to specify the max value we want to consider in the drawing of contour    helping by the keyword instead of the argument max  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword MININ    Allows to specify the min value we want to consider in the drawing of contour    helping by the keyword instead of the argument min  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword OV1D   Allow the double exposure of an 1d curve to a precedent 1d trace       keyword REVERSE_X    To invert the x axis  so as the drawing       keyword REVERSE_Y    To invert the y axis  so as the drawing       keyword SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       keyword STY1D     OBSOLETE    Number of the style used when we make a 1d drawing  We should better use the    keyword LINESTYLE which is tho one of the plot  Beware  this keyword is still    useful if we want to d bars instead of curves  put sty1d bar       keyword TYPEIN   allows to specify the type of hovmoller we want to do                xt yt zt t      with help of a keyword rather than the argument type  If the argument andthe    keyword are specified in the same time  it is the value specified by the    keyword which is retained       keyword _EXTRA    used to pass your keywords      history    creation 24 6 99 Eric Guilyardi     a partir routine pltt de Sebastien Masson    8 7 1999 Sebastien Masson  smasson lodyc jussieu fr     inspection des travaux finis   8 2 2000 Sebastien Masson: checkfield      version     Id: plt1d pro 142 2006 07 21 12:47:49Z navarro             pro plt1d  tab  param2  param3  param4  BOXZOOM   boxzoom  SIN   sin                MININ   minin  MAXIN   maxin  TYPEIN   typein  ENDPOINTS   endpoints                COL1D   col1d  STY1D   sty1d  OV1D   ov1d  X   x  Y   y  Z   z  TT   tt                REVERSE_X   reverse_x  REVERSE_Y   reverse_y  SWITCHXY   switchxy                _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             pour key_performance     1st part: initialization small calculations          verification of the type s value       if n_elements param2  NE 0 then type   param2   if n_elements param3  NE 0 then min   param3   if n_elements param4  NE 0 then max   param4   if n_elements minin  NE 0 then min   minin   if n_elements maxin  NE 0 then max   maxin   if keyword_set tt  then typein    t    if keyword_set typein  then BEGIN      if size type   type  NE 7 AND size type   type  NE 0 then begin       if n_elements min  NE 0 then max   min       min   type     endif     type   typein   endif     checktypeminmax   plt1d  TYPE   type  MIN   min  MAX   max  ENDPOINTS   endpoints         XX   keyword_set x  YY   keyword_set y  ZZ   keyword_set z     if type EQ  t  then BEGIN     pltt  tab  type  min  max  BOXZOOM   boxzoom  SIN   sin  TYPEIN   typein           COL1D   col1d  STY1D   sty1d  OV1D   ov1d  ENDPOINTS   endpoints  _extra   ex     return   endif     I2  reinitialization   p x y    Comment: We do not reinitializate when we call back plt1d     if NOT keyword_set ov1d  then reinitplt     I1  Reading of the field      if  keyword_set boxzoom  OR keyword_set endpoints  THEN BEGIN      savedbox   1b      saveboxparam   boxparam4plt1d dat     ENDIF     if keyword_set endpoints  then begin     section  tab  z1d  glam  gphi  ENDPOINTS   endpoints  TYPE   type           BOXZOOM   boxzoom  DIREC   direc     nx   n_elements glam       ny   nx     if strupcase vargrid  EQ  W  then begin       z   gdepw firstzw:lastzw        nz   nzw     ENDIF ELSE BEGIN       z   gdept firstzt:lastzt        nz   nzt     ENDELSE   ENDIF ELSE BEGIN      z1d   checkfield tab   plt1d  TYPE   type  BOXZOOM   boxzoom                          direc   direc  _extra   ex      grille  mask  glam  gphi  gdep  nx  ny  nz   ENDELSE   if z1d 0  EQ  1 then BEGIN      IF keyword_set savedbox  THEN restoreboxparam   boxparam4plt1d dat      return endif   We build the mask  For this  the array must be hidden  Automaticaly done at valmask    value if we pass in moyenne or grossemoyenne    mask   fltarr n_elements z1d    if n_elements valmask  EQ 0 then valmask   1e20   nan   total finite z1d   nan     1   if keyword_set nan  then begin     notanum   where finite z1d  EQ 0      z1d notanum    0     mask where z1d LT valmask 10    1     z1d notanum     values f_nan   ENDIF ELSE mask where z1d LT valmask 10    1     determination of the min and of the max after the average     nan   total finite z1d   nan    1   determineminmax  z1d  mask  mi  ma  MININ   min  MAXIN   max  nan   nan  INTERVALLE   intervalle  _extra   ex   if z1d 0  EQ  1 THEN return       if NOT keyword_set ov1d  THEN placedessin   autre  posfenetre  posbar  contour   contour  DIREC   direc  endpoints   endpoints  _extra   ex       2nd part: Drawing       definition of the abscisse and ordinate vectors    The triangulation is defined in order to the drawing be done from the    left bottom to the right up  So the matrix have to be shown like this     from which some transpose and reverse       case type of      y : begin       yy   z1d       IF  size gphi 0  EQ 1 then xx   gphi ELSE BEGIN          IF keyword_set key_irregular  THEN BEGIN            cln    where gphi EQ max gphi 0            xx   reform gphi cln MOD nx            ENDIF ELSE xx   reform gphi 0          ENDELSE       if keyword_set sin  then xx   sin pi 180 xx        min0   lat1   max0   lat2     END      x :begin       yy   z1d       xx   glam  0        min0   lon1   max0   lon2     END       z :begin       yy   reverse gdep  1        xx   reverse z1d  1        min0   0   max0   0       case n_elements boxzoom  of         0: y range    vert1  vert2          1: y range    0  boxzoom          2: y range   boxzoom         4: y range    vert1  vert2          5: y range    0  boxzoom 4          6: y range   boxzoom 4:5        endcase       if NOT keyword_set ov1d  then  y range   reverse y range      END    ENDCASE          definition of axes        if keyword_set integrationtps  then axe  type  time 0  time jpt 1  SIN   sin  _extra   ex        ELSE axe  type  SIN   sin   if NOT keyword_set ov1d  then axe  type  SIN   sin       drawing       if type EQ  z  then begin     idx   where xx NE valmask      if NOT keyword_set ov1d  then BEGIN        if min EQ mi then  x range    min abs max min 5  max abs max min 5          ELSE  x range    min  max      ENDIF   ENDIF ELSE BEGIN      idx   where yy NE valmask      if NOT keyword_set ov1d  then BEGIN        if min EQ mi then  y range    min abs max min 5  max abs max min 5          ELSE  y range    min  max      ENDIF   ENDELSE      if NOT keyword_set ov1d  then BEGIN      legende  mi  ma  type  CONTOUR   contour  DIREC   direc  ENDPOINTS   endpoints  _EXTRA   ex     ENDIF   IF keyword_set switchxy   THEN BEGIN     tmp   xx     xx   yy     yy   temporary tmp      if NOT keyword_set ov1d  then BEGIN        tmp    x        x    y        y   temporary tmp      ENDIF   ENDIF   if NOT keyword_set ov1d  then BEGIN      if keyword_set reverse_x  then  x range   reverse x range      if keyword_set reverse_y  then  y range   reverse y range    ENDIF     xx   xx idx    yy   yy idx    if  not keyword_set col1d  then col1d   0   if keyword_set sty1d  then BEGIN  If we want to make bars     IF strlowcase strtrim sty1d  EQ  bar  then begin        y range    y range 0 y range 1 y range 0 05   y range 1         bar_plot  yy  background    d n_colors 1    255             baselines   replicate y range 0  n_elements yy  barnames                 colors      replicate col1d  n_elements yy   outline       if n_elements ex  NE 0 then BEGIN    To have a black frame         if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       ENDIF       plot   0   0   noerase   nodata  _extra   ex       GOTO  fini     ENDIF    ENDIF     if NOT keyword_set ov1d  then BEGIN        plot  xx  yy  color   col1d  linestyle   sty1d  thick   2  title     subtitle     _extra   ex     if n_elements ex  NE 0 then BEGIN    To have a 0 colored frame and trace a line at y 0       if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       if  where tag_names ex  EQ  LINESTYLE 0  NE  1 then ex LINESTYLE   0       if  where tag_names ex  EQ  THICK 0  NE  1 then ex THICK   0     ENDIF     plot   x range   0  0   noerase   nodata           xstyle   1 4 keyword_set endpoints  AND                          type EQ  x  AND lat1 NE lat2  OR  type EQ  y  AND lon1 NE lon2            ystyle   1  _extra   ex   Add of an axis in the case where we use endpoints     if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex   Trace a line at x 0     plot   0  0   y range   noerase   nodata  title     subtitle     _extra   ex   ENDIF ELSE oplot  xx  yy  color   col1d  linestyle   sty1d  thick   2  _extra   ex       3rd part: Possible print      fini:   terminedessin  _extra   ex   if keyword_set savedbox  THEN restoreboxparam   boxparam4plt1d dat      if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps plt1d  systime 1 tempsun          return end  "); 
    252252a[250] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltbase.html", "pltbase.pro", "", "             file_comments   Overlayer contour to trace a field which can be mask     Elementary brick of plt  pltz et pltt       categories graphic      param Z2D  in required    The table to trace      param X  in required    Axis  Vector or array of the same size that z2d  This is the coordinate of z2d on x       param Y  in required    Axis  Vector or array of the same size that z2d  This is the coordinate of z2d on y       param MASK  in required    It is the array who mask z2d  with 0s on points we want to mask and 1s on others     If z2d is not masked  put this argument equal to 1       param XM  in required    Axis of the mask  Vector or array of the same size that mask     This is the coordinate of mask on x       param YM  in required    Axis of the mask  Vector or array of the same size that mask     This is the coordinate of mask on y       param LEVELS  in optional    Vectors which contain levels needed at the contour     If it is not given  we take 20 levels between the min and the max         param COLORS  in optional    Vectors which contain colors needed at the contour     If it is not given  we take 20 levels between the min and the max       keyword COLORTRICHAMP    The color we want to use to draw the triangulation which is used to make contours of the field       keyword COLORTRIMASK    The color we want to use to draw the triangulation which is used to make contours of the mask       keyword COLOR_C    To draw the contour in color instead of in black   with filling in color       keyword  CONT_NOFILL    Activate it not to fill the point mask to let them transparent     Comment: Nevertheless  we trace mask s contour       keyword CONT_COLOR    The color of the continent  defaut value is           d n_colors   1   white      keyword  DESSTRICHAMP    To draw the triangulation which is used to make field s contours        keyword  DESSTRIMASK    To draw the triangulation which is used to make mask s contours        keyword  FORPLT    To activate if we want that the drawing of coast be realized by tracecote rather than tracemask       keyword I_COLORS    It is a vector specifing the colors to use to trace contours     It is the same thing that c_colors which act on contours       keyword MORE    Number to give to avoid style s bugs:      Out of range subscript encountered:        Execution halted at:  PLTBASE           151               By default more 10 If the bug still exist  increase the value of more      The explanation and the justification of this method do not have scientific bases yet       keyword  NOFILL   To make just isolines       keyword  NOCONTOUR   To make just colors       keyword  UNSUR2 To trace one isoline on two       keyword UNLABSUR    Is an integer n  specifying we only label one contour on two      keyword CONTOUR    To be used since plt  pltz or pltt   Have a look on these routines       keyword _EXTRA    Used to pass your keywords      uses   common pro      restrictions   In the case of z2d  x and y are arrays of same size  we hate to put them as vectors: z2d  x  y       history    Sebastien Masson  smasson lodyc jussieu fr        8 2 2000 check if the tri array is not equal to    1  allow contour with out using a triangulation        version    Id: pltbase pro 142 2006 07 21 12:47:49Z navarro        todo seb L 172   173           PRO pltbase  z2d  x  y  mask  xm  ym  levels  colors  UNSUR2   unsur2  CONTOUR   contour                  NOCONTOUR   nocontour  NOFILL   nofill                  TRICHAMP   trichamp  TRIMSK   trimsk                  REALCONT   realcont  NAN   nan  usetri   usetri                  COLORTRICHAMP   colortrichamp  COLORTRIMASK   colortrimask                  COLORTRINAN   colortrinan                  COLORPOINTS   colorpoints  DRAWPOINTS   drawpoints                  TH_TRICHAMP   th_trichamp  TH_TRIMASK   th_trimask                  DESSTRICHAMP   desstrichamp  DESSTRIMASK   desstrimask                  DESSTRINAN   desstrinan  COLOR_C   color_c                  I_COLORS   i_colors   CONT_COLOR   CONT_COLOR                  CONT_NOFILL   cont_nofill  UNLABSUR   unlabsur                  COINMONTEMASK   coinmontemask  COINDESCENDMASK   coindescendmask                  COINMONTENAN   coinmontenan  COINDESCENDNAN   coindescendnan                  INDICEZOOMMASK   indicezoommask  INDICEZOOMNAN   indicezoomnan                  MASKNAN   masknan  TRINAN   trinan                  FORPLT   forplt  REALSECTION   realsection                  MORE   more  EXCHANGE_XY   exchange_xy                  _EXTRA   ex       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       Explanation concerning contour  This keyword is activated when we trace a    colored contour different from the one with black trait    If it is activated  case n_elements contour  NE 0  we pass 2 time in pltbase:     1  We trace colors then we leave  it is the case:           n_elements contour  NE 0 AND n_elements contour  NE 4      2  We trace contours in traits then continents  it is the case:            n_elements contour  NE 0 AND n_elements contour  EQ 4        tempsun   systime 1             To key_performance   if n_elements mask  EQ 0 then mask   1b   if n_elements masknan  EQ 0 then masknan   1b   IF total mask  EQ n_elements z2d  THEN mask   1b     If levels and colors aren t given     if n_params  EQ 4 then        label  0  min z2d mask  max z2d mask  ncontour  levels  colors   attention bidouille inexplicable pour que tout se passe bien avec les   postcript ds pltz    if n_elements contour  LE 4 AND  x type EQ 0 THEN       plot   0   0  xstyle   5  ystyle   5   nodata   noerase  title     subtitle         Is cell_fill is a part of _extra  we desactive it if it is nt equal to 2     IF chkstru ex   CELL_FILL  THEN BEGIN      cell_fill   ex CELL_FILL     if ex CELL_FILL NE 2 then ex CELL_FILL   0   ENDIF ELSE cell_fill   0            I  Filling of contours in palette colors      if NOT keyword_set more  then more   10   if NOT keyword_set nofill  AND NOT keyword_set color_c  then begin     if n_elements contour  NE 4 THEN BEGIN        if usetri EQ 2 then BEGIN         IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size z2d 2          IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size z2d 1 y         contour   z2d  fltarr more   x  fltarr more                 y  fltarr more  levels   levels  c_color   colors                noerase   fill  TRIANGULATION   trichamp  _extra   ex         ENDIF ELSE BEGIN         IF size x   n_dimensions  EQ 2 THEN x   x  0          IF size y   n_dimensions  EQ 2 THEN y   reform y 0            contour  z2d  x  y  levels   levels  c_color   colors   noerase                fill  _extra   ex        ENDELSE     ENDIF   ENDIF   if n_elements contour  NE 0 AND n_elements contour  NE 4 THEN GOTO  fini    IF chkstru ex   C_ORIENTATION  THEN ex   extractstru ex   C_ORIENTATION    IF chkstru ex   C_SPACING  THEN ex   extractstru ex   C_SPACING    IF chkstru ex   C_COLORS  THEN ex   extractstru ex   C_COLORS      II  Drawing of contours in traits     if n_elements contour  EQ 4 OR n_elements contour  EQ 0 THEN BEGIN     we put the masked values to NaN       IF  n_elements mask  GT 1 OR n_elements masknan  GT 1          AND NOT keyword_set cont_nofill  THEN BEGIN         tonan   where mask masknan  EQ 0  count        tonan   where remplit mask masknan  nite   1  mask   mask masknan                                  basique  fillval   0                                 fillxdir   keyword_set realsection  EQ 0  count        IF count NE 0 THEN z2d temporary tonan     values f_nan     ENDIF        We do not pass if we have to make differents contours    In the case of unsur2 is activated  we reduce levels     if NOT keyword_set nocontour  then begin       IF keyword_set unsur2  THEN levels   levels where zeroun n_elements levels    eq 1    Is unlabsur activated   Does C_LABEL passed via _EXTRA        if keyword_set unlabsur  THEN IF chkstru ex   C_LABELS  THEN           ex C_LABELS   1 indgen n_elements ex C_LABELS  MOD unlabsur    1      Not to fill when cell_fill is imposed        IF chkstru ex   CELL_FILL  THEN ex CELL_FILL   0         CASE 1 OF         keyword_set color_c :c_colors   colors         keyword_set i_colors :c_colors   i_colors         ELSE:       ENDCASE         IF usetri EQ 2 THEN BEGIN          IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size z2d 2          IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size z2d 1 y         contour   z2d  fltarr more   x  fltarr more                 y  fltarr more  levels   levels               overplot   1 keyword_set nofill  noerase   keyword_set nofill                c_colors   c_colors  TRIANGULATION   trichamp  _extra   ex       ENDIF ELSE BEGIN         IF size x   n_dimensions  EQ 2 THEN x   x  0          IF size y   n_dimensions  EQ 2 THEN y   reform y 0            contour  z2d  x  y  levels   levels               overplot   1 keyword_set nofill  noerase   keyword_set nofill                c_colors   c_colors  _extra   ex       ENDELSE     ENDIF     III  Filling of colored continents        IF chkstru ex   CELL_FILL  THEN ex CELL_FILL   cell_fill   1     IF chkstru ex   LEVELS  THEN ex   extractstru ex   LEVELS      IF chkstru ex   NODATA  THEN ex   extractstru ex   NODATA      IF NOT keyword_set cont_color  THEN cont_color    d n_colors 1     255         If there is points at NaN    We trace points in white at NaN bafore drawing coasts with a trait        if keyword_set trinan  THEN BEGIN       IF size x   n_dimensions  EQ 1 THEN x   x replicate 1   size masknan 2        IF size y   n_dimensions  EQ 1 THEN y   replicate 1   size masknan 1 y       contour   1b masknan  fltarr more   x  fltarr more               y  fltarr more  levels   0 5   overplot   fill             c_colors   cont_color  TRIANGULATION   trinan  _extra   ex       IF keyword_set forplt  THEN           completecointerre  COINMONTE   coinmontenan             COINDESCEND   coindescendnan  INDICEZOOM   indicezoomnan             CONT_COLOR   cont_color  _EXTRA   ex         ELSE fillcornermask  x  0  y 0    COINMONTE   coinmontenan             COINDESCEND   coindescendnan  CONT_COLOR   cont_color  _extra   ex     ENDIF     Filling of continents       if keyword_set realcont  then if realcont EQ 1 then mask   1b     if n_elements mask  NE 1 then BEGIN   If mask 1 we gap it          if NOT keyword_set cont_nofill  then BEGIN     mask filling           case 1 of           keyword_set realsection :drawsectionbottom  mask  xm  ym                 CONT_NOFILL   cont_nofill  CONT_COLOR   cont_color  _EXTRA   ex           usetri GE 1:BEGIN             if n_elements trimsk  eq 0 then trimsk   trichamp             IF size xm   N_DIMENSIONS  EQ 1 THEN xm   xm replicate 1   size mask 2              IF size ym   N_DIMENSIONS  EQ 1 THEN ym   replicate 1   size mask 1 ym             contour   1b mask  fltarr more   xm  fltarr more                     ym  fltarr more  LEVELS   0 5   OVERPLOT   FILL                   C_COLORS   cont_color  TRIANGULATION   trimsk  _extra   ex             IF keyword_set forplt  THEN                 completecointerre  COINMONTE   coinmontemask                   COINDESCEND   coindescendmask  INDICEZOOM   indicezoommask                   CONT_COLOR   cont_color  _EXTRA   ex               ELSE fillcornermask  xm  0  ym 0    COINMONTE   coinmontemask                   COINDESCEND   coindescendmask  CONT_COLOR   cont_color  _extra   ex           END           ELSE:BEGIN              IF size xm   n_dimensions  EQ 2 THEN xm   xm  0              IF size ym   n_dimensions  EQ 2 THEN ym   reform ym 0                contour  1b mask  xm  ym  LEVELS   0 5   OVERPLOT                    FILL  C_COLORS   cont_color  _EXTRA   ex           END         ENDCASE       ENDIF                       NOT keyword_set cont_nofill      IV  Trace coast in traits         case 1 of         keyword_set realsection  AND NOT keyword_set cont_nofill :               keyword_set realsection  AND keyword_set cont_nofill :             drawsectionbottom  mask  xm  ym               CONT_NOFILL   cont_nofill  _extra   ex          keyword_set forplt  AND  map projection GT 0 OR key_irregular              OR keyword_set nan :tracecote  _extra   ex         ELSE:tracemask  mask  xm  ym  _extra   ex       endcase                         ENDIF                         n_elements mask  NE 1   ENDIF     draw the triangulations     if keyword_set desstrichamp  then       dessinetri  trichamp  x  y  color   colortrichamp  thick   th_trichamp   if keyword_set desstrimask  then       dessinetri  trimsk  xm  ym  color   colortrimask  thick   th_trimask   if keyword_set desstrinan  then       dessinetri  trinan  x  y  color   colortrinan   if keyword_set drawpoints  then       tracegrille  x  y  color   colorpoints     fini:   IF keyword_set key_performance  THEN print   temps pltbase  systime 1 tempsun     return end"); 
    253253a[251] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltsc.html", "pltsc.pro", "", "       todo seb     PRO  pltsc tab1 tab2  min1  max1  min2  max2  varname2  BOXZOOM   boxzoom               COL1D col1d STY1D sty1d OV1D ov1d  _extra   ex     scatter plot  inspired from plt1d        compile_opt idl2  strictarrsubs        include common  cm_4mesh  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      Comment: We do not reinitializate when we call back pltsc    if NOT keyword_set ov1d  then reinitplt      reduce data xyzt domain     if keyword_set boxzoom  then BEGIN       Case 1 Of        N_Elements Boxzoom  Eq 1:bte    lon1  lon2  lat1  lat2  0  boxzoom 0         N_Elements Boxzoom  Eq 2:bte    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1         N_Elements Boxzoom  Eq 4:bte    Boxzoom  vert1  vert2         N_Elements Boxzoom  Eq 5:bte    Boxzoom 0:3  0  Boxzoom 4         N_Elements Boxzoom  Eq 6:bte   Boxzoom        Else: Begin          ras   report Wrong Definition of Boxzoom            return        End      endcase      savedbox   1b      saveboxparam   boxparam4pltsc dat       domdef  bte  GRIDTYPE   vargrid    ENDIF    extract indexes to plot     indexm   where tab1 LE valmask 10     tab1   tab1 indexm     tab2   tab2 indexm      npts    size indexm 1     deal with  min and max of plot    IF finite min1  EQ 0 THEN min1   min tab1     IF finite max1  EQ 0 THEN max1   max tab1     IF finite min2  EQ 0 THEN min2   min tab2     IF finite max2  EQ 0 THEN max2   max tab2         init plot if not overlay        IF NOT keyword_set ov1d  THEN placedessin   yfx  posfenetre  posbar        contour   contour  _extra   ex    yy   tab1    xx   tab2    axis range     x range    min2 abs max2 min2 5 max2 abs max2 min2 5      y range    min1 abs max1 min1 5 max1 abs max1 min1 5      IF  NOT keyword_set sty1d  THEN sty1d   0    IF  NOT keyword_set col1d  THEN col1d   0    IF  NOT keyword_set ov1d  THEN  BEGIN        legende  min1  max1   yfx  VARNAME2   varname2  NPTS   npts  _EXTRA   ex          plot xx yy  background   255  psym   sty1d 1  color col1d  thick 2            title     subtitle    _extra   ex        if n_elements ex  NE 0 then BEGIN    To have a 0 colored frame and trace a line at y 0          if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0          if  where tag_names ex  EQ  LINESTYLE 0  NE  1 then ex LINESTYLE  0        ENDIF        plot   x range   0  0   noerase   nodata  xstyle   1  ystyle   1  _extra   ex   trace a line at x 0       plot   0  0   y range   noerase   nodata  title     subtitle     _extra   ex    ENDIF ELSE oplot xx yy color col1d linestyle sty1d thick 2  _extra   ex       3rd part: Possible print     fini:    terminedessin  _extra   ex   if keyword_set savedbox  THEN restoreboxparam   boxparam4pltsc dat       if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps plt1d  systime 1 tempsun           return end  "); 
    254 a[252] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltt.html", "pltt.pro", "", "         file_comments    Trace hovmoller graphs: xt yt zt t      categories Graphics      param TAB  in required     The field whose we want to make the hovmoller map can be 2 kind of thing:  1  An array which can be:              3d or 4d: array   xt yt zt t  The last component is the time  In this case  the array will               pass in grossemoyenne to be averaged and become an 1d or 2d array               2d: If the array is already 2d  it is not modified  beware  lands must               be masked at the value valmask  and nevertheless type must be specified               to we know of which trace it is about               To have a correct caption  respecify the  xctraction zone via BOXZOOM               1d: only for traces of the  t  type  Nevertheless  type must be specified               to we know of which trace it is about               To have a correct caption  respecify the  xctraction zone via BOXZOOM          2  a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contained in the structure             respecting criterions of case 1         PARAM:          MAX: valeur maximum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le max de tableau  sur les pts mer     MIN: valeur minimum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le min de tableau  sur les pts   mer            DATMIN: c est la borne inf de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd            DATMAX: c est la borne max de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd       keyword BOXZOOM   Vector indicating the geographique zone  3d  on which the extraction of the field must    be done to do the hovmoeller     If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  vert1  vert2    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 vert1 vert2 are global variables defined at the last domdef       keyword CONTINTERVALLE    When CONTOUR is activated  it is the value between 2 isolines    traced by a trait  So it can be different from the one specified by INTERVALLE which     in this case  does not control colored isolines in color anymore  If there is noone    specified min  we choose a contour min which goes well with the specified interval     If this keyword is not specified  we trace 20 isolines from the min to the max        keyword CONTLABEL    It is an integer n  When CONTOUR is actvated  if n   is different of 0  choose the label type corresponding to n cases for    the traced by a traitisolines  To specify the type of label of the    colored contour  use LABEL      keyword CONTMAX    When CONTOUR is activated  max value we want to consider in the isoline    traced by a trait s line  By default  we take the max  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTMIN    When CONTOUR is activated  min value we want to consider in the isoline    traced by a trait s line  By default  we take the min  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of pltt       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        keyword EXCHANGE_XY   Allows to invert axes        keyword FILTER   Apply a slippery average of width FILTER       keyword INTERVALLE    Value of an internal between to isoline  If there is none specified min     we choose a min contour which goes well with the specified interval  If this keyword is not    specified  we trace 20 isoline from the min to the max  Comment: When CONTOUR is activated     INTERVALLE only specify the interval between 2 colored isoline  To specify the interval    between 2 isolines traced by a trait  use CONTINTERVALLE       keyword INV    Invert the color vector used to color the graph                   without use the black  the white and the used palette        keyword LABEL    It is an integer n  If n different of 0  it choose the label s type    corresponding to cases n  cf label pro   Comment: When CONTOUR is activated  it only specify the label s type for colored isolines     For tese one traced by a trait  use CONTLABEL        keyword COL1d    OBSOLETE Color number when we make a trace 1d by default  0 It is better to use the    keyword COLOR used by plot       keyword MAXIN    Allows to specify the max value we want to consider in the drawing of contour    helping by the keyword instead of the argument max  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword MININ    Allows to specify the min value we want to consider in the drawing of contour    helping by the keyword instead of the argument min  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword NLEVEL    Number of contour to draw by default  20  active if   LABEL 0 or is not specified       keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword OV1D    Allows to overprint a 1d curve over a precedent 1d drawing       keyword OVERPLOT    To make a plot over an other one     Comment: Contrarily to the use of CONTOUR or VECTEUR  the use of this keyword    does not the caption and or the color bar       keyword STRICTFILL    Activate this keyword to that the filling of contours be    precisely done between the min and the max specified letting values inferior at the    specified min and values superior at the specified max in white       keyword STYLE    Contour s style to adopt to draw isolines by default  style 0  see style pro       keyword STY1D     OBSOLETE    Number of the style used when we make a 1d drawing  We should better use the    keyword LINESTYLE which is tho one of the plot  Beware  this keyword is still    useful if we want to d bars instead of curves  put sty1d bar       keyword TREND_TYPE   Modify field by calling trends pro      keyword TYPEIN   allows to specify the type of hovmoller we want to do                xt yt zt t      with help of a keyword rather than the argument type  If the argument andthe    keyword are specified in the same time  it is the value specified by the    keyword which is retained       uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr   27 5 98                         Jerome Vialard  adapting plt to hovmoller drawing                          2 7 98                         Sebastien Masson 14 8 98  continents barres                          15 1 98   Adaptation for arrays 3 and 4d to the average be done in pltt rather than during the reading                          Sebastien Masson 14 8 98                          7 1999                          Eric Guilyardi 29 7 99 FILTER  TREND_TYPE                          REPEAT_C                          Sebastien Masson 08 02 2000 checkfield and                         usetri keyword        version     Id: pltt pro 142 2006 07 21 12:47:49Z navarro        todo seb: L 24   36  L 426   427  L  492   493         pro pltt tab giventype givenmin givenmax datmin datmax BOXZOOM   boxzoom  CONTOUR contour             ENDPOINTS endpoints INTERVALLE intervalle INV inv              CONTINTERVALLE contintervalle LABEL label CONTLABEL contlabel             STYLE style  CONTMAX contmax             CONTMIN contmin NLEVEL nlevel CONTNLEVEL contnlevel             COL1D col1d STY1D sty1d  MININ   minin  MAXIN   maxin             OV1D ov1d  FILTER   filter  TREND_TYPE   trend_type             REPEAT_C   repeat_c  TYPEIN   typein  XT   XT  YT   YT  ZT   zt              TT   tt  STRICTFILL   strictfill  OVERPLOT   overplot              EXCHANGE_XY   exchange_xy              _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF        tempsun   systime 1            For key_performance     I2  reinitialization   p x y    Comment: we do not reinitializate when we call back plt in loop to use contour       if n_elements contour  ne 4 AND NOT keyword_set overplot        AND NOT keyword_set ov1d  then reinitplt     I1  Reading of the field       if  keyword_set boxzoom  OR keyword_set endpoints         AND n_elements contour  ne 4 THEN BEGIN      savedbox   1b      saveboxparam   boxparam4pltt dat     ENDIF    if n_elements giventype  NE 0 then type   giventype    if n_elements givenmin  NE 0 then min   givenmin    if n_elements givenmax  NE 0 then max   givenmax    if n_elements minin  NE 0 then min   minin    if n_elements maxin  NE 0 then max   maxin    if keyword_set typein  then BEGIN        if size type   type  NE 7 AND size type   type  NE 0 then begin          if n_elements min  NE 0 then max   min          min   type       endif       type   typein     ENDIF      checktypeminmax   pltt  TYPE   type  MIN   min  MAX   max          XT   XT  YT   YT  ZT   zt  TT   tt  ENDPOINTS   endpoints  _extra   ex      if keyword_set endpoints  then begin       section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type             BOXZOOM   boxzoom  DIREC   direc       nx   n_elements glam         ny   nx       if strupcase vargrid  EQ  W  then begin          z   gdepw firstzw:lastzw           nz   nzw       ENDIF ELSE BEGIN          z   gdept firstzt:lastzt           nz   nzt       ENDELSE    ENDIF ELSE BEGIN        z2d   checkfield tab   pltt  TYPE   type  BOXZOOM   boxzoom                            direc   direc  _extra   ex        if z2d 0  EQ  1 then BEGIN          IF keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat          return       endif       grille  mask  glam  gphi  gdep  nx  ny nz    ENDELSE     Calculation of trend anomaly following TREND_TYPE       IF NOT keyword_set trend_type  THEN trend_type   0     IF trend_type GT 0 THEN z2d   trends z2d  trend_type  type       Filtering of fields in the  t  case         IF type EQ  t  AND keyword_set filter  THEN BEGIN        print       Applying a running mean filter of width  string filter  format    I3        z2d   smooth z2d  filter        z2d 0:filter 2 1    0        z2d size z2d 1 filter 2 1: size z2d 1 1    0     ENDIF       Repetition of the temporal series       IF NOT keyword_set repeat_c  THEN repeat_c   1     temps   time 0:jpt 1     IF repeat_c GT 1 THEN BEGIN       taille size z2d        CASE taille 0  OF          1: z2d   reform z2d replicate 1  repeat_c  taille 1 repeat_c           2: BEGIN             z2d   z2d replicate 1  repeat_c              z2d   reform z2d  taille 1  taille 2 repeat_c   over           END           ELSE:        ENDCASE       temps    temps   lindgen jpt REPEAT_c 1 1 temps 1 temps 0 temps jpt 1     ENDIF       Selection of graphic s type        taille size z2d     case taille 0  of       2 : typdes 2d        1 : begin          z1d z2d          typdes 1d           if keyword_set OV1D  then begin             yy   z2d             if n_elements datmin  NE 0 then tempsmin   date2jul datmin                ELSE tempsmin   temps 0    on shift l axe du temps pour des questions de precision sur les   dates du calendier julien en long qui sont passes en float ds les axes             xx   temps tempsmin              x range x range tempsmin              x tickv x tickv tempsmin   We do a false plot to apply these changes              plot 0   0 noerase xstyle 5  ystyle   5  title     subtitle     ytitle     xtitle                 goto  trace1d          endif       end   endcase   We build the mask  For that  the table must be masked  automaticaly done at the    value valmask if we pass in moyenne or grossemoyenne     nan   total finite z2d nan   z2d  not very nice when xgridstyle 2    same if xticklen 0 5  not very nice in the middle    so we draw   the top  right  axis by hand using axis          if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur noire         if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       ENDIF         plot   0   0   nodata   noerase  _extra   ex             xstyle   1 4 keyword_set endpoints  AND type EQ  xt  AND lat1 NE lat2 8 type EQ  yt  OR type EQ  zt              ystyle   1 4 keyword_set endpoints  AND type EQ  yt 8 type EQ  xt    call axis for the missing axis        IF type EQ  xt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  YTICKNAME 0  NE  1 then             ex YTICKNAME   replicate    n_elements ex YTICKNAME          axis  yaxis   1  ystyle   1  yticklen   0               ytickname   replicate     y ticks 1  _extra   ex       ENDIF       IF  type EQ  yt  OR type EQ  zt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 then             ex XTICKNAME   replicate    n_elements ex XTICKNAME         axis  xaxis   1  xstyle   1  xticklen   0             xtickname   replicate     x ticks 1  _extra   ex       ENDIF   ajout d un axe ds le cas ou l on utilise endpoints       if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     color bar         colnumb   colnumb 0:ncontour 1 keyword_set strictfill        barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                         position   posbar  _extra   ex      endif     1d   trace1d:    if  typdes eq  1d  then begin       if  not keyword_set col1d  then col1d   0       if keyword_set sty1d  then BEGIN  if we want to make bars          IF strlowcase strtrim sty1d  EQ  bar  then begin              y range    y range 0 y range 1 y range 0 05 y range 1               bar_plot  yy  background    d n_colors 1   not very nice when xgridstyle 2  same if   xticklen 0 5  not very nice in the middle       so we draw the top axis by hand using axis           if n_elements ex  NE 0 then BEGIN    To have a black frame             if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0          ENDIF          plot   0   0   nodata   noerase                xstyle   1 8 1 keyword_set exchange_xy                 ystyle   1 8 keyword_set exchange_xy  _extra   ex   call axis for the missing axis           if n_elements ex  NE 0 then BEGIN    force tickname to blank array             if  where tag_names ex  EQ  YTICKNAME 0  NE  1 AND keyword_set exchange_xy  then ex YTICKNAME   replicate    n_elements ex YTICKNAME              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 AND NOT keyword_set exchange_xy  then ex XTICKNAME   replicate    n_elements ex XTICKNAME           ENDIF          if keyword_set exchange_xy  then  axis  yaxis   1  ystyle   1                yticklen   0  ytickname   replicate     y ticks 1  _extra   ex            ELSE axis  xaxis   1  xstyle   1  xticklen   0                xtickname   replicate     x ticks 1  _extra   ex        ENDIF ELSE oplot  xx  yy  color   col1d  linestyle   sty1d  thick   2  _extra   ex    endif fini:     we reput time axis in IDL julian days and not in julian days count from tempsmin       if type EQ  xt  then BEGIN         y range y range tempsmin         y tickv y tickv tempsmin    ENDIF ELSE BEGIN         x range x range tempsmin        x tickv x tickv tempsmin    ENDELSE   We do a false plot to these values are considerated    plot   0   0   nodata   noerase  xstyle   5  ystyle   5          title     subtitle     ytitle     xtitle           3rd part: possible print        terminedessin  _extra   ex    if keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat       if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps pltt  systime 1 tempsun           return end  "); 
    255 a[253] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltz.html", "pltz.pro", "", "             file_comments    Trace vertical graphs       categories    Graphics      param TAB    The field whose we want to make a vertical cut can be 2 kind of thing:           1  An 2d or 3d array             If the field is 2d  indicate  with the keyword BOXZOOM  geographic delineations of the boxzoom             If the field is 3d  we extract the section on we average possibly before to do the plot            2   a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contin in the structure must be 2 or 3d  See case 1      ces arguments ne sont pas obligatoires:      MAX: valeur maximum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le max de tab1  sur les pts mer     MIN: valeur minimum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le min de tab1  sur les pts mer       keyword BOXZOOM    Vector indicating the geographic zone on which we want to cut the map      If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword CONTINTERVALLE    When CONTOUR is activated  it is the value between 2 isolines    traced by a trait  So it can be different from the one specified by INTERVALLE which     in this case  does not control colored isolines in color anymore  If there is noone    specified min  we choose a contour min which goes well with the specified interval     If this keyword is not specified  we trace 20 isolines from the min to the max        keyword CONTLABEL    It is an integer n  When CONTOUR is actvated  if n   is different of 0  choose the label type corresponding to n cases for    the traced by a traitisolines  To specify the type of label of the    colored contour  use LABEL      keyword CONTMAX    When CONTOUR is activated  max value we want to consider in the isoline    traced by a trait s line  By default  we take the max  on ocean points  of the array    passed in the keyword CONTOUR       keyword CONTMIN    When CONTOUR is activated  min value we want to consider in the isoline    traced by a trait s line  By default  we take the min  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        keyword INTERVALLE    Value of an internal between to isoline  If there is none specified min     we choose a min contour which goes well with the specified interval  If this keyword is not    specified  we trace 20 isoline from the min to the max  Comment: When CONTOUR is activated     INTERVALLE only specify the interval between 2 colored isoline  To specify the interval    between 2 isolines traced by a trait  use CONTINTERVALLE       keyword INV    Invert the color vector used to color the graph                   without use the black  the white and the used palette       keyword ZRATIO   When the drawing has a zoomed part  it is the size rapport between the zoomed part     hz  zoom height  and the whole drawing  ht  total height  By default  2 3      keyword LABEL    It is an integer n  If n different of 0  it choose the label s type    corresponding to cases n  cf label pro   Comment: When CONTOUR is activated  it only specify the label s type for colored isolines     For tese one traced by a trait  use CONTLABEL        keyword MAXIN    Allows to specify the max value we want to consider in the drawing of contour    helping by the keyword instead of the argument max  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword MININ    Allows to specify the min value we want to consider in the drawing of contour    helping by the keyword instead of the argument min  If the argument and the keyword are    specified in the same time  it is the value specified by the keyword which is retained       keyword NLEVEL    Number of contour to draw by default  20  active if   LABEL 0 or is not specified        keyword NOTRI    To force not to use the triangulation  Beware  in this case  the    drawing only works if the grid is undeformed  It means that each point of a longitude    give one latitude and each point of a latitude give one longitude  exept if we use    the keyword CELL_FILL 2     Comment: if the field contain points  values f_nan  then we even do a triangulation       keyword OVERPLOT    To make a plot over an other one     Comment: Contrarily to the use of CONTOUR or VECTEUR  the use of this keyword    does not the caption and or the color bar       keyword SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       keyword STRICTFILL    Activate this keyword to that the filling of contours be    precisely done between the min and the max specified letting values inferior at the    specified min and values superior at the specified max in white       keyword STYLE    Contour s style to adopt to draw isolines by default  style 0  see style pro       keyword WDEPTH    To specify that the field is at W depth instead of T    depth  automatically activated if vargrid eq  W       keyword XZ   Force to make a cut following xz      keyword YZ   Force to make a cut following yz      keyword ZOOM    Depth where i can make our maximum zoom  By default 200m or max depth if it is inferior at 200m      uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr    7 1999   Sebastien Masson 08 02 2000 checkfield and   notri keyword       version    Id: pltz pro 142 2006 07 21 12:47:49Z navarro        todo seb L 20   26  L 215   221           pro pltz  tab  giventype  givenmin  givenmax  BOXZOOM   boxzoom  CONTOUR   contour               ENDPOINTS   endpoints  INTERVALLE   intervalle  INV   inv  ZRATIO   zratio               CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel               STYLE   style  CONTMAX   contmax  SIN   sin  TYPEIN   typein               CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel               NOTRI   notri  USETRI   usetri  FILLXDIR   fillxdir               ZOOM   zoom  XZ   xz  YZ   yz  MININ   minin  MAXIN   maxin               STRICTFILL   strictfill  OVERPLOT   overplot  MASKFILL   maskfill               WDEPTH   wdepth  REALSECTION   realsection               _EXTRA   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             For key_performance       1st part: initialization small calculations      Comment: we do not reinitializate when we call back plt in loop to use contour    if n_elements contour  ne 4 AND NOT keyword_set overplot  then reinitplt     if n_elements contour  ne 4 THEN saveboxparam   boxparam4pltz dat       Reading of the field      if n_elements giventype  NE 0 then type   giventype   if n_elements givenmin  NE 0 then min   givenmin   if n_elements givenmax  NE 0 then max   givenmax   if n_elements minin  NE 0 then min   minin   if n_elements maxin  NE 0 then max   maxin   if n_elements realsection  EQ 0 then realsection   1   IF n_elements usetri  EQ 0 THEN BEGIN     IF n_elements notri  NE 0 THEN usetri   2 notri ELSE usetri   1   ENDIF   no need of triangulation   IF usetri EQ 1 AND keyword_set realsection  THEN usetri   0   did we specify the type     if keyword_set typein  then BEGIN      if size type   type  NE 7 AND size type   type  NE 0 then begin       if n_elements min  NE 0 then max   min       min   type     endif     type   typein   ENDIF      checktypeminmax   pltz  TYPE   type  MIN   min  MAX   max         XZ   xz  YZ   yz  ENDPOINTS   endpoints  _extra   ex     if keyword_set endpoints  then begin     section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type          BOXZOOM   boxzoom  DIREC   direc  WDEPTH   wdepth  _extra   ex     if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     nx   n_elements glam       ny   nx     if strupcase vargrid  EQ  W  then begin       gdep   gdepw firstzw:lastzw        nz   nzw     ENDIF ELSE BEGIN       gdep   gdept firstzt:lastzt        nz   nzt     ENDELSE     mask   z2d LE valmask 10    ENDIF ELSE BEGIN     z2d   checkfield tab   pltz  TYPE   type  BOXZOOM   boxzoom                          DIREC   direc  WDEPTH   wdepth  _extra   ex      if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     IF realsection EQ 1 THEN grille  mask  glam  gphi  gdep  nx  ny  nz  ifpltz   type  WDEPTH   wdepth       ELSE grille  mask  glam  gphi  gdep  nx  ny  nz  WDEPTH   wdepth   ENDELSE   stop     profmax    y range 0    profmin    y range 1    if not keyword_set zoom  then zoom   200   zoom   zoom 0    IF zoom LT profmin THEN zoom   profmax   if zoom GE vert2 then zoom   profmax   construction of the mask and of the axis   axis4pltz  type  mask  glam  gphi  gdep  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   to draw from bottom to top  avoid using cell_fill    z2d   reverse z2d  2      Determination of the mi:min and of the ma:max of z2d in the same way    as max: max and min: min for the drawing      nan   total finite z2d   nan   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1b mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    nan values  find the coordinates of the mask        if  where mask EQ 0 0  EQ  1 AND NOT keyword_set nan  then notri   1     if keyword_set notri  then trifield    1       ELSE trifield   triangule mask basic    if  usetri GE 1 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  THEN       trifield   triangule mask   basic      IF NOT keyword_set endpoints   THEN BEGIN     if keyword_set nan  then trinan   triangule masknan   basic  coinmonte   coinmontenan  coindescend   coindescendnan      decoupeterre  mask  glammsk  gphimsk  gdepmsk  type   type  WDEPTH   wdepth  REALSECTION   realsection     axis4pltz  type  mask  glammsk  gphimsk  gdepmsk  XXAXIS   xmask  ZZAXIS   zmask  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   ENDIF ELSE BEGIN     xmask   xxaxis     zmask   zzaxis   ENDELSE      if  usetri GE 1 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN      IF keyword_set realsection  THEN trimsk   triangule mask   basic        ELSE trimsk   triangule mask   basic  coinmonte   coinmontemask                                 coindescend   coindescendmask    ENDIF          dessin en lui meme     pltbase  z2d  xxaxis  zzaxis  mask  xmask  zmask         level_z2d  colnumb  overplot   overplot         contour   contour  trichamp   trifield  trimsk   trimsk          c_linestyle   linestyle         c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  unsur2   unsur2         masknan   masknan  trinan   trinan         coinmontenan   coinmontenan  coindescendnan   coindescendnan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         REALSECTION   realsection  USETRI   usetri  _extra   ex     recall of pltz in loop when contour is activated     if n_elements contour  eq 4 then BEGIN   It is the second time I pass in pltt     contour    mietma: mi  ma  unit:varunit  inter:intervalle    I send back the min  the max and the unity     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     pltz  contour  contmin  contmax  CONTOUR   pourlegende  ZRATIO   zratio           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style   noerase            NLEVEL   contnlevel  ZOOM   zoom  BOXZOOM   boxzoom  ENDPOINTS   endpoints           STRICTFILL   strictfill  REALSECTION   realsection  MASKFILL   maskfill           USETRI   usetri  WDEPTH   wdepth  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       3rd part: drawing of the frame  caption  colorbar      if keyword_set overplot  then BEGIN       y range     zoom  profmin    We get back on physic coordinates     plot   0   0   nodata   noerase  title     subtitle     xstyle   5  ystyle   5     GOTO  fini   endif     Caption   dysplay of them     legende  mi  ma  type  CONTOUR   pourlegende  INTERVALLE   intervalle  DIREC   direc  endpoints   endpoints  _EXTRA   ex   if type eq  yz  then xaxe    lataxe  else xaxe    lonaxe    if keyword_set sin  OR NOT key_onearth then xaxe       Frame applied by default   plot   xxaxis 0  xxaxis n_elements xxaxis 1   zratio   zratio   noerase         xstyle   1 4 keyword_set endpoints  AND  type EQ  xz  AND lat1 NE lat2  OR  type EQ  yz  AND lon1 NE lon2          xtickformat   xaxe  _extra   ex   Add of an axis in the case of we use endpoints   if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     Y axis in 1 or 2 part     if n_elements ex  NE 0 then BEGIN    To do not put title anymore     if  where tag_names ex  EQ  TITLE 0  NE  1 then ex TITLE         To do not put subtitle anymore     if  where tag_names ex  EQ  SUBTITLE 0  NE  1 then ex SUBTITLE         To have just one ytitle     if  where tag_names ex  EQ  YTITLE 0  NE  1 then BEGIN        ytitle   ex YTITLE       ex YTITLE           endif   ENDIF   htotal   posfenetre 3 posfenetre 1    hzoom   1 zratio htotal   if zoom LT profmax then       plot   0   0   nodata   noerase  ystyle   1  yrange    profmax  zoom 0 001          position   posfenetre 0  0  0   hzoom  _extra   ex  title     subtitle     ytitle          y range     zoom  profmin      We get back in physic coordinates    plot   0   0   nodata   noerase  ystyle   1  _extra   ex         title     subtitle     ytitle     position   posfenetre 0  htotal hzoom  0  0      to write the ytitle      if  d name EQ  PS  then       xs    max page_size  min   mi 1 key_portrait    mi key_portrait d x_px_cm     ELSE xs    d x_size   if n_elements ytitle  NE 0 then  y title   ytitle   charsize   chkstru ex   ycharsize   extract    if charsize EQ  1 then charsize    p charsize   IF chkstru ex   charsize  THEN ex charsize   charsize   if chkstru ex   ytitle   extract  NE   then       decalage   string format    e10 3  profmax    decalage   float strmid decalage  strpos decalage   e 1    posy   posfenetre 1 1 htotal 2   posx   posfenetre 0 decalage 3 d x_ch_size charsize xs   xyouts  posx  posy   y title   normal  orientation   90  color   0  ALIGNMENT    5  charsize   charsize  _extra   ex      colorbar     colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       4th part: possible print     fini:   terminedessin  _extra   ex         sortie:   restoreboxparam   boxparam4pltz dat      if keyword_set key_performance  NE 0 THEN print   temps pltz  systime 1 tempsun    return end   "); 
    256 a[254] = new Array("./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html", "sbar_plot.pro", "", "             file_comments    Same thing that bar_plot but compatible with the whole environnement  common pro inclued       categories graphics     INPUTS: cd IDL bar_plot      keyword COLORS    A vector  the same size as VALUES  containing the color index   to be used for each bar   If not specified  the colors are   selected based on spacing the color indices as widely as   possible within the available colors  specified by D N_COLORS       keyword COLORS    Is an integer giving color of all colorbars   contrarily to colors    which is a vector giving the color of each colorbar       keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt      keyword _EXTRA   used to pass your keyword      uses   common pro      restrictions    If NOREINITPLT is not activated  all environnement    variables  p   x   y   z are reinitializtedby the procedure reinitplt      examples        IDL  sbar_plot  indgen 10 small    2 2 2 rempli        IDL  sbar_plot  indgen 10 small    2 2 3 noerase        IDL   ps      history   Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999      version    Id: sbar_plot pro 142 2006 07 21 12:47:49Z navarro              PRO sbar_plot  Values  COLORS   colors  NOREINITPLT   noreinitplt  _extra   ex      compile_opt idl2  strictarrsubs    common   1  I reinitialize the graphic environment  variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  I place the drawing on the screen like on the postscript     IF chkstru ex   overplot EQ 0 THEN placedessin   autre  _extra   ex   3  Drawing     if n_elements COLORS  NE 0 then BEGIN       if n_elements COLORS  EQ n_elements Values  then col   colors          ELSE col   replicate colors 0  n_elements Values     ENDIF ELSE col   congrid indgen d n_colors   256  n_elements Values       bar_plot  Values  background    p background  colors   col                  xstyle   1  ystyle   1  _extra   ex   4  End of drawing     terminedessin  _extra ex      return end"); 
    257 a[255] = new Array("./ToBeReviewed/PLOTS/DESSINE/scontour.html", "scontour.pro", "", "             File_comments   Same thing that contour but compatible with the whole environnement  common pro inclued       categories graphics     INPUTS:cd IDL contour      keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt       keyword _EXTRA   used to pass your keywords      uses   common pro      examples        IDL  z   dist 100          IDL  scontour  z  nlevels 10 small 1 2 1 xstyle 1 ystyle 1        IDL   ps      history Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999       version    Id: scontour pro 142 2006 07 21 12:47:49Z navarro             PRO scontour  x  y  z  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  I reinitializate the graphic environment  variables  x   y et  p :    if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  i put the drawing on the screen like on the postcript    if ex contains norease and c_orientation keywords we force ex noerase   0   IF chkstru ex   overplot  EQ 0 THEN placedessin   autre  _extra   ex   fiddle when noerase is used with c_orentation    call contour with  nodata to get the graphic environment  then force   noerase   0 and overplot   1   IF size ex   type  EQ 8 THEN BEGIN   check if noerase is used with c_orentation     alltags   strlowcase tag_names ex      dummy   where alltags EQ  noerase  count1      dummy   where alltags EQ  c_orientation  count2      IF count1 count2 NE 0 THEN BEGIN        case n_params  OF         1:contour  x   nodata  _EXTRA   ex         2:contour  x  y   nodata  _EXTRA   ex         3:contour  x  y  z   nodata  _EXTRA   ex       endcase       ex noerase   0       ex   get_extra overplot  _extra   ex        noerase_orientation   1     ENDIF    ENDIF    3  je fais mon joli dessin    case n_params  OF     1:contour  x  xstyle   1  ystyle   1  _EXTRA   ex     2:contour  x  y  xstyle   1  ystyle   1  _EXTRA   ex     3:contour  x  y  z  xstyle   1  ystyle   1  _EXTRA   ex   ENDCASE   fiddle when noerase is used with c_orentation  draw the contour axis   IF keyword_set noerase_orientation   THEN BEGIN     ex noerase   1     ex overplot   0     case n_params  OF       1:contour  x  xstyle   1  ystyle   1   nodata  _EXTRA   ex       2:contour  x  y  xstyle   1  ystyle   1   nodata  _EXTRA   ex       3:contour  x  y  z  xstyle   1  ystyle   1   nodata  _EXTRA   ex     ENDCASE   ENDIF   4  End of drawing   terminedessin  _extra   ex     return end"); 
    258 a[256] = new Array("./ToBeReviewed/PLOTS/DESSINE/splot.html", "splot.pro", "", "            file_comments    Same thing that plot but compatible with the whole environnement  common pro inclued       categories graphics      INPUTS:cd IDL   plot      keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt       keyword _EXTRA   used to pass your keywords      uses   common pro      restrictions    If NOREINITPLT is not activated  all environnement    variables  p   x   y   z are reinitializtedby the procedure reinitplt      examples        IDL  splot  indgen 10 ystyle 1 small 1 2 1 portrait        IDL  splot   indgen 10 ystyle 1 small 1 2 2 noerase        IDL   ps      history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999      version    Id: splot pro 142 2006 07 21 12:47:49Z navarro             PRO splot   x  y  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  I reinitializate the graphic environment  les variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  i put the drawing on the screen like on the postcript     placedessin   autre  _extra   ex   3  Drawing    if n_elements y  EQ 0 then plot   x  xstyle   1  ystyle   1  _EXTRA   ex      ELSE plot   x  y  xstyle   1  ystyle   1  _EXTRA   ex   4  End of drawing     terminedessin  _extra ex       return end"); 
    259 a[257] = new Array("./ToBeReviewed/PLOTS/DESSINE/tvplus.html", "tvplus.pro", "", "             file_comments   Enhanced version of tvscl      categories quick exploration of 2D arrays      INPUTS:       param Z2D  in required    2D array to visualize      param CELLSIZE  in optiona    This is the size  in pixel  of the square   representing 1 array element  By default  this size is computed   automatically in order that the size of the plotting window do   not exceed the screen size  If the user specify a large value   of cellsize that forces tvplus to create a window larger than   the screen  a  scrolling window  will be displayed instead of a   regular window  Unfortunately the nice fonctionnalities of tvplus   are not coded for  scrolling window  case       keyword BOTTOM   The lowest color index of the colors to be loaded in   the bar  default is 0       keyword C_NAN   The color number that should be used for the NaN values    default value is  d n_colors  1 e6  the test to find the masked value is ge   abs mask 10  This is necessary to avoid the rounding errors      keyword MIN    Scalar used to specify the min value of the color bar  default is 0      keyword MAX   Scalar used to specify the max value of the color bar  default is  d n_colors  tvplus  dist 100       history   Sebastien Masson  smasson lodyc jussieu fr                          18 12 98   Aug 2005: quick cleaning   english      version    Id: tvplus pro 142 2006 07 21 12:47:49Z navarro             PRO tvplus  z2d  cellsize  BOTTOM   bottom  C_MASK   c_mask  C_NAN   c_nan  WINDOW   window                 MIN   min  MAX   max  MASK   mask  OFFSET   offset  NOUSEINFOS   NOUSEINFOS                 NCOLORS   ncolors  NOINTERP   nointerp  _EXTRA   ex       compile_opt idl2  strictarrsubs     IF n_elements z2d  EQ 0 THEN return   arr   reform float z2d      check the size of the input array      if  size arr 0  NE 2 then begin     ras   report Input array must have only 2 dimensions and not   strtrim size arr   n_dimensions  1      return   endif     def of ncolmax  bottom  topcol et ncolors     ncolmax    d n_colors  arr     truemin   min   ENDIF ELSE truemin   min arr    if n_elements max  NE 0 then BEGIN      arr   arr  floor x cellsize   floor y cellsize   floor x cellsize   floor y cellsize   floor x2 cellsize   floor y2 cellsize     size arr 2 cellsize 1          x     x  x2    x    x sort x          y     y  y2    y    y sort y          IF keyword_set OFFSET  THEN offset    x 0  y 0 offset ELSE offset    x 0  y 0          tvplus  z2d x 0 :x 1  y 0 :y 1    WINDOW   window  MIN   min  MAX   max                     MASK   mask  C_MASK   c_mask  C_NAN   c_nan   NOUSEINFOS  OFFSET   OFFSET                     NCOLORS   ncolors  NOINTERP   nointerp  BOTTOM   bottom  _EXTRA   ex         return       END       ELSE:     endcase   ENDWHILE      x   xenvsauve    y   yenvsauve    p   penvsauve    x range   1 0  nx cellsize 5 offset 0     y range   1 0  ny cellsize 5 offset 1      return end"); 
    260 a[258] = new Array("./ToBeReviewed/PLOTS/DIVERS/addaxe.html", "addaxe.pro", "", "             file_comments   Add an axis when we do an oblique section in pltz  pltt   or plt1d      categories   graphic      param ENDPOINTS  in required    Coordonnees of extremities of the section       param TYPE  in required    A string of two characters specifying the type of plot we do      param POSFENETRE  in required    The vector  p position corresponding to the frame position of    the drawing part of the plot       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: addaxe pro 142 2006 07 21 12:47:49Z navarro             PRO addaxe  endpoints  type  posfenetre  _EXTRA   ex     compile_opt idl2  strictarrsubs    common      IF strpos type   x  NE  1 THEN BEGIN       IF endpoints 1  EQ endpoints 3  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lonaxe          formeaxe1    lataxe          titreaxe    latitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    j index        ENDELSE       range    endpoints 1  endpoints 3        if endpoints 2  LT endpoints 0  THEN range   reverse range     ENDIF ELSE BEGIN       IF endpoints 0  EQ endpoints 2  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lataxe          formeaxe1    lonaxe          titreaxe    longitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    i index        ENDELSE       range    endpoints 0  endpoints 2        if endpoints 3  LT endpoints 1  THEN range   reverse range     ENDELSE    if type EQ  yt  then BEGIN       axis yaxis 0 ytickformat formeaxe0 color 0 ystyle   1  _EXTRA   ex       axis yaxis 1 ytickformat formeaxe1 color 0 ystyle   1 ytitle titreaxe  yrange   range  _EXTRA   ex    ENDIF ELSE BEGIN       axis xaxis 0 xtickformat formeaxe0 color 0 xstyle   1 _EXTRA   ex       axis xaxis 1 xtickformat formeaxe1 color 0 xstyle   1 xtitle titreaxe  xrange   range  _EXTRA   ex    ENDELSE       return end"); 
    261 a[259] = new Array("./ToBeReviewed/PLOTS/DIVERS/autoscale.html", "autoscale.pro", "", "             file_comments    We give a min and a max  and the procedure send back    the good contour interval and labels s value       categories    graphic      param MIN  in required    A reel number specifying above what value we want to trace a contour      param MAX  in required    A reel number specifying below what value we want to trace a contour      param CI   out    It is a reel number giving the contour interval  Use it in CONTOUR with the keyword LEVEL       restrictions   CI is a multiple of the unity in unity log of 10    It force the number of contour to be even       history   G  Roullet   aout 99  gr lodyc jussieu fr       version    Id: autoscale pro 142 2006 07 21 12:47:49Z navarro             PRO autoscale  min  max  ci      Estimation of a first CI  notice the presence of the floor  Inferior round    This CI is a multiple of the unity in unity log of 10        compile_opt idl2  strictarrsubs       ci    max min 20      ci   10 floor alog10 ci       n   0     ci0   ci       coef    2  2 5  5  10      We test differents CI  contour intervals  i e  1  2  2 5  5 and 10   until the number of contour is inferior to 30        WHILE ceil max min ci  GE 30 DO BEGIN            ci   ci0 coef n            n   n 1     ENDWHILE       min   floor min ci 2 ci 2     max   ceil max ci 2 ci 2          nlevels   round max min ci            We force the number of contour to be even       IF nlevels MOD 2 EQ 1 THEN BEGIN            nlevels   nlevels 1           max   max ci     END    END     "); 
    262 a[260] = new Array("./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html", "axis4pltz.pro", "", "             file_comments   compute the mask and the axis for a vertical section      param MASK  in required     3d mask              param GLAM  in required    2d longitude        param GPHI  in required    2d latitude      param Z  in required    1d depth      keyword XXAXIS    to get the xaxis we need to use in pltbase            keyword ZZAXIS    to get the yaxis we need to use in pltbase      keyword SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       keyword ZRATIO   When the drawing has a zoomed part  it is the size rapport between the zoomed part     hz  zoom height  and the whole drawing  ht  total height  By default  2 3      keyword _EXTRA   used to pass your keywords       Others: see pltz         history   Sebastien Masson  smasson lodyc jussieu fr                         June 24  2002      version    Id: axis4pltz pro 142 2006 07 21 12:47:49Z navarro              PRO axis4pltz  type  mask  glam  gphi  z  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF        define the mask used for this section     if mask 0  NE  1 AND  size mask 0  NE 2 then begin     if type EQ  xz  then mask   total mask  2    1       ELSE mask   total mask  1    1   endif     define xxaxis and yyaxis the axis used for this section     nx    size glam 1    CASE  size gphi 0  OF     1:ny    size gphi 1      2:ny    size gphi 2    ENDCASE   CASE  size z 0  OF     1:nz    size z 1      2:nz    size z 2    ENDCASE     if type eq  yz  then BEGIN      IF  size gphi 0  EQ 1 then xxaxis   gphi ELSE BEGIN        IF keyword_set key_irregular  THEN BEGIN          cln    where gphi EQ max gphi 0          xxaxis   reform gphi cln MOD nx          ENDIF ELSE xxaxis   reform gphi 0        ENDELSE     if keyword_set sin  then xxaxis   sin pi 180 xxaxis      if  size z 0  EQ 1 THEN zzaxis   z ELSE zzaxis   z   ENDIF ELSE BEGIN     xxaxis   glam  0      if  size z 0  EQ 1 then zzaxis   z ELSE zzaxis   z   ENDELSE      We project the z axis in  0 1      if not keyword_set zratio  then zratio   2 3   if zoom ge profmax then zratio   1    if zoom LT profmax then begin     mp   projsegment profmin  zoom   0  zratio   mp      zzaxis where zzaxis LE zoom    mp 0 zzaxis where zzaxis LE zoom mp 1      mp   projsegment zoom  profmax   zratio  1   mp      zzaxis where zzaxis GE zoom    mp 0 zzaxis where zzaxis GE zoom mp 1    ENDIF ELSE BEGIN     mp   projsegment profmin  profmax   0  1   mp      zzaxis   mp 0 zzaxis mp 1    ENDELSE    to draw from bottom to top  avoid using cell_fill    CASE size zzaxis   n_dimensions  OF     1:zzaxis   reverse zzaxis       2:zzaxis   reverse zzaxis  2     ENDCASE   if mask 0  NE  1 then mask   reverse mask  2     return end"); 
    263 a[261] = new Array("./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html", "barrecouleur.pro", "", "             file_comments   Overlayeur of colorbar      categories   utilities      restrictions pass all argument we want thanks to _extra      history   Sebastien Masson  smasson lodyc jussieu fr                          23 12 98      version    Id: barrecouleur pro 142 2006 07 21 12:47:49Z navarro        todo seb: mettre les keyword et les param         PRO barrecouleur  colnumb  clbinf  clbsup  clbdiv                       NOCOLORBAR   nocolorbar  CB_TITLE   cb_title                       NOFILL   nofill  COLOR_c   color_c                       min   min  max   max  divisions   divisions                       CB_SUBTITLE   cb_subtitle  POST   post  _extra   ex       compile_opt idl2  strictarrsubs    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     if keyword_set min  then clbinf   min   if keyword_set max  then clbsup   min   if keyword_set divisions  THEN  clbdiv   divisions   nocolorbar   keyword_set nocolorbar    keyword_set nofill                     keyword_set color_c          def_myuniquetmpdir     IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used        colorbarparam    colnumb:colnumb  clbinf:clbinf                           clbsup:clbsup  clbdiv:clbdiv     ENDIF ELSE BEGIN       save  colnumb  clbinf  clbsup  clbdiv               file   myuniquetmpdir    4colorbar dat     ENDELSE      if keyword_set nocolorbar  then return       ancienx    x    ancieny    y    ancienp    p    reinitplt     x style   1     y style   1        colorbar  cb_color   0  cb_charsize   ancienp charsize            pscolor   keyword_set post  division   clbdiv            min   clbinf  max   clbsup            cb_title   cb_title  discret   colnumb  _extra   ex       x  ancienx     y  ancieny     p  ancienp      return end"); 
    264 a[262] = new Array("./ToBeReviewed/PLOTS/DIVERS/checkfield.html", "checkfield.pro", "", "FUNCTION err_1d  type  n1  name  n2     compile_opt idl2  strictarrsubs     return  report Error in     type     type plot with a 1D input array:                         the number of elements of the input vector  strtrim n1  1                           is not equal to     name      strtrim n2  1   simple  END   FUNCTION err_2d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 2D input array:                         the array dimensions     tostr sz 1:2      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END   FUNCTION err_3d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 3D input array:                         the array dimensions     tostr sz 1:3      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END              file_comments   In input of plt  pltz  pltt and plt1d  it check that the field give    a size compatible with the domain and  if needed  average to give us    a 2d array if we make a plot of the type:  xy   xz   xt   yz   yt       zt  or a 1d array if we make a plot of the type:  x   y   z   t       categories   graphic       param FIELD  in required    A field respecting litchamp pro s criterions  See IDL xhelp litchamp       keyword BOXZOOM    Vector indicating the geographic zone on which we want to cut the map      If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword WDEPTH   to specify that the field is at W depth instad of T    depth  automatically activated if vargrid eq  W        keyword VECTEUR   It is a structure composed by 2 elements containing the 2 fields U   and V of values of the zonal and meridian component of the vector of the fields   to draw  These fields can be an array or a structure          For example: vecteur matriceu:lec unsurface matricev:lec vnsurface          Comment: name of elements of vectors are inconsenquential          vecteur u:lec unsurface v:lec vnsurface  is also appropriated       keyword _EXTRA   used to pass your keywords      keyword DIREC         uses    common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         08 02 2000      version    Id: checkfield pro 142 2006 07 21 12:47:49Z navarro        todo seb: mettre les param              FUNCTION checkfield  field  procedure  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  NOQUESTION   noquestion  VECTEUR   vecteur  WDEPTH   wdepth  _EXTRA   ex       compile_opt idl2  strictarrsubs     include commons  cm_4mesh  cm_4cal  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     I1  Reading of the field     if n_elements field  EQ 0 then return  report field undefined    arr   litchamp field    first check   IF n_elements arr  EQ 1 THEN BEGIN     if arr EQ  1 then         return  report Error: input array    1  Maybe the reading did ont perform well   simple        ELSE return  report Error: input array is a scalar   simple         ENDIF   nan   total finite arr   nan    firstzw 1        lastzw    lastzw 1    firstzt 1        lastzt    lastzt 1     jpk 1        nzt   lastzt   firstzt   1     ENDELSE      updateold   ENDIF   make the automatic definition of type for pltz if type is not specified    IF type EQ  z  AND procedure EQ  pltz  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz    make the automatic definition of type for pltt if type is not specified    IF type EQ  unkownpltt  AND procedure EQ  pltt  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt      verification of the input array size and the value of the type     grille   1   1   1   1  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz  WDEPTH   wdepth     basic checks     CASE 1 OF     nx EQ 1: IF strpos type   x  NE  1 THEN return  report Error: impossible to make a     type     type plot with nx   1    simple      ny EQ 1: IF strpos type   y  NE  1 THEN return  report Error: impossible to make a     type     type plot with ny   1    simple      nz EQ 1: IF strpos type   z  NE  1 THEN return  report Error: impossible to make a     type     type plot with nz   1    simple      jpt EQ 1: IF strpos type   t  NE  1 THEN return  report Error: impossible to make a     type     type plot with jpt   1    simple      ELSE:   ENDCASE     is the size of the array compatible with teh domain      arr   fitintobox temporary arr  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz      sz   size arr    case sz 0  of       0:return  arr       1:BEGIN       nele   n_elements arr        case type of          t :if jpt NE nele THEN return  err_1d type  nele   jpt  jpt           x :IF  nx NE nele THEN return  err_1d type  nele    nx   nx           y :IF  ny NE nele THEN return  err_1d type  nele    ny   ny           z :IF  nz NE nele THEN return  err_1d type  nele    nz   nx          ELSE:return  report Error:                                    Impossible to make a  type  plot with a 1D array   simple        ENDCASE     END        2:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    y    xy array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    z    x y z array             sz 1  EQ nx AND sz 2  EQ jpt:direc    t    xt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         end          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    x    xy array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    z     x yz array             sz 1  EQ ny AND sz 2  EQ jpt:direc    t    yt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    x    x y z array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    y     x yz array             sz 1  EQ nz AND sz 2  EQ jpt:direc    t    zt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ jpt:direc    x    xt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ jpt:direc    y     x yt array             nx EQ 1 AND ny EQ 1 AND sz 1  EQ nz AND sz 2  EQ jpt:direc    z     x y zt array             ELSE:return  err_2d type  sz  nx  ny  nz            ENDCASE         END          xy :IF sz 1  NE nx OR sz 2  ne  ny THEN return  err_2d type  sz  nx  ny  nz    xy array          xz :IF sz 1  NE nx OR sz 2  ne  nz THEN return  err_2d type  sz  nx  ny  nz    xz array          yz :IF sz 1  NE ny OR sz 2  NE  nz THEN return  err_2d type  sz  nx  ny  nz    yz array          xt :IF sz 1  NE nx OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    xt array          yt :IF sz 1  NE ny OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    yt array          zt :IF sz 1  NE nz OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    zt array       ENDCASE     END        3:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    yz    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt    x y zt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    yt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xz    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt     x yzt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xy    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yt     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xt    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xy    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yz     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xz    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xy :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    z    xyz array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    t    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    y    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t    x y zt             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          yz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    x    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t     x yzt             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          xt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    y    xyt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          yt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    x    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          zt :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    x    x y zt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    y     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             ENDCASE         END        ENDCASE      END        4:BEGIN        CASE type OF          x :direc    yzt           y :direc    xzt           z :direc    xyt           t :direc    xyz           xy :direc    zt           xz :direc    yt           yz :direc    xt           xt :direc    yz           yt :direc    xz           zt :direc    xy        ENDCASE      END   ENDCASE     IF keyword_set direc  THEN BEGIN     IF strpos direc   t  NE  1 OR strpos type   t  NE  1 THEN         arr   grossemoyenne temporary arr  direc  boxzoom   localbox                               NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex        ELSE arr   moyenne temporary arr  direc  boxzoom   localbox                            NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex    ENDIF           RETURN  arr END"); 
    265 a[263] = new Array("./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html", "checktypeminmax.pro", "", "          NAME:     PURPOSE:     CATEGORY:     CALLING SEQUENCE:      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr       todo seb         PRO checktypeminmax  procedure  TYPE   type  MIN   min  MAX   max  XY   xy                          XZ   xz  YZ   yz  XT   XT  YT   YT  ZT   zt                          TT   tt  XX   xx  YY   yy  ZZ   zz                          XINDEX   xindex  YINDEX   yindex                          ENDPOINTS   endpoints  _extra   ex       compile_opt idl2  strictarrsubs    common      case size type   type  of       0:       7:       ELSE:BEGIN          vraimin   type          case size min   type  of             0:BEGIN                 min   vraimin                type   0             END             7:BEGIN                 type   min                min   vraimin             end             ELSE:BEGIN                case size max   type  of                   0:BEGIN                      max   min                      min   vraimin                      type   0                   END                   7:BEGIN                       type   max                      max   min                      min   vraimin                   end                   ELSE:BEGIN                      rien   report Probleme dans la definition des arguments en entree de                                         procedure   chkwidget                       return                   end                endcase             end          endcase       end    endcase      if keyword_set xy  then type    xy     if keyword_set xz  then type    xz     if keyword_set yz  then type    yz     if keyword_set xt  then type    xt     if keyword_set yt  then type    yt     if keyword_set zt  then type    zt     if keyword_set tt  then type    t     if keyword_set xx  then type    x     if keyword_set yy  then type    y     if keyword_set zz  then type    z       if keyword_set type  then begin      if type EQ  plt  then type          if type EQ  pltz  then type          if type EQ  pltt  then type          if type EQ  plt1d  then type        endif     determination du type de plot que l on veut faire      if NOT keyword_set type  then BEGIN       case procedure of          plt :type    xy           pltz :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz            ENDIF ELSE type    z          END          pltt :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              lat2   max endpoints 1  endpoints 3              if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt            ENDIF ELSE type    unkownpltt          END          plt1d :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    x  else type    y            ENDIF ELSE BEGIN             type                 WHILE type NE  x  AND type NE  y  AND type NE  z  DO BEGIN               type   xquestion Quel type de plot 1D voulez vous faire  x y z ou t                                       chkwidget                type   strlowcase type              endwhile           ENDELSE         END       endcase     ENDIF      WHILE type NE  xy  AND type NE  xz  AND type NE  yz          AND type NE  xt  AND type NE  yt  AND type NE  zt          AND type NE  t  AND type NE  x  AND type NE  y          AND type NE  z  AND type NE  unkownpltt  DO BEGIN       type   xquestion What kind of plot do you want to do  xy xz yz xt yt zt t x y z                                 chkwidget        type   strlowcase type      ENDWHILE               return   end"); 
    266 a[264] = new Array("./ToBeReviewed/PLOTS/DIVERS/determineminmax.html", "determineminmax.pro", "", "             file_comments   Determine the min and the max of a mask array      categories    Lightening of the writting of plt  pltz and pltt      param TAB  in required    The array whose we determine the min and the max      param MASK  in required    The mask array       keyword MININ    It is a scalar which  if it is not defined  take the value of VRAIMIN      keyword MAXIN    It is a scalar which  if it is not defined  take the value of VRAIMAX      keyword ZEROMIDDLE    Force the middle of the colorbar to be equal   to 0  force max max abs min max  and min max        keyword _EXTRA   used to pass your keywords      keyword USETRI   To force using triangulation        param VRAIMIN  out    The min of the array      param VRAIMAX  out    The max of the array      uses   Common pro      restrictions   Look if the field is constant on the sea      history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98      version    Id: determineminmax pro 142 2006 07 21 12:47:49Z navarro        todo seb: manque les param glam et gphi           PRO determineminmax  tab  mask  vraimin  vraimax  glam  gphi  MAXIN   maxin  MININ   minin  INTERVALLE   intervalle  usetri   usetri  ZEROMIDDLE   zeromiddle  _extra   ex     compile_opt idl2  strictarrsubs    common       Type o fthe vertical grid:   if vargrid EQ  W  then nz   nzw ELSE nz   nzt   liste des points mer   if  size mask 0  EQ 3 then mer   mask    0      ELSE mer   mask   If key_irregular eq 1  we mask also points which are not in the geographic    domain defined by lon1 lon2 lat1 lat2   if keyword_set key_irregular  AND n_elements glam  NE 0 AND n_elements gphi  NE 0 then begin     dom     where glam LT lon1 OR glam GT lon2 OR gphi LT lat1 OR gphi GT lat2      if dom 0  NE  1 then mer dom    0   endif     mer   where mer eq 1      if mer 0  eq  1 then begin     ras   report Il n y a que de la terre sur le dessin      vraimax   0     vraimin   0     maxin   vraimax 1     minin   vraimin 1     usetri   0     return   endif   ma and mi : max and min on ocean points   vraimax   max tab mer  min   vraimin  _extra   ex    sameminmax   testvar var   minin  EQ testvar var   maxin     if n_elements maxin  EQ 0 OR sameminmax then maxin   vraimax   if n_elements minin  EQ 0 OR sameminmax then BEGIN      if keyword_set intervalle  then minin   floor vraimin intervalle intervalle       ELSE minin   vraimin   endif   if vraimin eq vraimax then BEGIN     IF size vraimin   type  EQ 1 THEN vraimin   fix vraimin      question    Warning: constant filed  same value everywhere :     strtrim vraimin  2     Shall we make the plot      answer   report question   default_no   question      if answer then begin       maxin   vraimax 1       minin   vraimin 1     endif ELSE tab    1   ENDIF   IF keyword_set zeromiddle  THEN BEGIN       maxin   max abs minin  maxin        minin    maxin   ENDIF     return end"); 
    267 a[265] = new Array("./ToBeReviewed/PLOTS/DIVERS/givewindowsize.html", "givewindowsize.pro", "", "       todo seb       FUNCTION givewindowsize       include commons     compile_opt idl2  strictarrsubs    cm_4ps IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew ENDIF        dimensions   get_screen_size RESOLUTION resolution     coef   floor 1 resolution 0     if NOT keyword_set windowsize_scale  then BEGIN      windowsize_scale   1       IF NOT keyword_set key_forgetold  THEN BEGIN       updateold      ENDIF     ENDIF     coef   windowsize_scale   coef       mipgsz   min page_size  max   mapgsz        xsize   coef    mipgsz key_portrait   mapgsz 1 key_portrait      ysize   coef    mipgsz 1 key_portrait    mapgsz key_portrait       return   xsize  ysize  end"); 
    268 a[266] = new Array("./ToBeReviewed/PLOTS/DIVERS/meridienparallele.html", "meridienparallele.pro", "", "             file_comments   Trace some meridians or parallel      categories   graphic      param COUPE The type of drawing we treat      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98      version    Id: meridienparallele pro 142 2006 07 21 12:47:49Z navarro             PRO meridienparallele  coupe     compile_opt idl2  strictarrsubs    common      case coupe of        xy :BEGIN           if lon1 lt 180 and lon2 gt 180 then             plot   180 180 lat1 lat2 noerase color 0          if lon1 lt 0 and lon2 gt 0 then             plot   0 0 lat1 lat2 noerase color 0          if lon1 lt 360 and lon2 gt 360 then             plot   360 360 lat1 lat2 noerase color 0          if lat1 lt 0 and lat2 gt 0 then             plot   lon1 lon2 0 0 noerase color 0       END     endcase     return end"); 
    269 a[267] = new Array("./ToBeReviewed/PLOTS/DIVERS/placecolor.html", "placecolor.pro", "", "             file_comments   allows to trace the independently from a graph   By default  trace a color bar of the same type tahn the one present in plt   and pltz  If max  min and divisions are not stipulated  then max sup min inf   and divisions div       categories   graphic      param POS   Vecteur composed by 4 elements giving coordinates of the left bottom    corner and of the right up one  in cm  in which we want to do the color bar      keyword _extra   used to pass your keywords      uses   common pro      restrictions   Only usable for POSTCRIPTs effectuated with plein2dessin      history   Sebastien Masson  smasson lodyc jussieu fr   7 5 98      version    Id: placecolor pro 142 2006 07 21 12:47:49Z navarro             pro placecolor  pos  _extra   ex     include commons     compile_opt idl2  strictarrsubs    cm_4ps    IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew    ENDIF        xsave    x    ysave    y    psave    p      reinitplt   z   invert    pos 1 pos    mipgsz   min page_size  max   mapgsz     if key_portrait eq 1 then begin       pos 0 pos 0 mipgsz         pos 1 pos 1 mapgsz           pos 2 pos 2 mipgsz        pos 3 pos 3 mapgsz        endif else begin       pos 0 pos 0 mapgsz           pos 1 pos 1 mipgsz           pos 2 pos 2 mapgsz           pos 3 pos 3 mipgsz        ENDELSE      def_myuniquetmpdir      IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used         colnumb   colorbarparam colnumb       clbinf   colorbarparam clbinf        clbsup   colorbarparam clbsup       clbdiv   colorbarparam clbdiv      ENDIF ELSE BEGIN       file   myuniquetmpdir    4colorbar dat        IF file_test file  THEN BEGIN          restore  file                  if size ex   type  EQ 8 then BEGIN              if  where tag_names ex  EQ  MIN 0  NE  1 then clbinf   ex MIN             if  where tag_names ex  EQ  MAX 0  NE  1 then clbsup   ex MAX             if  where tag_names ex  EQ  DIVISIONS 0  NE  1 then clbdiv   ex DIVISIONS          ENDIF            COLORBAR  COLOR   0  DIVISIONS   clbdiv  DISCRET   colnumb               cb_color   0  POSITION   pos  MAX   clbsup               MIN   clbinf  cb_charsize    p charsize               _extra   ex       ENDIF    ENDELSE       x   xsave     y   ysave     p   psave      return end"); 
    270 a[268] = new Array("./ToBeReviewed/PLOTS/DIVERS/placedessin.html", "placedessin.pro", "", "             file_comments    Putting into place of the drawing  opening of the window or of the PS      categories    Utilities      param TYPEDESSIN   It is a chain or characteres specifying what procedure is called by PLACEDESSIN:  plt   pltz  or  pltt       keyword LANDSCAPE    Force the page or the window on the screen to be in lenthened position       keyword LCT    Is an integer designating the number of the palette of color we want to use for the plot        keyword MAP    We use it when we want to do a projection    This keyword can be of two types:       MAP P0lat P0lon Rot  For the descrption of these 3 values  see the online help of MAP_SET         MAP: In this case  map is automatically caculated have the value:             map    0   lon1 lon2 2  0    Comment: A good way to choose the type of the projection we want to do is to have a look at IDL demo:   IDL  demo   Then choose earth sciences and  mapping    Comment2: By default it  is a cindrical projection which is effectuated  with or without the keyword map     If we want an other projection  MAP must be activated and we have to add the keyword:  nom_projection    For example  for a polar projection centered on the south pole:   IDL  domdef 180 180 90 45   IDL  plt  tab   stereo map 90 0 0       keyword NOCOLORBAR    We active it if we do not want the colorbar      keyword NOFILL    We active it if we only want contours in black and white with a white background       keyword NOERASE    We active it to make a drawing without creating a new frame       keyword SMALL    Vector composed of 3 or 4 elements  applyed to make a drawing on a    small portion of a page or screen  It delimit the zone where the drawing will be done        If there is 4 elements:   then is constituated of coordinates  expressed in cm located from the up and    left corner of the page or the window  in portrait like in lanscape  of the bottom    and left corner and of the up and right corner of the drawing zone        If there is 3 elements:   in this case  we divide the page or the screen in small 0  columns and in small 1  lines    the drawing made in the box numbered small 2  The numerotation starting up and left by    the number 1 and then  following the writing direction    By default  we make the largest drawing we can do  conserving the aspect rapport     exept when REMPLI is activated        keyword PORTRAIT    Force the page or the window to be in standing position       keyword POST    Make a postscript  Only works if we made one drawing on the page    If we make several drawing  use  ps       keyword REMPLI    Force the drawing to occupy the whole space defined by small       keyword WINDOW   Number of the window on which we want to do the graph  Allow to open several windows     By default  we open  IDL0       keyword CB_TITLE    The colorbar s title      keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        keyword VECTEUR   It is a structure composed by 2 elements containing the 2 fields U   and V of values of the zonal and meridian component of the vector of the fields   to draw  These fields can be an array or a structure          For example: vecteur matriceu:lec unsurface matricev:lec vnsurface          Comment: name of elements of vectors are inconsenquential          vecteur u:lec unsurface v:lec vnsurface  is also appropriated       keyword DIREC    t   x   y   z   xys   xz   yz   xyz   xt   yt   zt   xyt           xzt   yzt   xyzt  Direction on which do averages       keyword _EXTRA   Used to pass your keywords       keyword COLOR_C    To draw the contour in color instead of in black   with filling in color       param POSFENETRE  out    It is a vector composed by 4 elements containing the position of the frame    containing captions and the graph in normalized coorinates     Comment: To position the drawing  we have to do  p position posfenetre    after the call of the caliber      param POSBAR  out    Like POSFENETRE but for the color bar     Same comment to position the color bar   p position posbar      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          26 4 1999      version    Id: placedessin pro 142 2006 07 21 12:47:49Z navarro             PRO placedessin  typedessin  posfenetre  posbar  BARMARGES   barmarges                      NOCOLORBAR   nocolorbar  NOFILL   nofill  COLOR_c   color_c                      CONTOUR   contour                      VECTEUR   vecteur  PORTRAIT   portrait  LANDSCAPE   landscape                      SMALL   small  MARGES   marges  MAP   map                      REMPLI   REMPLI  POST   post  WINDOW   window                      ENDPOINTS   endpoints  TYPE   type  BASICMARGES   basicmarges                      NOERASE   noerase  LCT   lct  DIREC   direc  CB_TITLE   cb_title  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4ps  cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     1  Determination of the size of margins  unity number of lines or columns    to the left  to the right  up and down    BEWARE in margebar  the last element is the right up corner    instead of the up margin     if n_elements typedessin  EQ 0 then typedessin    autre    if keyword_set basicmarges  then begin     marge   1 6  2  4  3      if keyword_set marges  THEN marge   marge marges     margebar   1 marge 0 1  marge 1 1   marge 2 8   marge 2 6      if keyword_set barmarges  then margebar   margebar barmarges   ENDIF ELSE BEGIN      nocolorbar   keyword_set nocolorbar    keyword_set nofill    keyword_set color_c        case typedessin of        plt :marge   1 6  2  4  3         pltt :marge   1 6 4 type EQ  xt  2  4  4         pltz :marge   1 6  2  4  3        else:marge   1 6  2  4  3      ENDCASE     if keyword_set marges  THEN marge   marge marges     if NOT keyword_set barmarges  then barmarges   replicate 0  4      barmarges 3     barmarges 3      margebar   1 marge 0 1  marge 1 1  2  4 barmarges     marge   marge 0  0  4  0 keyword_set cb_title      IF keyword_set direc  THEN         marge   marge 0  0  2  0 strlowcase direc  NE  t      marge   marge 0  0  2  0 keyword_set contour      marge   marge 0  0  2  0 keyword_set vecteur      if n_elements lon1  NE 0 and n_elements lon2  NE 0         and n_elements lat1  NE 0 and n_elements lat2  NE 0 then begin       if keyword_set type  then           marge   marge 0  3 type EQ  yt  AND lon1 NE lon2  0                            2 type NE  yt  AND lat1 NE lat2 keyword_set endpoints          ELSE marge   marge 0  0  0  2 lat1 NE lat2 keyword_set endpoints      endif     marge   marge 0  0  2 margebar 3  0 1 keyword_set nocolorbar    ENDELSE     Portrait or landscape     IF NOT keyword_set noerase  THEN BEGIN      CASE 1 OF       n_elements portrait  NE 0:key_portrait   portrait       n_elements landscape  NE 0:key_portrait   1 landscape       ELSE:     ENDCASE   ENDIF      What type of aspect rapport  it will be crushed if YXASPECT exist      case typedessin of      plt :yaspect   1 lat2 lat1 lon2 lon1       pltt :yaspect   1       pltz :yaspect    5     ELSE:yaspect   1    endcase     2  calculation of  p position   see calibre pro        IF NOT keyword_set small  then small    1  1  1      if keyword_set map  then rempli   1     calibre  yaspect  marge  margebar  small  posfenetre  posbar  REMPLI   rempli  _extra   ex      p position   posfenetre     3  opening of the graphic window or of the postscript     case 1 of   case of the first drawing on a postcript     keyword_set post  AND  d name ne  PS :openps  _extra   ex   case of the first drawing on a screen     keyword_set post  EQ 0 AND keyword_set noerase  EQ 0         AND  d name ne  PS  AND  d name ne  Z :BEGIN       if not keyword_set window  then window   0   For the using of  ps oups et de  vzoom       if lmgr demo  EQ 0 then BEGIN   Are we in the demo mode          if  journal NE 0 then journal   We close te journal if it is open         homedir   isadirectory io   homedir  title    Bad definition of homedir          def_myuniquetmpdir         journal  myuniquetmpdir idlsave pro    We open a new one         help   recall_commands  output   listecommande   We recuperate the last command         listecommande   strmid strcompress listecommande 1  2          journal  listecommande   We write it in the journal       ENDIF       windsize   givewindowsize        window  window  xsize   windsize 0  ysize   windsize 1   retain   2  _extra   ex   When we used colors which are coded on 24bit  we can not stipulate the background color    of a window thanks to  p background  so we have to to this:            if  d n_colors gt 256 then begin               device  decomposed 1                p background ffffff x               plot 0 0   nodata  xstyle   4  ystyle   4               device  decomposed 0            endif     END     ELSE:   endcase     if n_elements lct  NE 0 then lct  lct  _extra   ex      return end"); 
    271 a[269] = new Array("./ToBeReviewed/PLOTS/DIVERS/projsegment.html", "projsegment.pro", "", "             file_comments   project linearly a segment  a vector whose boundaries are  a b  on    a vector whose boundaries are  c d       categories   calculation      param VECTEUR   A vector whose the first element must be the smallest one and the last must be the biggest one       param BORNES    New boundaries of the vector       keyword MP   Activate this keyword to the function send back this a vector of 2    elements which are the m and p of the linear projection y mx p used    to pass from the  a b  segment to the  c d  segment       returns    A vector whose new boudaries are specified by BORNES       examples          IDL  a indgen 9       IDL  print  a             0       1       2       3       4       5       6       7       8     IDL  print  projsegment a 0 80              0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 0 80               0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 80 0               80      70      60      50      40      30      20      10      0      history   Sebastien Masson  smasson lodyc jussieu fr                          24 6 1999      version    Id: projsegment pro 142 2006 07 21 12:47:49Z navarro             FUNCTION projsegment  vecteur  bornes  MP   mp       compile_opt idl2  strictarrsubs      a1   float vecteur 0     b1   float vecteur n_elements vecteur 1     a2   float bornes 0     b2  float  bornes 1     if a1 EQ b1 then return   1    m    b2 a2 b1 a1     p   a2 m a1      if keyword_set mp  then return   m  p  ELSE return  m vecteur p   end"); 
    272 a[270] = new Array("./ToBeReviewed/PLOTS/DIVERS/restoreatt.html", "restoreatt.pro", "", "             file_comments   Allows to reattribuate global variables associated with a field    when we give a stucture created by saveatt pro by example       categories    Utilities      param STRUCT  in required    a structure like the one who read litchamp            See IDL  xhelp litchamp       uses   common pro      restrictions   Change the value if global variables attribute of a field: vargrid     varname  varunit  vardate  varexp   valmask and time       history   Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999      version    Id: restoreatt pro 142 2006 07 21 12:47:49Z navarro             PRO restoreatt  struct     compile_opt idl2  strictarrsubs    common      nomelements   tag_names struct     for i   0  n_tags struct 1 do begin       case strlowcase strmid nomelements i  0  1  of           g :vargrid   strupcase struct i            n :varname   struct i            u :varunit   struct i            e :varexp   struct i            m :valmask   struct i            d :BEGIN              if size struct i type  EQ 7 THEN BEGIN                 vardate   struct i              ENDIF ELSE BEGIN                vardate     time series                 time   struct i              ENDELSE          end          ELSE:BEGIN              ras   report Le nom  nomelements i  ne correspont a aucun element reconnu de la structure   C cf  IDL  xhelp   litchamp           end       endcase    endfor      return end"); 
    273 a[271] = new Array("./ToBeReviewed/PLOTS/DIVERS/rotation.html", "rotation.pro", "", "       file_comments   Rotate two vectors by a specified amount           param X  in required    orignal data point pairs      param Y  in required    orignal data point pairs                 param DEG  in required    degrees to rotate           param NX  out    rotated point pairs        param NY  out    rotated point pairs           history   Jeff Bennett  U of Colorado      version    Id: rotation pro 142 2006 07 21 12:47:49Z navarro        PRO ROTATION X Y DEG NX NY     compile_opt idl2  strictarrsubs   ang deg dtor   convert to polar coordinates for rotation r   sqrt x x   y y  theta   r 0   get angle in for loop so that zero radii will be left as zero angle for i   0 n_elements r 1 do   if r i  ne 0 then theta i    atan y i x i    range from  pi to  pi    add rotation angle theta   theta   ang    convert back to rectangular coordinates  now rotated nx   r   cos theta  ny   r   sin theta    return end"); 
    274 a[272] = new Array("./ToBeReviewed/PLOTS/DIVERS/saveatt.html", "saveatt.pro", "", "             file_comments   Allows to put in a structure attributes which can be associated with a variable       categories   utilities      returns    A structure of the form:            n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask l:niveau       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999      version    Id: saveatt pro 142 2006 07 21 12:47:49Z navarro             FUNCTION saveatt     compile_opt idl2  strictarrsubs    common    return   n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask  end"); 
    275 a[273] = new Array("./ToBeReviewed/PLOTS/DIVERS/terminedessin.html", "terminedessin.pro", "", "             file_comments   End the drawing if needed when it is a postscript       categories   utilities  graphic      keyword POST    Make a postscript  Only works if we made one drawing on the page    If we make several drawing  use  ps       keyword SMALL    Vector composed of 3 or 4 elements  applyed to make a drawing on a    small portion of a page or screen  It delimit the zone where the drawing will be done        If there is 4 elements:   then is constituated of coordinates  expressed in cm located from the up and    left corner of the page or the window  in portrait like in lanscape  of the bottom    and left corner and of the up and right corner of the drawing zone        If there is 3 elements:   in this case  we divide the page or the screen in small 0  columns and in small 1  lines    the drawing made in the box numbered small 2  The numerotation starting up and left by    the number 1 and then  following the writing direction    By default  we make the largest drawing we can do  conserving the aspect rapport     exept when REMPLI is activated       keyword _EXTRA    Used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          3 6 1999      version    Id: terminedessin pro 142 2006 07 21 12:47:49Z navarro             PRO terminedessin  POST   post  SMALL   small  _extra   ex       compile_opt idl2  strictarrsubs    cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      if keyword_set post  then BEGIN       if keyword_set small  then         if total small  NE            page_margins 2 page_margins 0 total page_size              page_margins 1 page_margins 3  then return       closeps       printps    endif    return end"); 
    276 a[274] = new Array("./ToBeReviewed/PLOTS/LABEL/label.html", "label.pro", "", "             file_comments   Allows to choose the type of the label we want to use at the time of a contour       categories   graphic      param CAS  in required    Number of the type of the label we want to trace      param MIN  in required     Smallest value for the drawing of the contour       param MAX  in required    Biggest value for the drawing of the contour       keyword INTERVALLE   Value of an interval betwenn two isolines  By default  it is calculated to    draw 20 isolines  In all cases  this keyword must be returnedt have a nice   caption  If levels do not contain regular intervals  put it at  1       keyword NLEVEL   Number of contour to be drawn  By default  20  Active if LABEL 0 or is not specified       param NCONTOUR  out    Number of contour to be drawn        param LEVEL_Z2D  out    Vector containing values of contours we draw       param COLNUMB  out    Vector containing the number of colors which will serve to fill contours       uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr   7 5 98      version     Id: label pro 142 2006 07 21 12:47:49Z navarro             pro label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel              INTERVALLE intervalle  STRICTFILL   strictfill     compile_opt idl2  strictarrsubs    common    if  d name EQ  PS  OR  d name EQ  Z  then BEGIN       old_dname    d name       thisOS    VERSION OS_FAMILY       thisOS   STRMID thisOS  0  3        thisOS   STRUPCASE thisOS        CASE thisOS of           MAC : SET_PLOT  thisOS           WIN : SET_PLOT  thisOS          ELSE: SET_PLOT   X        ENDCASE        p BACKGROUND d n_colors 1   ncontour          level_z2d    min    max min findgen Ncontour Ncontour           colnumb      ncoul findgen Ncontour Ncontour ncoul 2 ncontour           intervalle   level_z2d 1 level_z2d 0        end       1: begin   a certain number of label from the min to the nearest possible to the   max with a constant step by interval          ncontour    fix max min intervalle           ncontour   1   ncontour          level_z2d   min   intervalle findgen Ncontour            colnumb     ncoul findgen Ncontour Ncontour ncoul 2 ncontour           max level_z2d Ncontour 1 intervalle       end   label to do same sss than dessier        2: begin          lct  63  file    palette tbl           level_z2d     20  25  30  31  32  33  33 5  34 25 findgen 16           ncontour 23          colnumb      findgen 23 1          masx   37 75          intervalle    1          return       end       3: begin   Readinf of intervals   palette in the file GMT           label_gmt  min  max  intervalle  ncoul  ncontour  level_z2d  colnumb        end       else: begin          ras   report Le numero de label demande n existe pas        end    ENDCASE    if keyword_set strictfill  then begin       ncontour   ncontour 1       level_z2d    level_z2d  max        colnumb    colnumb  ncoul 1     endif    return end"); 
    277 a[275] = new Array("./ToBeReviewed/PLOTS/LABEL/label_date.html", "label_date.pro", "", "    Copyright  c  1993 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited          file_comments   This function labels axes with dates and times       categories   Plotting       param AXIS  in required       param INDEX  in required       param X  in required       keyword DATE_FORMAT   a format string which may contain the following:    M for month  3 character abbr     N for month  2 digit abbr     D for day of month     Y for 4 digit year     Z for last two digits of year     For time:    H for Hours  2 digits     I for mInutes  2 digits     S for Seconds  2 digits      is      Other characters are passed directly thru    For example   M  D   Y  prints DEC 11  1993    M  2Y  yields DEC 93    D M  yields 11 DEC    D N Y  yields 11 12 1993    M C Y  yields DEC on the top line  1993 on   the bottom  C is the new line graphic command       keyword MONTHS   The names of the months  a twelve element string array    If omitted  use Jan  Feb    Dec       keyword OFFSET   An optional starting offset of the plot    Unfortunately  single precision floating point is not accurate   enough to properly represent Julian times   This offset  which   may be double precision  contains an offset that is added to   all x values  before conversion to Julian date and time       uses   LABEL_DATE_COM       restrictions   Only one date axis may be simultaneously active       examples   For example  to plot from Jan 1  1993  to July 12  1994:   Start_date   julday 1  1  1993    End_date   julday 7  12  1994    Dummy   LABEL_DATE DATE_FORMAT N D    Simple mm dd   x   findgen end_date 1   start_date    start_date  Time axis   PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1    Plot with X axis style set to exact      Example with times:  For example  to plot from 3PM  Jan 1  1993  to 5AM  Jan 3   1993:  Start_date   Julday 1 1 1993     Also starting offset  Start_time    3 12 24           Starting_time less offset  End_time    Julday 1 3 1993    Start_date    5 24   Ending          date time   offset  note that the order of operations is                   important to avoid loss of precision   Dummy   LABEL_DATE DATE_FORMAT D  M C H: I     offset Start_date         MMM NN  HH:MM format  x   findgen 20     End_time   Start_time    19   start_time  Time axis  PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1      history  DMS  RSI April  1993 Written   DMS  RSI March  1997 Added Time format      Copyright  c  1993 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited       version    Id: label_date pro 142 2006 07 21 12:47:49Z navarro         FUNCTION LABEL_DATE  axis  index  x  DATE_FORMAT   format  MONTHS   months                  OFFSET  offs  _EXTRA   ex     compile_opt idl2  strictarrsubs   COMMON label_date_com  fmt  month_chr  offset  if keyword_set format  then begin  Save format string      if n_elements offs  ne 0 then offset   double offs  else offset   0 0d0     if keyword_set months  then month_chr   months       else month_chr    Jan Feb Mar   Apr   May   Jun   Jul                           Aug   Sep   Oct   Nov   Dec      fmt   format     return  0 endif  if n_elements month_chr  ne 12 or n_elements fmt  le 0     or n_elements offset  eq 0 then     message  Not initialized   x1   x   offset caldat  long x1  month  day  year  _EXTRA   ex Get the calendar date from julian frac   x1   long x1              time of day  from 0 to 1   n   strlen fmt  out      for i 0  n 1 do begin            Each format character      c   strmid fmt  i  1         The character      if c eq   then begin         i   i   1         c   strmid fmt  i  1     The function         case c of format character               M  : out   out   month_chr month 1               N  : out   out   string format i2 2  month               D  : out   out   string format i2 2  day               Y  : out   out   string format i4  year               Z  : out   out   string format i2 2  year  mod 100               H  : out   out   string format i2 2  floor 24 frac               I  : out   out   string format i2 2  floor 1440   frac mod 60               S  : out   out   string format i2 2  86400L   frac mod 60                : out   out                 else : message   Illegal character in date format string:  fmt         endcase     endif else out   out   c endfor return  out end"); 
    278 a[276] = new Array("./ToBeReviewed/PLOTS/LABEL/label_gmt.html", "label_gmt.pro", "", "    Apply GMT palette into IDL color intervals system   PRO label_gmt  min  max  intervalle  ncoul  ncontour  level_z2d  coul     compile_opt idl2  strictarrsubs    common  com_eg     IF pal_type NE  2dom  THEN BEGIN      color defined in lec_pal_gmt pro        ncontour   ncont_gmt       level_z2d   levels_gmt       coul   coul_gmt       max   max_gmt       intervalle     1     ENDIF ELSE BEGIN           grey_shade palette  case 1 in label        IF finite min  EQ 0 THEN read    Grey shade needs a min max :  min  max       ncontour    fix max min intervalle        level_z2d   min   intervalle findgen Ncontour         max level_z2d Ncontour 1 intervalle        print        Number of contour intervals  plotting min   max   ncontour  min  max       print               color index        IF idx_pal EQ 0 THEN BEGIN              build palette          red   lonarr 99           red    255          red 50:98    long 100 float grey_shade 100 255            IF field origin EQ  diff  THEN BEGIN                      difference plot : lighter below first negative interval             red 51:98    long 100 float grey_shade_2 100 255              red 1:48    long 100 float grey_shade 100 255              red 50    255           ENDIF              first color black            last   white          red    0  red           red 99    255            gray scale          green   red          blue   red           tvlct  red  green  blue        ENDIF           mid_index   max where level_z2d LE fldatt mid        coul   findgen Ncontour 49 mid_index  2     ENDELSE    END "); 
    279 a[277] = new Array("./ToBeReviewed/PLOTS/LABEL/lataxe.html", "lataxe.pro", "", "             file_comments   function called by  XYZ TICKFORMAT  see the help to see how to use it  to label axes in latitude       categories   graphic       param AXIS    It is the axis number: 0 for X axis  1 for Y axis  2 for Z axis       param INDEX   It is the tick mark index which starts at 0       param VALUE   It is the default tick mark value  a floating point number       returns   A string  used automatically to label      history   Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format of labels      version    Id: lataxe pro 142 2006 07 21 12:47:49Z navarro             FUNCTION lataxe  axis  index  value     We put back value in the segment  0 180      compile_opt idl2  strictarrsubs      lat value mod 360    if lat lt 0 then lat lat 360    if lat gt 180 then lat lat 180   format of labels:    case 1 of       lat EQ round lat :fmt    i4        10 lat EQ round 10 lat :fmt    f6 1        ELSE:fmt    f7 2     endcase   we write the label    if lat le 90 and lat ne 0 then nom string lat      format fmt N     if lat gt 90              then nom string 180 lat  format fmt S     if lat eq  0              then nom string lat      format fmt       return  nom end "); 
    280 a[278] = new Array("./ToBeReviewed/PLOTS/LABEL/lonaxe.html", "lonaxe.pro", "", "             file_comments   function called by  XYZ TICKFORMAT  see the help to see how to use it  to label axes in longitude       categories   graphic       param AXIS    It is the axis number: 0 for X axis  1 for Y axis  2 for Z axis       param INDEX   It is the tick mark index which starts at 0       param VALUE   It is the default tick mark value  a floating point number       returns   A string  used automatically to label      history   Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format of labels      version    Id: lonaxe pro 142 2006 07 21 12:47:49Z navarro             FUNCTION lonaxe  axis  index  value     We put back value in the segment  0 360      compile_opt idl2  strictarrsubs      lon value mod 360    if lon lt 0 then lon lon 360   format of labels:    case 1 of       lon EQ round lon :fmt    i4        10 lon EQ round 10 lon :fmt    f6 1        ELSE:fmt    f7 2     endcase   we write the label    if lon lt 180 then nom string lon      format fmt E     if lon gt 180 then nom string 360 lon  format fmt W     if lon eq 180 then nom string lon      format fmt       return  nom end "); 
    281 a[279] = new Array("./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html", "ajoutvect.pro", "", "             file_comments   Overprint vectors in a field traced by plt       categories   graphic      param VECTEUR  in required    It is a structure with 2 elements containing we 2 matrixes U and V of    values of the zonal and meridian component of the fiel of vectors to    be traced         For ex:         vecteur matriceu:lec unsurface matricev:lec vnsurface          rq:the name of elements of  vector does not have any importance          vecteur u:lec unsurface v:lec vnsurface  goes well too       keyword UNVECTSUR   It is a scalar n or an array with 2 elements  n1 n2    In the first case  we will trace a vector on n following x and y    In the second case  we will trace a vector on n1 following x and a    vector n2 following n2     Comments: To trace all vectors following y and one vector on two    following x  put unvectsur 2 1       keyword VECTMIN  in required    Minimum norme of vectors to be traced       keyword VECTMAX  in required    Maximum norme of vectors to be traced       keyword _EXTRA   Used to pass your keywords       uses   common pro       history   Sebastien Masson  smasson lodyc jussieu fr   10 3 1999                         11 6 1999 compatibilite avec NAN et la lecture                         des structures       version    Id: ajoutvect pro 142 2006 07 21 12:47:49Z navarro               pro ajoutvect vecteur  vectlegende  UNVECTSUR unvectsur VECTMIN vectmin  VECTMAX vectmax  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            For key_performance        u   litchamp vecteur 0     u   checkfield u   plt  TYPE    xy   NOQUESTION     v   litchamp vecteur 1     v   checkfield v   plt  TYPE    xy   NOQUESTION        We recuperate possible informations on fields      grilleu   litchamp vecteur 0   grid     if grilleu EQ   then grilleu    U     grillev   litchamp vecteur 1   grid     if grillev EQ   then grillev    V      IF grilleu EQ  V  AND grillev EQ  U  THEN inverse   1    IF grilleu EQ grillev THEN interpolle    0 ELSE interpolle   1    if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     We find common points between u and v      if interpolle then begin       indicexu    lindgen jpi firstxu:firstxu nxu 1        indicexv    lindgen jpi firstxv:firstxv nxv 1        indicex   inter indicexu  indicexv        indiceyu    lindgen jpj firstyu:firstyu nyu 1        indiceyv    lindgen jpj firstyv:firstyv nyv 1        indicey   inter indiceyu  indiceyv        nx   n_elements indicex         ny   n_elements indicey        indice2d   lindgen jpi  jpj        indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction of u and v on the appropriated domain         case 1 of           size u 0  NE 2 OR  size v 0  NE 2: return           size u 1  EQ nxu AND  size u 2  EQ nyu AND              size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN              if nxu NE nx then                if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                 IF nxv NE nx THEN                if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                IF nyu NE ny THEN                if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny               IF nyv NE ny THEN                if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny           END           size u 1  EQ jpi AND  size u 2  EQ jpj AND              size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN              u   u indice2d              v   v indice2d           END          ELSE:BEGIN              ras   report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs              return          end       endcase     We reshape u and v to make sure that none dimension has been erased          if ny EQ 1 then begin          u   reform u  nx  ny           v   reform v  nx  ny        endif     construction of u and v at points T         a u 0        u u shift u 1 0 2        if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a       a v 0        v v shift v 0 1 2        if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution of the mask and of longitude and latitude arrays    We recuperate the complete grid to establish a big mask extensive    in the four directions to cover points for which a land point has    been considerated  do a small drawing          vargrid T        msku    umask indice2d jpi jpj firstzt        mskv    vmask indice2d jpi jpj firstzt        glam   glamt indice2d        gphi   gphit indice2d        if ny EQ 1 then begin          msku   reform msku  nx  ny           mskv   reform mskv  nx  ny             glam   reform glam  nx  ny             gphi   reform gphi  nx  ny        endif     We mask u and v et v the long of coasts  the place where we    can not calculate the average       extention of the mask       u   u msku shift msku 1 0        v   v mskv shift mskv 0 1     ENDIF ELSE BEGIN        u   u tmask firstxt:lastxt firstyt:lastyt firstzt        v   v tmask firstxt:lastxt firstyt:lastyt firstzt        indice2d   lindgen jpi  jpj        indice2d   indice2d firstxt:lastxt  firstyt:lastyt        nx   nxt       ny   nyt    endelse    tabnorme sqrt u 2 v 2     nan   where finite u   nan  EQ 1     if nan 0  NE  1 then u nan    1e5    nan   where finite v   nan  EQ 1     if nan 0  NE  1 then v nan    1e5    if keyword_set vectmin  then BEGIN        toosmall where tabnorme lt vectmin        if toosmall 0  NE  1 then begin          u toosmall    1e5          v toosmall    1e5       ENDIF    endif    if keyword_set vectmax  then BEGIN       toobig where tabnorme gt vectmax        if toobig 0  NE  1 then begin          u toobig    1e5          v toobig    1e5       ENDIF    ENDIF     Put back of a big value on all points for which we can do the calculation       if interpolle then t2   msku shift msku 1 0 mskv shift mskv 0 1       ELSE t2   tmask firstxt:lastxt firstyt:lastyt firstzt     if NOT keyword_set key_periodic  OR nx NE jpi then t2 0   0     t2 0 0     terre where t2 eq 0     if terre 0  ne  1 then begin       u terre 1e5       v terre 1e5    ENDIF     trace only one vector one two      if keyword_set unvectsur  then BEGIN     indx is a vector containing number of columns to be selected    indy is a vector containing number of lines to be selected        if n_elements unvectsur  EQ 1 then begin          indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 0  eq 0        ENDIF ELSE BEGIN           indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 1  eq 0       ENDELSE   From indx and indy  we will construct an array which will give indexes   of intersections points of columns specified by indx        indicereduit   indx replicate 1 n_elements indy nx replicate 1 n_elements indx indy   We reduce arrays which will be passed to vecteur        u   u indicereduit        v   v indicereduit        tabnorme   tabnorme indicereduit       endif           if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     Drawing of vectors       vecteur  u  v  tabnorme  indice2d  indicereduit  missing 1e5  _extra   ex     We complete the caption       if terre 0  ne  1 then mini   min tabnorme where t2 eq 1  max   maxi   nan       ELSE mini   min tabnorme  max   maxi   nan         if litchamp vecteur 0   u  NE   then       vectlegende    minmax: mini  maxi  unite:litchamp vecteur 0   u       ELSE vectlegende    minmax: mini  maxi  unite:varunit    sortie:    if keyword_set key_performance  NE 0 THEN print   temps ajoutvect  systime 1 tempsun     return end  "); 
    282 a[280] = new Array("./ToBeReviewed/PLOTS/VECTEUR/vecteur.html", "vecteur.pro", "", "FUNCTION cv_cm2normal  angle     Give the lenth in normal coordinates of a trait oriented of an angle   by rapport at the x axis and which must do 1 cm on the drawing    Angle can be an array           compile_opt idl2  strictarrsubs    common   What is the lenth in normal coordinates of a trait which will do 1 cm   on the paper an which is parallel to x    mipgsz   min page_size  max   mapgsz     sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait     sizeyfeuille   mapgsz key_portrait mipgsz 1 key_portrait     cm_en_normal   1 sizexfeuille     If the aspect rapport of the window is not equal to 1  the lenth in   normalized coordinates of  a trait of 1 cm vary following the polar   angle of this trait       aspect   sizexfeuille sizeyfeuille    cm_en_normal   cm_en_normal sqrt  1  aspect 2 1 sin angle 2        return  cm_en_normal END   PRO normalise  u  v  w     normalize the vector       compile_opt idl2  strictarrsubs      IF n_elements w  NE 0 THEN BEGIN        norme   sqrt u 2 v 2 w 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind        w ind    w ind norme ind     ENDIF ELSE BEGIN       norme   sqrt u 2 v 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind     ENDELSE  END              file_comments   Trace vectors  even if they are on a deformed grid  on any projection    In this way  all vectors have a comparable norme on the drawing  to be   clear  a vector which measure 1 cm measure it  no matter the projection   and is position on the sphere       categories    graphic       param COMPOSANTEU  in required    It is the u component of the vector to be traced  This 2d array has the    same dimension that reduitindice2d  see further        param COMPOSANTEV  in required    It is the v component of the vector to be traced  This 2d array has the    same dimension that reduitindice2d  see further        param INDICE2D   in required    It in an index allowing to to pass from an jpi or jpj array to the zoom    on which we do the drawing       param REDUITINDICE2D  in required    It is an index allowing to pass from an array defined by indice2d to the    array for which we really have vectors to be traced  to be clear  it is    for example when we trace only one vector on two       keyword CMREF   The lenth in cm that must measure the arrow normed normeref  By default     it is ajusted t othe drawing and included between  5 and 1 5 cm       keyword MISSING   The value of a missing value  Do not use this keyword  Fixed at 1e5 by    ajoutvect pro            keyword NORMEREF    The norme of the reference arrow       keyword VECTCOLOR   The color of the arrow  Black by default  color 0        keyword VECTTHICK   The thick of the arrow  1 by default       keyword VECTREFPOS   Vector composed of 2 elements specifing the position on DATA coordinates    from de begining of the reference vector  By default at the right bottom    of the drawing       keyword VECTREFFORMAT   The format to be used to specify the norme of the reference vector       keyword NOVECTREF   To delete the display of the reference vector        keyword _EXTRA   Used to pass your keywords       uses    common pro      history    Creation : 13 02 98 G  Roullet  grlod lodyc jussieu fr     Modification : 14 01 99 realise la transformation    spheriquecartesien G  Roullet                   12 03 99 verification de la routine G  Roullet    8 11 1999:    G  Roullet et Sebastien Masson  smasson lodyc jussieu fr     adaptation pour les zoom  reverification traitement separe de la    direction et de la norme des vecteurs  mots cles NORMEREF et CMREF       version    Id: vecteur pro 142 2006 07 21 12:47:49Z navarro              PRO vecteur  composanteu  composantev  normevecteur  indice2d  reduitindice2d                  CMREF   cmref  MISSING   missing  NORMEREF   normeref                  VECTCOLOR   vectcolor  VECTTHICK   vectthick  VECTREFPOS   vectrefpos                  VECTREFFORMAT   vectrefformat  NOVECTREF   novectref  _extra   extra     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            For key_performance        taille   size composanteu     nx   taille 1     ny   taille 2     if n_elements reduitindice2d  EQ 0 then reduitindice2d   lindgen nx  ny     zu   composanteu    zv   composantev    norme   normevecteur    taille   size indice2d     nxgd   taille 1     nygd   taille 2       msk   replicate 1  nx  ny     if keyword_set missing  then terre   where abs zu  GE missing 10  ELSE terre    1    if terre 0  NE  1  then BEGIN        msk terre    0       zu terre    0       zv terre    0       norme terre    0    ENDIF     Stage 1:      Given that the directions and the sense that the vector has on the sphere     we have to try to determinate this direction and the sense that the vector    will have on the screen once it will have been projected      In theory: on the sphere  a vector in a given point has for direction the    tangent at the circle passing by the center of the Earth and by the vector     So  find the direction once the projection is done  it is find the tangent   to the curve representing the projection of the circle on the 2d plan at the    point representing the projection of the starting point of the shere on the    2d plan       In practice we do no know the definition of the curve given by the projection    of a circle so find its tangente in a point      What we do:   In a 3d cartesian reference          a  We find coorinates of the point T  starting of the arrow  situed          on the sphere          b  To each point T  we determine local directions defined by the grid         on this point and on which coordinates  u v  of the vector refer to          These local directions are defined by gradients of glam and gphi  Once         we have obtain these directions  we considare them like orthogonal and         by norming them  we build an orthonormal reference  nu nv  on which         coordinates  u v  of the vector refer to  In the starting 3d cartesian         reference  the vector is defined by:         V u nu v nv          where V  nu and nv are 3d vectors and u and v are scalars          c  To approximate the tangente to the circle by the chord defined by         the beginning and the ending of the arrow  we will normalize V  and         then divide it by 100          d  This allows us to determine coordinates of extremities of the chord         in the 3d cartesian reference  We pass them in spherical coordinates in         order to recuperate latitude and longitude position of these points on         the sphere          e  We pass coordinates of these points in normalized coordinates  then         in polar coordinates in order to find the angle and the direction they         dertermine on the drawing        Stage 1  a        coordinates of the point T  beginning of the arrow  in spherical coordinates     glam   glamt indice2d reduitindice2d     gphi   gphit indice2d reduitindice2d      Coordinates of the point T  beginning of the arrow  in the cartesian reference    For the sphere  we use a sphere with a radius of 1       radius   replicate 1 nx ny     coord_sphe   transpose   glam   gphi   radius       r   cv_coord from_sphere coord_sphe to_rect degrees       x0   reform r 0    nx  ny     y0   reform r 1    nx  ny     z0   reform r 2    nx  ny      Stage 1  b      Construction of a vector nu  resp  nv  vectr normed carried by the axis of   points u i j  and u i 1 j   resp v i j  and v i j 1  which define  for each   point on the sphere  local directions associated with u and v  These vectors   define a local orthonormal reference     These vectors are built in a cartesian reference  cv_coord  We have choose a    unity radius of the Earth  unit      definition of nu    radius   replicate 1 nxgd nygd     IF finite glamu 0 gphiu 0  NE 0 THEN        coord_sphe   transpose   glamu indice2d   gphiu indice2d   radius         ELSE coord_sphe   transpose   glamf indice2d   gphit indice2d   radius       r   cv_coord from_sphere coord_sphe to_rect degrees    coordinates of points of the grid u in cartesian     ux   reform r 0    nxgd  nygd     uy   reform r 1    nxgd  nygd     uz   reform r 2    nxgd  nygd    calculation of nu     nux   ux shift ux  1  0     nuy   uy shift uy  1  0     nuz   uz shift uz  1  0    conditions at extremities     if NOT keyword_set key_periodic  OR nxgd NE jpi then begin       nux 0      nux 1          nuy 0      nuy 1          nuz 0      nuz 1       ENDIF   reduction of the grid    nux   nux reduitindice2d     nuy   nuy reduitindice2d     nuz   nuz reduitindice2d    definition of nv    IF finite glamv 0 gphiv 0  NE 0 THEN      coord_sphe   transpose   glamv indice2d   gphiv indice2d   radius         ELSE coord_sphe   transpose   glamt indice2d   gphif indice2d   radius                       r   cv_coord from_sphere coord_sphe to_rect degrees    coordinates of points of the grid in cartesian     vx   reform r 0    nxgd  nygd     vy   reform r 1    nxgd  nygd     vz   reform r 2    nxgd  nygd    calcul of nv     nvx   vx shift vx  0  1     nvy   vy shift vy  0  1     nvz   vz shift vz  0  1    conditions at extremities    nvx  0    nvx  1     nvy  0    nvy  1     nvz  0    nvz  1    reduction of the grid    nvx   nvx reduitindice2d     nvy   nvy reduitindice2d     nvz   nvz reduitindice2d      normalization      normalise  nux  nuy  nuz    normalise  nvx  nvy  nvz     Stage 1  c      coordinates of the vector V in the cartesian reference      direcx   zu nux   zv nvx    direcy   zu nuy   zv nvy    direcz   zu nuz   zv nvz   normalization of the vector V    normalise  direcx  direcy  direcz   on divide by 100    direcx   direcx 100     direcy   direcy 100     direcz   direcz 100      Stege 1  d    coordinates of the point of the arrow in the cartesian reference      x1   x0   direcx    y1   y0   direcy    z1   z0   direcz    coordinates of the point of the arrow in spherical coordinates      coord_rect   transpose   x1   y1   z1       r   cv_coord from_rect coord_rect to_sphere degrees     glam1   reform r 0    nx  ny     gphi1   reform r 1    nx  ny       modification of glams  Everything take place at the level of the line   of changing of date  BEWARE  do not cut arrow which goes out of the   window    test: If it goes out of the frame  but  thanks to   360  it come in    we modify it      ind   where glam1 LT  x range 0  AND glam1 360  LE  x range 1     if ind 0  NE  1 then glam1 ind    glam1 ind 360     ind   where glam1 GT  x range 1  AND glam1 360  GE  x range 0     if ind 0  NE  1 then glam1 ind    glam1 ind 360      ind   where glam LT  x range 0  AND glam 360  LE  x range 1     if ind 0  NE  1 then glam ind    glam ind 360     ind   where glam  GT  x range 1  AND glam 360  GE  x range 0     if ind 0  NE  1 then glam ind    glam ind 360        Stage 1  e       r   convert_coord glam gphi data to_normal      x0   r 0                      normal coordinates of the beginning of the array     y0   r 1                              r   convert_coord glam1 gphi1 data to_normal      x1   r 0                      normal coordinates of the ending of the array  Before scaling     y1   r 1                           tests to avoid that arrows be drawing out of the domain       out   where x0 LT  p position 0  OR x0 GT  p position 2                    OR y0 LT  p position 1  OR y0 GT  p position 3     if out 0  NE  1 THEN x0 out     values f_nan     Following projections  there may are points at NaN when we pass in normal coordinates     We delete these points       nan   finite x0 y0 x1 y1     number   where nan EQ 1     x0   x0 number    x1   x1 number     y0   y0 number    y1   y1 number     msk   msk number     norme   norme number      We define the vector direction in the normalize reference       dirx   x1 x0    diry   y1 y0    We pass in polar coordinates to recuperate the angle which wasb the goal of all the first stage        dirpol   cv_coord from_rect   transpose   dirx   diry     to_polar     dirpol   msk dirpol 0        Stage 2     Now we take care of the norme      Automatic putting at the scale       if NOT keyword_set cmref  then BEGIN        mipgsz   min page_size  max   mapgsz        sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait        sizexfeuille   10 sizexfeuille       cmref   5   floor sizexfeuille 10    15       cmref   cmref 10     ENDIF    if NOT keyword_set normeref  then BEGIN       value   max norme        puissance10   10 floor alog10 value        normeref   puissance10 floor value puissance10     endif    cm   1 normeref cmref     We modify the array norme to an element having the value cm be represented    by a trait of lenght 1 cm on the paper  Norme contain the norme of vectors    we want to draw       norme   1 1 cm norme cv_cm2normal dirpol        Stage 3   Now that we have the angle and the norme  we recuperate coordinates in    rectangular and we draw arrows       r   cv_coord from_polar   transpose   dirpol   norme     to_rect     composantex   r 0       composantey   r 1         x1   x0 composantex    y1   y0 composantey     Drawing      if NOT KEYWORD_SET vectcolor  then vectcolor   0     points   where msk EQ 1     IF points 0  NE  1 THEN arrow  x0 points  y0 points  x1 points  y1 points   norm         hsize    2  COLOR   vectcolor  THICK   vectthick      Draw an arrow at the right bottom of the drawing as a caption       if NOT keyword_set novectref  then BEGIN       dx   cmref cv_cm2normal 0    Lenght of the vector of reference in normalzed coordinates        if keyword_set vectrefformat  then          normelegende   strtrim string normeref  format   vectrefformat  1            ELSE normelegende   strtrim normeref  1            if keyword_set vectrefpos  then begin          r   convert_coord vectrefpos data   to_normal           x0   r 0           y0   r 1        ENDIF ELSE BEGIN          x0    x window 1 dx          r   convert_coord d x_ch_size   d y_ch_size   device   to_normal           dy   3 r 1 p charsize          y0    y window 0 dy       ENDELSE        arrow  x0  y0  x0 dx  y0   norm  hsize    2  color   0       xyouts  x0  y0  normelegende   norm  align   1  charsize    p charsize  color   0     endif         if keyword_set key_performance  NE 0 THEN print   temps vecteur  systime 1 tempsun         return END     "); 
    283 a[281] = new Array("./ToBeReviewed/PLOTS/VECTEUR/velovect.html", "velovect.pro", "", "          file_comments   Produce a two dimensional velocity field plot      A directed arrow is drawn at each point showing the direction and    magnitude of the field                      categories   Plotting  two dimensional         param U  in required    The X component of the two dimensional field      U must be a two dimensional array       param V  in required    The Y component of the two dimensional field   Y must have   the same dimensions as X   The vector at point  i j  has a    magnitude of:    U i j 2   V i j 2 0 5     and a direction of:    ATAN2 V i j U i j       param X  in optional    Optional abcissae values   X must be a vector with a length    equal to the first dimension of U and V       param Y  in optional    Optional ordinate values   Y must be a vector with a length   equal to the first dimension of U and V       keyword COLOR   The color index used for the plot       keyword DOTS   Set this keyword to 1 to place a dot at each missing point     Set this keyword to 0 or omit it to draw nothing for missing   points   Has effect only if MISSING is specified       keyword LENGTH   Length factor   The default of 1 0 makes the longest  U V    vector the length of a cell       keyword MISSING    Missing data value   Vectors with a LENGTH greater   than MISSING are ignored       keyword OVERPLOT   Set this keyword to make VELOVECT  overplot   That is  the   current graphics screen is not erased  no axes are drawn  and   the previously established scaling remains in effect        keyword CLIP       keyword NOCLIP      keyword _EXTRA   Used to pass your keywords       restrictions    Plotting on the selected device is performed   System   variables concerning plotting are changed    Note:   All other keywords are passed directly to the PLOT procedure  and may be used to set option such as TITLE  POSITION    NOERASE  etc       history  DMS  RSI  Oct  1983   For Sun  DMS  RSI  April  1989   Added TITLE  Oct  1990   Added POSITION  NOERASE  COLOR  Feb 91  RES   August  1993   Vince Patrick  Adv  Visualization Lab  U  of Maryland   fixed errors in math   August  1993  DMS  Added _EXTRA keyword inheritance   January  1994  KDB  Fixed integer math which produced 0 and caused              divide by zero errors   December  1994  MWR  Added _EXTRA inheritance for PLOTS and OPLOT   June  1995  MWR  Removed _EXTRA inheritance for PLOTS and changed   OPLOT to PLOTS          September  1996  GGS  Changed denominator of x_step and y_step vars           February  1998  DLD   Add support for CLIP and NO_CLIP keywords          June  1998  DLD   Add support for OVERPLOT keyword      Copyright  c  1983 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited       version    Id: velovect pro 142 2006 07 21 12:47:49Z navarro         PRO VELOVECT U V X Y  Missing   Missing  Length   length  Dots   dots             Color color  CLIP clip  NOCLIP noclip  OVERPLOT overplot  _EXTRA extra     compile_opt idl2  strictarrsubs           on_error 2                       Return to caller if an error occurs         s   size u          t   size v          if s 0  ne 2 then begin  baduv:   message   U and V parameters must be 2D and same size                  endif         if total abs s 0:2 t 0:2  ne 0 then goto baduv           if n_params 0  lt 3 then x   findgen s 1  else                   if n_elements x  ne s 1  then begin badxy:                  message   X and Y arrays have incorrect size                          endif         if n_params 1  lt 4 then y   findgen s 2  else                   if n_elements y  ne s 2  then goto badxy           if n_elements missing  le 0 then missing   1 0e30         if n_elements length  le 0 then length   1 0          mag   sqrt u 2 v 2               magnitude                   Subscripts of good elements         nbad   0                          of missing points         if n_elements missing  gt 0 then begin                 good   where mag lt missing                   if keyword_set dots  then bad   where mag ge missing  nbad          endif else begin                 good   lindgen n_elements mag          endelse          ugood   u good          vgood   v good          x0   min x                       get scaling         x1   max x          y0   min y          y1   max y   x_step x1 x0 s 1 1 0      Convert to float  Integer math  y_step y1 y0 s 2 1 0      could result in divide by 0   maxmag max max abs ugood x_step max abs vgood y_step   sina   length    ugood maxmag   cosa   length    vgood maxmag            if n_elements title  le 0 then title                plot to get axes            if n_elements color  eq 0 then color    p color         if n_elements noclip  eq 0 then noclip   1         x_b0 x0 x_step  x_b1 x1 x_step  y_b0 y0 y_step  y_b1 y1 y_step         if  not keyword_set overplot  then begin           if n_elements position  eq 0 then begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endif else begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endelse         endif         if n_elements clip  eq 0 then               clip    x crange 0 y crange 0 x crange 1 y crange 1            r    3                           len of arrow head         angle   22 5    dtor             Angle of arrowhead         st   r   sin angle               sin 22 5 degs   length of head         ct   r   cos angle            for i 0 n_elements good 1 do begin      Each point                 x0   x good i  mod s 1          get coords of start   end                 dx   sina i                  x1   x0   dx                 y0   y good i    s 1                  dy   cosa i                  y1   y0   dy  xd x_step  yd y_step                 plots x0 x1 x1 ct dx xd st dy yd xd     x1 x1 ct dx xd st dy yd xd                           y0 y1 y1 ct dy yd st dx xd yd     y1 y1 ct dy yd st dx xd yd                          color color clip clip noclip noclip  _EXTRA   extra                 endfor         if nbad gt 0 then                Dots for missing                  PLOTS  x bad mod s 1  y bad   s 1  psym 3  color color                           clip clip noclip noclip  _EXTRA   extra end"); 
    284 a[282] = new Array("./ToBeReviewed/PLOTS/axe.html", "axe.pro", "", "             file_comments   Manage axes for the different drawings created by plt    pltz and pltt      categories    Graphic environment      param COUPE   It is a string designating the type of cut to which the axes we create    must report  For example:  xy xt       param TEMPSMIN  in required    In the case where we do cut containing the time dimension  we have    to specify the beginning of the time s axis in julian days       param TEMPSMAX  in required    In the case where we do cut containing the time dimension  we have    to specify the end of the time s axis in julian days       keyword SIN    activated when we trace in sinus of the latitude      keyword SEPDATE   string separating the diff rent constituents of the date  By default     it is a return to the linewhen we do a  yt   zt  or a  t     In the other cases  it is a blank        keyword DIGITSYEAR    2 to use  Z format  2 digits  to code years   instead of  Y format  See help of label_date for more   informations on  Z and  Y       keyword _EXTRA    used to pass your keywords       uses   common pro      restrictions   It modify  x  and  y       history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                         Eric Guilyardi types x y z   amelioration de                         l axe temporel      version    Id: axe pro 142 2006 07 21 12:47:49Z navarro             PRO axe  coupe tempsmin tempsmax  REVERSE_X   reverse_x  REVERSE_Y   reverse_y  SIN   sin  SEPDATE   sepdate  DIGITSYEAR   digitsyear  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance     Management of ticks of the time axis in the case of TEMPSMIN    and TEMPSMAX are definied      divday   0    if n_params  EQ 3 then BEGIN         if keyword_set sepdate  then sep   sepdate ELSE          if coupe EQ  yt  OR coupe EQ  zt  OR coupe EQ  t  then sep    C  ELSE sep               caldat tempsmin  mmin  dmin  ymin  hmin  mnmin  smin  _EXTRA   ex       caldat tempsmax  mmax  dmax  ymax  hmax  mnmax  smax  _EXTRA   ex   format used for the year  2 or 4 5 digits        IF NOT keyword_set digitsyear  THEN digitsyear   4       IF digitsyear EQ 2 THEN fmtyr    Z  ELSE fmtyr    Y          if ymax EQ ymin then BEGIN          if mmin ne mmax then BEGIN   Same year but several monthes             nticks   mmax mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              tminor   6             datfmt    M sep fmtyr   We check that labels are betwenn TEMPSMIN and TEMPSMAX              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom    Particular case where we are overlap two monthes             if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          ENDIF ELSE BEGIN    Same year and same month             IF dmax dmin 1 GT 4 THEN BEGIN   more than 4 days                nticks   dmax dmin 1                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              ENDIF ELSE BEGIN      less than 4 days : divday ticks per day                divday   4                nticks    dmax dmin divday   1                ticknom   fltarr nticks                 for d   0 nticks 1 do                   ticknom d    julday mmin  d divday dmin  ymin  _EXTRA   ex                     d MOD divday float divday                 tminor   2                datfmt    H:00              ENDELSE           ENDELSE        ENDIF ELSE BEGIN    Several years          CASE 1 OF          ymax ymin 1 LE 10: BEGIN   freq   1    tminor   12   datfmt    M sep fmtyr   end          ymax ymin 1 LE 20: BEGIN   freq   2    tminor   6   datfmt    M sep fmtyr   end          ymax ymin 1 LE 50: BEGIN   freq   5    tminor   5   datfmt    M sep fmtyr   end          ymax ymin 1 LE 100: BEGIN   freq   10    tminor   10   datfmt   fmtyr   end          ymax ymin 1 LE 1000: BEGIN   freq   50    tminor   5   datfmt   fmtyr   end          ELSE : BEGIN   freq   100    tminor   50   datfmt    Y    end          ENDCASE           nticks   floor ymax ymin freq 1          IF floor ymin freq  NE  ymin freq THEN             yminf    floor ymin freq 1 freq ELSE              yminf    floor ymin freq freq          ticknom   lonarr nticks           for y   0  nticks 1 do ticknom y    julday 1  1  yminf y freq  _EXTRA   ex    We check that labels are betwenn TEMPSMIN and TEMPSMAX           ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1           nticks   n_elements ticknom    Particular case where we are overlap two monthes          if nticks LE 1 then begin             nticks    mmax 12 mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom              tminor   6             datfmt    M sep fmtyr    Particular case where we are overlap two monthes            if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          endif       ENDELSE        toto   label_date 0  0  0  DATE_FORMAT   datfmt  _EXTRA   ex        if chkstru ex   DATE_FORMAT  then ex DATE_FORMAT        ENDIF      Definition of axes parameters case by case      case coupe of        xy :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range lat2 lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  x tickformat lonaxe           IF key_onearth THEN  y tickformat lataxe        END        yz :BEGIN           if keyword_set reverse_x  then  x range lat2 lat1  ELSE  x range lat1 lat2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0           if keyword_set sin  then BEGIN   number of ticks by default             plot   0   0   noerase   nodata  xtick_get   xaxe   We increase this number to it be around 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    We recuperate the x axis for this new number of ticks             plot   0   0 xticks   ticks   noerase   nodata  xtick_get   xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           endif       end        xz :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0        end        xt  : begin          if keyword_set reverse_x  then  x range    lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range tempsmax  tempsmin tempsmin            ELSE  y range tempsmin tempsmax tempsmin          IF key_onearth THEN  x tickformat lonaxe             result   LABEL_DATE DATE_FORMAT    M sep fmtyr              y tickformat LABEL_DATE            y tickname   LABEL_DATE 1  0 ticknom _EXTRA   ex             y ticklen 1            y gridstyle 2           y ticks nticks 1           y tickv ticknom tempsmin           y minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        yt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if keyword_set reverse_y  then  y range lat2  lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  y tickformat lataxe            x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        zt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1             x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        t  : BEGIN          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin           x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        x  : begin           x range lon1 lon2           IF key_onearth THEN  x tickformat lonaxe        END        y  : begin          if keyword_set sin  then BEGIN   Number of ticks by default             plot   0   0   nodata   noerase  xstyle   5  ystyle   5  xtick_get   xaxe   We increase this number to it be around 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    We recuperate the x axis for this new number of ticks             plot   0   0 xticks   ticks nodata noerase xstyle 5 ystyle 5 xtick_get xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           ENDIF ELSE  x range lat1 lat2           IF key_onearth THEN  x tickformat lataxe        END        z  : begin            if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1              if keyword_set reverse_y  then  y range gdep 0  gdep n_elements gdep 1               ELSE  y range gdep n_elements gdep 1  gdep 0        END     endcase    if keyword_set key_performance  THEN print   temps axe  systime 1 tempsun     return end"); 
    285 a[283] = new Array("./ToBeReviewed/PLOTS/legende.html", "legende.pro", "", "             file_comments   Provide caption      categories   graphic  annex      param MI  in required    The min of the drawing       param MA  in required    The max of the plot      param COUPE   Charactere containing two letters giving the type of the cut   for example:  xz       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword ENDPOINTS   Used when we do vertical cuts in diagonal       keyword _EXTRA   used to pass your keywords       uses   common pro      restrictions   The use of the global variable langage allows to change the language and the caption easily       history    Sebastien Masson  smasson lodyc jussieu fr   14 8 98                         Eric Guilyardi  ericg lodyc jussieu fr  GB version  11 6 99      version    Id: legende pro 142 2006 07 21 12:47:49Z navarro             pro legende mi ma coupe CONTOUR   contour ENDPOINTS   endpoints  DIREC   direc                 VECTLEGENDE   vectlegende                 INTERVALLE   intervalle  TYPE_YZ   type_yz  VARNAME2   varname2                 NPTS   npts  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance      grille   1   1   1  gdep  nx  ny  nz     English legends      fmt_mm    f12 2     fmt_bt    f7 1     colorf        contourf    Contour plot     vecteurf    Vector norm       expf        datef            fieldf            depthf            endpointsf    Diag  Section     zonalf        IF key_onearth THEN latintf    latitudes in   ELSE latintf    j index in      timintf    time in      onf            depthf2    Depth  m     Meridf    Zonal Mean       IF key_onearth THEN lonintf    longitudes in   ELSE lonintf    i in      hovxt    XT plot        diaghovxt    Diag  XT plot        depintf    depths in      timef    Time     hovyt    YT plot        diaghovyt    Diag  YT plot        hovzt    ZT plot        hovt        IF key_onearth THEN lontitle    Longitude  ELSE lontitle    i index     IF key_onearth THEN lattitle    Latitude  ELSE lattitle    j index         vertz   depthf2    legniv     m     IF keyword_set TYPE_YZ  THEN BEGIN      IF type_yz EQ  hPa  THEN vertz    hPa        IF type_yz EQ  hPa  THEN legniv     hPa      ENDIF      Start legende       definition and possible complement of  p subtitle      if n_elements varunit  ne 0 then unite varunit  else unite      p subtitle colorf unite : Min   strtrim string format fmt_mm mi  2        Max   strtrim string format fmt_mm ma  2     if keyword_set intervalle  then BEGIN       if intervalle NE  1 then           p subtitle p subtitle  Int   strtrim string format fmt_mm intervalle  2     endif    if size contour   type  EQ 8 then BEGIN   it is a structure        unite contour 1         p subtitle p subtitle C  contourf unite           : Min   strtrim string format fmt_mm contour 0 0  2           Max   strtrim string format fmt_mm contour 0 1  2        if contour inter NE  1  then           p subtitle p subtitle  Int   strtrim string format fmt_mm contour inter  2     ENDIF    if size vectlegende   type  EQ 8  then begin       unite vectlegende 1         p subtitle p subtitle C  vecteurf unite           : Min   strtrim string format fmt_mm vectlegende 0 0  2           Max   strtrim string format fmt_mm vectlegende 0 1  2     endif     Shapping of subdomain  s dimensions       la1 strtrim string format fmt_bt  lat1  2     la2 strtrim string format fmt_bt  lat2  2     lo1 strtrim string format fmt_bt  lon1  2     lo2 strtrim string format fmt_bt  lon2  2     pr1 strtrim string format fmt_bt  vert1  2     pr2 strtrim string format fmt_bt  vert2  2      Management of the date      if n_elements vardate  EQ 0 then vardate        if NOT keyword_set direc  then direc        if strpos direc   t  NE  1 then begin       svardate   strtrim vairdate time 0  1     strtrim vairdate time jpt 1  1     ENDIF ELSE svardate   vardate     case on the caes where the caption is applied         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"); 
    286 a[284] = new Array("./ToBeReviewed/PLOTS/plotsym.html", "plotsym.pro", "", "       file_comments   function to make plotting symbols much easier        categories   Graphic       Keyword circle    circle symbol       Keyword TRIANGLE   triangle symbol       Keyword DIAMOND    diamond symbold       Keyword BOX   box symbol       Keyword LINE   line symbol       Keyword SCALE   scales the symbol       Keyword ANGLE   angle the symbol should be rotated       Keyword _EXTRA   extra keywords for usersym   These are thick  color and fill      history   Written by:   Ronn Kling   Ronn Kling Consulting   7038 Westmoreland Dr    Warrenton  VA 20187   klingrl juno com   copyright 1999  all rights reserved      version    Id: plotsym pro 142 2006 07 21 12:47:49Z navarro         function plotsym  circle circle  triangle triangle  diamond diamond                      angle angle  box box  line line  scale scale                      _extra extra     compile_opt idl2  strictarrsubs   if not keyword_set scale  then scale 1 0 if not keyword_set angle  then angle 0 0  if keyword_set circle  then begin   theta   findgen 30 29 360  endif else if keyword_set triangle  then begin   theta    30 90 210   30  endif else if keyword_set diamond  then begin   theta    0 90 180 270 0  endif else if keyword_set box  then begin   theta    315 45 135 225 315  endif else if keyword_set line  then begin   theta    180 0  endif  theta   theta   angle x   cos theta    dtor    scale y   sin theta    dtor    scale  usersym  x y  _extra extra return 8 end"); 
    287 a[285] = new Array("./ToBeReviewed/PLOTS/reinitplt.html", "reinitplt.pro", "", "             file_comments   This procedure will reinitialise all or a selection    ofthe system plot variables      categories   plot Utility         keyword X   clear the appropriate variable      keyword Y   clear the appropriate variable        keyword Z    clear the appropriate variable       keyword P   clear the appropriate variable      keyword ALL    Clear all  this is equivalent to  x y z p      keyword INVERT   Invert the logic  Clear all unselected variables    Therefore  clearplt all invert  does nothing       uses   common pro       restrictions   The sytem plot variables are changed       history   Written by: Trevor Harris  Physics Dept  University of Adelaide   July  1990      Sebastien Masson 7 5 98      version    Id: reinitplt pro 142 2006 07 21 12:47:49Z navarro             pro reinitplt  all all x x y y z z p p  invert invert       compile_opt idl2  strictarrsubs    clearx   0  cleary   0  clearz   0  clearp   0  if  keyword_set x  then clearx   1  if  keyword_set y  then cleary   1  if  keyword_set z  then clearz   1  if  keyword_set p  then clearp   1  if  keyword_set all                or  not keyword_set x  and not keyword_set y  and                   not keyword_set z  and not keyword_set p  then begin      clearx   1  cleary   1  clearz   1  clearp   1  endif   if  keyword_set invert  then begin  clearx   not clearx  cleary   not cleary  clearz   not clearz  clearp   not clearp  endif   if  clearx  then begin                  x charsize 0                  x GRIDSTYLE 0                  X MARGIN 10 3             X MINOR 0                  X OMARGIN 0 0                   x region 0           X RANGE 0                  x STYLE 5                   x tick 1                  x TICKFORMAT                   x TICKLEN 0                  x tickname                   x ticks 0                  X TICKV 0 X TICKV 1   x title                   x TYPE 0  endif  if  cleary  then begin                  y charsize 0                  y GRIDSTYLE 0                  Y MARGIN 10 3             Y MINOR 0                  Y OMARGIN 0 0                   y region 0           Y RANGE 0                  y STYLE 5                   y tick 1                  y TICKFORMAT                   y TICKLEN 0                  y tickname                   y ticks 0                  Y TICKV 0 Y TICKV 1   y title                   y TYPE 0  endif  if  clearz  then begin                  z charsize 0                  z GRIDSTYLE 0                  Z MARGIN 10 3             Z MINOR 0                  Z OMARGIN 0 0                   z region 0           Z RANGE 0                  z STYLE 1                   z tick 1                  z TICKFORMAT                   z TICKLEN 0                  z tickname                   z ticks 0                  Z TICKV 0 Z TICKV 1   z title                   z TYPE 0  endif  if  clearp  then begin  p BACKGROUND d n_colors 1    255  p CHARSIZE 1   p CHARTHICK 0   p LINESTYLE 0   p MULTI replicate 0 5   p NOERASE 0   p POSITION 0   p region 0                   p title   p subtitle   p ticklen 0 02                  p thick 0 1                  p color 0  endif  return  end      "); 
    288 a[286] = new Array("./ToBeReviewed/PLOTS/style.html", "style.pro", "", "             file_comments    Choose the way to trace isolines       categories   graphic      param LABSTYLE  in required    Number to which the style of drawing choosen refer to       param LEVEL_Z2D  in required    Vector containing values of isolignes to be traced       param LINESTYLE  out    Vector used to define the isocontour s style         Comment: remenber:  Index Linestyle   0 Solid   1 Dotted   2 Dashed   3 Dash Dot   4 Dash Dot Dot Dot   5 Long Dashes        param THICK  out    Vector defining the thick of the isoline       history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: style pro 142 2006 07 21 12:47:49Z navarro             pro style labstyle level_z2d linestyle thick     compile_opt idl2  strictarrsubs      case labstyle of       0: begin  series: Two thin continuous lines  one boldface continuous line          thick 1 1 2           linestyle 0           return       end       1: begin  series: Before the middle of levels: thin dash  Then thin continuous trait    If the middle of the drawing is drawn  it is in boldface continuous trait           impair n_elements level_z2d 2 fix n_elements level_z2d 2           a replicate 0 fix n_elements level_z2d 2           b replicate 1 fix n_elements level_z2d 2           c replicate 2 fix n_elements level_z2d 2                    if impair then begin             thick b 2 b              linestyle c 0 a           endif else begin             thick 0              linestyle c a           endelse          return       end       2: begin  series: Before the sill  defined by answering to a question : thin dash    Then thin continuous trait  If the sill is drawn  it is in boldface continuous trait           seuil xquestion Quelle est la limite tirets trait continu   0           seuil   float seuil           rien where level_z2d lt seuil n           a replicate 0 n_elements level_z2d n           c replicate 2 n                    if seuil eq level_z2d n  then begin             thick replicate 1 n 2 replicate 1 n_elements level_z2d 1 n              linestyle c a           endif else begin             thick 0              linestyle c a           endelse          return       end       3: begin          n   n_elements level_z2d           seuil   level_z2d 1 n 2            thick   intarr n           thick indgen n 4 4    1          thick indgen n 4 4 1    1          thick indgen n 4 4 2    2          thick indgen n 4 4 3    1           linestyle   intarr n           linestyle indgen n 4 4    3          linestyle indgen n 4 4 1    0          linestyle indgen n 4 4 2    0          linestyle indgen n 4 4 3    0           labels   intarr n           labels indgen n 2 2    1          labels n 2    0           return       end       4: begin   Boldface continuous trait           seuil   1 e 6          thick replicate 5   n_elements level_z2d           linestyle 0           rien where abs level_z2d max abs level_z2d  LT seuil           if rien 0  NE  1 then thick rien 0    3       end       else: begin          ras   report Le numero de labstyle demande n existe pas           stop       end    endcase    return end"); 
    289 a[287] = new Array("./ToBeReviewed/PLOTS/symbols.html", "symbols.pro", "", "       file_comments   Create custom plotting symbols       param NSYM  in required                      1   open circle                  2   filled circle                  3   arrow pointing right                  4   arrow pointing left                  5   arrow pointing up                  6   arrow pointing down                  7   arrow pointing up and left  45 degrees    8   arrow pointing down and left   9   arrow pointing down and right    10   arrow pointing up and right    11 through 18 are bold versions of 3 through 10   19   horizontal line   20   box   21   diamond   22   triangle   30   filled box   31   filled diamond   32   filled triangle       param SCALE  in required    size of symbols        keyword COLOR   color of symbols      restrictions   The desired symbol is stored in the user buffer and    will be plotted if  P PSYM   8       history   Jeff Bennett  U of Colorado  198       version    Id: symbols pro 142 2006 07 21 12:47:49Z navarro       pro symbols nsym scale color col     compile_opt idl2  strictarrsubs   on_error 2 fill   0 case 1 of       nsym le 2 :   begin                          circles                        for large scales increase number of points for res                        if scale ge 4 then a   findgen 25  else                         a   findgen 13                        a   a    3 14159   6         0   12 or 24  pi 6                       xarr   cos a                        yarr   sin a                        if nsym eq 2 then fill   1                     end       nsym ge 3 nsym le 18 :   begin            arrow heads                       xarr   fltarr 5                        yarr   xarr                       xarr 1    10                        xarr 2    6                        yarr 2    2                         nsyms greater than 10 should be filled arrows                       if nsym gt 10 then begin                          xarr 3    6                            xarr 4    10                           yarr 3     2                           fill   1                       endif else begin                          xarr 3    10                           xarr 4    6                           yarr 4     2                        endelse                       case 1 of                           nsym eq 3 : dummy   0b                           nsym eq 4 : xarr    1 xarr                           nsym eq 11 nsym eq 12 : begin                             xarr   extrac xarr 0 11                              yarr   extrac yarr 0 11                              yarr 6    0 5                             xarr 7    6                             yarr 7    0 5                             xarr 8    6                             yarr 8     0 5                             yarr 9     0 5                             if nsym eq 12 then begin                                rotation xarr yarr 180 nx ny                                xarr   nx                                yarr   ny                             endif                                                      end                           nsym eq 5 nsym eq 13 : begin                             temp   xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym eq 6 nsym eq 14 : begin                             temp    1 xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym ge 7 nsym le 10                                nsym ge 15 nsym le 18 : begin                             case 1 of                                   nsym eq 7 nsym eq 15 : deg   45                                   nsym eq 8 nsym eq 16 : deg   135                                   nsym eq 9 nsym eq 17 : deg   225                                   nsym eq 10 nsym eq 18 : deg   315                             endcase                             rotation xarr yarr deg nx ny                             xarr   nx                             yarr   ny                                                   end    end nsym ge 7                       endcase                                    end     nsym between 3 and 18       nsym eq 20 nsym eq 21 nsym eq 30 nsym eq 31 :  begin                       xarr   fltarr 5    3                       yarr   xarr                       xarr 1     3                        xarr 2     3                        yarr 2     3                        yarr 3     3                        if  nsym eq 21 nsym eq 31  then begin                          rotation xarr yarr 45 nx ny                          nx   0 70   nx      shrink the x direction                          xarr   nx                          yarr   ny                       endif                       if nsym ge 30 then fill   1                                    end     nsym 20 21 30 31       nsym eq 22 nsym eq 32 :  begin   side length 6  0 at centroid                       yarr   fltarr 4    6 4                        xarr   fltarr 4    6 2                        xarr 1    6 2                        xarr 2    0                        yarr 2    6 sqrt 3 2    6 4                        if nsym eq 32 then fill   1                                     end      else:                          begin                       xarr   fltarr 2    1                       yarr   xarr   0                        xarr 1     1                                      end endcase   xarr   xarr   scale yarr   yarr   scale    set symbol buffer if keyword_set col  then usersym xarr yarr fill fill color col else     usersym xarr yarr fill fill   return end"); 
    290 a[288] = new Array("./ToBeReviewed/POSTSCRIPT/calibre.html", "calibre.pro", "", "           file_comments   From a rapport of aspect and values  in line of character  of different margins     it calculate POSFENETRE and POSBAR which serve to place the drawing and the color    bar thanks to  p position on a leaf or a screen output whose the window has the same    proportion       categories    graphics         param RAPPORTYX  in required    Scale rapport between the lenght of the y axis and the x one  For example     for an xy map: RAPPORTYX lat2 lat1 lon2 lon1       param MARGE  in required    Vector made of 4 elements containing the size of the left  right  up and    bottom margin having to surround the graph  All is measured in lines of characters       param MARGEBAR  in required    Vector made of 4 elements containing the size of the left  right and bottom    margin and  BEWARE  the last element is this time the positio of the right up    corner  having to surround the color bar  All is measured in lines of characters       param SMALLDRAW  in required    2 possibilities:      It is vector made of 4 elements giving  in portrait or landscape  the position    of the frame in which the drawing must go in  This position is given by coordinates    of the 2 corners of the frame: in the left bottom and the right up  It is always     for a postscript or a screen output  express in cm  the origin being the    left bottom corner       It is a vector made of 3 elements giving the number of column to be done in the    drawing  the number of line and the number of the case the number have to occupy     see matlab  For example  to do 6 drawing in 3 columns and 2 lines and occupy    the 4th case  small 2 3 4       keyword REMPLI   Force the drawing to occupy the biggest possible place defined by    SMALLDRAW without respect the rapport y on x       keyword YXASPECT   Force the rapport y on x to take the value RAPPORTYX YXASPECT     This keyword can be used in 2 cases:     1  YXASPECT 1 : force RAPPORTYX to be respected otherwise  Calibre take the      initiative to change it a little inthe case of the aspect rapport of SMALL      is too different of the one of SMALLDRAW       2  YXASPECT n : multiply by n the aspect rapport given by default       For example in plt  RAPPORTYX is calculated to the reference be orthonormal      to have a reference where the y axis is 2 time bigger than the x one  YXASPECT 2       keyword PORTRAIT          Force the page or the window to be in standing position        keyword LANDSCAPE          Force the page or the window on the screen to be in lenthened position        keyword _EXTRA   Used to pass your keywords      param POSFENETRE   It is a vector made of 4 elements containing the position of the frame    containing captions   the graph in normalized coordinates     Comment: to position the drawing  we have to do  p position POSFENETRE    after the call of calibre       param POSBAR   See POSFENTRE but for the color bar  Same comment to position the color bar   p position POSBAR      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr   11 12 98      version    Id: calibre pro 150 2006 08 09 10:12:54Z navarro           pro calibre  rapportyx  marge  margebar  smalldraw  posfenetre  posbar                  REMPLI   rempli  YXASPECT   yxaspect  PORTRAIT   portrait                  LANDSCAPE   lanscape  _extra   ex       compile_opt idl2  strictarrsubs    cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF        tempsun   systime 1            For key_performance      if keyword_set portrait  then key_portrait 1    if keyword_set landscape  then key_portrait 0    if keyword_set yxaspect  then begin       rapportyx rapportyx yxaspect        test2 0    endif else begin       yxaspect 1        test2 1     ENDELSE        mipgsz   min page_size  max   mapgsz      choice of Landscape or Portrait      if n_elements key_portrait  eq 0  then begin       if rapportyx ge 1 then key_portrait 1       if rapportyx lt 1 then key_portrait 0    endif     If smalldraw is count like in matlab      if n_elements smalldraw  EQ 3  then begin       if n_elements page_margins  EQ 0 then page_margins    1  1  1  1        smalldraw   long smalldraw        nbrecol   smalldraw 0        nbrelig   smalldraw 1        numero   smalldraw 2 1       numlig   numero nbrecol       numcol   numero numlig nbrecol       bas   mipgsz key_portrait mapgsz 1 key_portrait         cote   mapgsz key_portrait mipgsz 1 key_portrait         poscol   page_margins 0 findgen nbrecol 1 1 bas page_margins 0 page_margins 1 nbrecol        poslig   cote page_margins 3 findgen nbrelig 1 1 cote page_margins 2 page_margins 3 nbrelig        smalldraw    poscol numcol  poslig numlig 1  poscol numcol 1  poslig numlig     endif     determination of the size of characters  p charsize       nombre_de_mots_ds_titre   60      p charsize 1 smalldraw 2 smalldraw 0 d x_px_cm          nombre_de_mots_ds_titre   d y_ch_size     if  p charsize gt 1 then  p charsize 1     transfert of margin in cm      cm 1 d x_px_cm    marge 1  marge    d y_ch_size    p charsize   cm    margebar 1  margebar    d y_ch_size    p charsize   cm     definition of the part of the leaf where we draw      if key_portrait eq 0 then begin       big smalldraw 2 smalldraw 0        small smalldraw 3 smalldraw 1     endif else begin       small smalldraw 2 smalldraw 0        big smalldraw 3 smalldraw 1     endelse    if key_portrait eq 0 then       rapportmax 1 small marge 3 marge 1 big marge 2 marge 0       else rapportmax 1 small marge 2 marge 0 big marge 3 marge 1      If YXASPECT is not specified  we modify the value of RAPPORTYX    to it match better with the leaf s proportions       if rapportyx le rapportmax then begin       if test2 then begin          rap 1 rapportmax rapportyx          if rap ge 5  and rap lt 6  then rapportyx rapportyx 1 5          if rap ge 6  and rap lt 7  then rapportyx rapportyx 2           if rap ge 7  and rap lt 8  then rapportyx rapportyx 2 5          if rap ge 8  then rapportyx rapportyx 3        endif    endif else begin       if test2 then begin          rap 1 rapportmax rapportyx          if rap lt 1 5  and rap ge 1 6  then rapportyx rapportyx 1 5          if rap lt 1 6  and rap ge 1 7  then rapportyx rapportyx 2           if rap lt 1 7  and rap ge 1 8  then rapportyx rapportyx 2 5          if rap lt 1 8  then rapportyx rapportyx 3        endif    endelse     in the case where we do a Landscape:      if key_portrait eq 0 then begin              if keyword_set rempli  then begin          xs big          ys small       endif else begin          if rapportyx le rapportmax then begin             xs big             ys 1 big marge 0 marge 1 rapportyx marge 2 marge 3              if ys gt small then begin                xs 1 small marge 2 marge 3 rapportyx marge 0 marge 1                 ys small             endif          endif else begin             xs 1 small marge 2 marge 3 rapportyx marge 0 marge 1              ys small             if xs gt big then begin                xs big                ys 1 big marge 0 marge 1 rapportyx marge 2 marge 3              endif          endelse       endelse       xoff 1 small ys 2 smalldraw 1        yoff 1 big xs 2 xs mapgsz smalldraw 2        a 1 mapgsz yoff mapgsz       b 1 xoff mipgsz       c a 1 xs mapgsz       d b 1 ys mipgsz    endif       In the case where we do a portrait:      else begin              if keyword_set rempli  then begin          xs small          ys big       endif else begin          if rapportyx le rapportmax then begin             xs small             ys 1 small marge 0 marge 1 rapportyx marge 2 marge 3              if ys gt big then begin                xs 1 big marge 2 marge 3 rapportyx marge 0 marge 1                 ys big             endif          endif else begin             xs 1 big marge 2 marge 3 rapportyx marge 0 marge 1              ys big             if xs gt small then begin                xs small                ys 1 small marge 0 marge 1 rapportyx marge 2 marge 3              endif          endelse       endelse       xoff 1 small xs 2 smalldraw 0        yoff 1 big ys 2 smalldraw 1        a 1 xoff mipgsz       b 1 yoff mapgsz       c a 1 xs mipgsz       d b 1 ys mapgsz       xset   xoff       yset   yoff    endelse      bas mapgsz 1 key_portrait mipgsz key_portrait    cote mipgsz 1 key_portrait mapgsz key_portrait    posfenetre a b c d  marge 0 bas  marge 2 cote                              marge 1 bas marge 3 cote      posbar a b c d  margebar 0 bas  margebar 2 cote                          margebar 1 bas ys margebar 3 cote        if keyword_set key_performance  THEN print   temps calibre  systime 1 tempsun     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF        return end"); 
    291 a[289] = new Array("./ToBeReviewed/POSTSCRIPT/chcolps.html", "chcolps.pro", "", "PRO format_colortable_hexa  table     compile_opt idl2  strictarrsubs        tvlct  r  g  b   get      z   strarr 256      y   strarr 256      for k 0 255 do z k 00 strtrim string r k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2       for k 0 255 do z k 00 strtrim string g k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2       for k 0 255 do z k 00 strtrim string b k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2           table    strlowcase y   END   PRO build_table  tableout     Fabrique le bloc de colortable       compile_opt idl2  strictarrsubs        format_colortable_hexa  table       tableout   strarr 25       tableout 0     COLORTAB  def       END    PRO chcolps  n1  n2  file  PALIT1   palit1  PALIT2   palit2     Modifie les couleurs d un fichier postscript     Creation : G  Roullet 1999       recupere les palettes       compile_opt idl2  strictarrsubs       lct  n1     IF keyword_set palit1  THEN palit  palit1     tvlct  red  green  blue   get      lct  n2     IF keyword_set palit2  THEN palit  palit2     tvlct  red1  green1  blue1   get           filein   file     fileout   file new           openr  numin  filein   get_lun     openw  numout  fileout   get_lun     ligne         nl   0     colortab   0     Scan le fichier       WHILE NOT eof numin  DO BEGIN            readf  numin  ligne  format    A            nl   nl 1     Replace setrgbcolor statements             pos   strpos ligne   setrgbcolor            IF pos NE  1 THEN BEGIN                  r   round float strmid ligne  pos 18  6 255                  g   round float strmid ligne  pos 12  6 255                  b   round float strmid ligne  pos 6  6 255                            ind   where r EQ red AND g EQ green AND b EQ blue                  ind   ind 0                  IF ind 0  NE  1 THEN BEGIN                        r1   red1 ind 255                        g1   green1 ind 255                        b1   blue1 ind 255                        color   string r1  g1  b1  format    3 F5 3 : X                        strput  ligne  color  pos 18                 ENDIF ELSE BEGIN                        print   erreur ligne :  nl                       dist   abs r red abs g green abs b blue                        ind    where dist EQ min dist 0                        ind   ind 0                         print   je trouve              long r  g  b                         print   je remplace par    red ind  green ind  blue ind                        r1   red1 ind 255                        g1   green1 ind 255                        b1   blue1 ind 255                        color   string r1  g1  b1  format    3 F5 3 : X                        strput  ligne  color  pos 18                 ENDELSE            ENDIF                 Replace COLORTAB             pos   strpos ligne   COLORTAB            IF pos NE  1 THEN BEGIN                  build_table  table                 n   0                 colortab   1           ENDIF             IF colortab THEN BEGIN                 ligne   table n                  n   n 1                 IF n EQ 24 THEN colortab   0           ENDIF      Ecrit le fichier de sorti             printf  numout  ligne  format    A      ENDWHILE      close  numin     close  numout     free_lun  numin     free_lun  numout      spawn   gs  fileout  END  "); 
    292 a[290] = new Array("./ToBeReviewed/POSTSCRIPT/ps.html", "ps.pro", "", ""); 
    293 a[291] = new Array("./ToBeReviewed/STATISTICS/a_correlate2d.html", "a_correlate2d.pro", "", " FUNCTION Auto_Cov2d  X  Lag  Double   Double  zero2nan   zero2nan     compile_opt idl2  strictarrsubs      XDim   SIZE X   dimensions     nx   XDim 0     ny   XDim 1   Sample autocovariance function    Xmean   TOTAL X  Double   Double     1 nx ny       res   TOTAL   X 0:nx 1 lag 0  0:ny 1 lag 1    Xmean                       X lag 0 :nx 1  lag 1 :ny 1    Xmean                      Double   Double      if keyword_set zero2nan  AND res EQ 0 then res    values f_nan    RETURN  res  END        file_comments   This function computes the autocorrelation Px K L  or   autocovariance Rx K L  of a sample population X nx ny  as a   function of the lag  K L       categories   Statistics       param X  in required    An 2 dimension Array  nx ny       param LAG  in required    2 element vector  in the intervals  nx 2   nx 2 ny 2   ny 2    of type integer that specifies the absolute distance s  between    indexed elements of X       keyword COVARIANCE   If set to a non zero value  the sample autocovariance is computed       keyword DOUBLE   If set to a non zero value  computations are done in double precision arithmetic       history   28 2 2000 Sebastien Masson  smasson lodyc jussieu fr    Based on the A_CORRELATE procedure of IDL      version    Id: a_correlate2d pro 150 2006 08 09 10:12:54Z navarro         FUNCTION A_Correlate2d  X  Lag  Covariance   Covariance  Double   Double     compile_opt idl2  strictarrsubs     Compute the sample autocorrelation or autocovariance of  Xt  Xt l   as a function of the lag  l      ON_ERROR  2     XDim   SIZE X   dimensions     XNDim   SIZE X   n_dimensions     nx   XDim 0     ny   XDim 1     if XNDim NE 2 then       MESSAGE   X array must contain 2 dimensions   Check length     if nx lt 2 then       MESSAGE   first dimension of X array must contain 2 or more elements     if ny lt 2 then       MESSAGE   second dimension of X array must contain 2 or more elements     if n_elements Lag  NE 2 THEN       MESSAGE   Lag array must contain 2 elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    SIZE X   type  eq 5      if KEYWORD_SET Covariance  eq 0 then begin  Compute Autocorrelation        Auto   Auto_Cov2d X  ABS Lag  Double   Double                Auto_Cov2d X   0L  0L  Double   Double   zero2nan     endif else begin              Compute Autocovariance        Auto   Auto_Cov2d X  ABS Lag  Double   Double    n_elements X      endelse     if Double eq 0 then RETURN  FLOAT Auto  else       RETURN  Auto  END"); 
    294 a[292] = new Array("./ToBeReviewed/STATISTICS/a_timecorrelate.html", "a_timecorrelate.pro", "", "FUNCTION TimeAuto_Cov  X  M  nT  Double   Double  zero2nan   zero2nan  Sample autocovariance function     compile_opt idl2  strictarrsubs      TimeDim   size X   n_dimensions     Xmean   TOTAL X  TimeDim  Double   Double    nT    if double then one   1 0d ELSE one   1 0    Xmean   Xmean replicate one  nT   M         case TimeDim of       1:res   TOTAL X 0:nT   M   1L    Xmean     X M:nT   1L    Xmean                        TimeDim  Double   Double        2:res   TOTAL X  0:nT   M   1L    Xmean                           X  M:nT   1L    Xmean                          TimeDim  Double   Double        3:res   TOTAL X    0:nT   M   1L    Xmean                           X    M:nT   1L    Xmean                          TimeDim  Double   Double        4:res   TOTAL X      0:nT   M   1L    Xmean                           X      M:nT   1L    Xmean                          TimeDim  Double   Double     ENDCASE    if keyword_set zero2nan  then begin       zero   where res EQ 0        if zero 0  NE  1 then res zero     values f_nan    endif    RETURN  res  END      file_comments   Same function as A_CORRELATE but accept array  until 4   dimension  for input and do the autocorrelation or the   autocovariance along the time dimension which must be the last   one of the input array      This function computes the autocorrelation Px L  or autocovariance   Rx L  of a sample population X as a function of the lag  L       categories   Statistics       param X  in required    An Array which last dimension is the time dimension os   size n       param LAG  in required    A scalar or n element vector  in the interval  n 2   n 2    of type integer that specifies the absolute distance s  between    indexed elements of X       keyword COVARIANCE   If set to a non zero value  the sample autocovariance   is computed       keyword DOUBLE   If set to a non zero value  computations are done in   double precision arithmetic       examples         Define an n element sample population            x    3 73  3 67  3 77  3 83  4 67  5 87  6 70  6 97  6 40  5 57            Compute the autocorrelation of X for LAG    3  0  1  3  4  8           lag    3  0  1  3  4  8            result   a_correlate x  lag            The result should be:            0 0146185  1 00000  0 810879  0 0146185   0 325279   0 151684       history   24 2 2000 Sebastien Masson  smasson lodyc jussieu fr      Based on the A_CORRELATE procedure of IDL   INTRODUCTION TO STATISTICAL TIME SERIES   Wayne A  Fuller   ISBN 0 471 28715 6      version    Id: a_timecorrelate pro 150 2006 08 09 10:12:54Z navarro        FUNCTION A_TimeCorrelate  X  Lag  COVARIANCE   Covariance  DOUBLE   Double     compile_opt idl2  strictarrsubs     Compute the sample autocorrelation or autocovariance of  Xt  Xt l   as a function of the lag  l      ON_ERROR  2     XDim   SIZE X   dimensions     XNDim   SIZE X   n_dimensions     nT   XDim XNDim 1                                   Check length     if nT lt 2 then       MESSAGE   Time axis of X array must contain 2 or more elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    SIZE X   type  eq 5          if n_elements lag  EQ 0 then lag   0    nLag   N_ELEMENTS Lag      if nLag eq 1 then Lag    Lag   Create a 1 element vector      case XNDim of       1:if Double eq 0 then Auto   FLTARR nLag  else Auto   DBLARR nLag        2:if Double eq 0 then Auto   FLTARR XDim 0  nLag  else Auto   DBLARR XDim 0  nLag        3:if Double eq 0 then Auto   FLTARR XDim 0  XDim 1  nLag          else Auto   DBLARR XDim 0  XDim 1  nLag        4:if Double eq 0 then Auto   FLTARR XDim 0  XDim 1  XDim 2  nLag          else Auto   DBLARR XDim 0  XDim 1  XDim 2  nLag     endcase     if KEYWORD_SET Covariance  eq 0 then begin  Compute Autocorrelation        for k   0  nLag 1 do          case XNDim of          1:Auto k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           2:Auto  k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           3:Auto    k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           4:Auto      k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan        endcase    endif else begin              Compute Autocovariance        for k   0  nLag 1 do           case XNDim of          1:Auto k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          2:Auto  k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          3:Auto    k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          4:Auto      k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT       endcase    endelse     if Double eq 0 then RETURN  FLOAT Auto  else       RETURN  Auto  END"); 
    295 a[293] = new Array("./ToBeReviewed/STATISTICS/c_timecorrelate.html", "c_timecorrelate.pro", "", "FUNCTION TimeCross_Cov  Xd  Yd  M  nT  Ndim  Double   Double  ZERO2NAN   zero2nan    Sample cross covariance function     compile_opt hidden      case Ndim OF       1:res   TOTAL Xd 0:nT   M   1L    Yd M:nT   1L                          Double   Double        2:res   TOTAL Xd  0:nT   M   1L    Yd  M:nT   1L                          Ndim  Double   Double        3:res   TOTAL Xd    0:nT   M   1L    Yd    M:nT   1L                          Ndim  Double   Double        4:res   TOTAL Xd      0:nT   M   1L    Yd      M:nT   1L                          Ndim  Double   Double     ENDCASE    if keyword_set zero2nan  then begin       zero   where res EQ 0        if zero 0  NE  1 then res zero     values f_nan    ENDIF      RETURN  res  END      file_comments   This function computes the  time cross correlation  Pxy L  or   the  time cross covariance  between 2 arrays  this is some   kind of c_correlate but for multidimenstionals arrays  as a   function of the lag  L       categories   Statistics       param X  in required    An Array which last dimension is the time dimension of   size n  float or double       param Y  in required    An Array which last dimension is the time dimension of   size n  float or double       param LAG  in required    A scalar or n element vector  in the interval  n 2   n 2    of type integer that specifies the absolute distance s  between   indexed elements of X       keyword COVARIANCE   If set to a non zero value  the sample cross    covariance is computed       keyword DOUBLE   If set to a non zero value  computations are done in   double precision arithmetic       examples            Define two n element sample populations            x    3 73  3 67  3 77  3 83  4 67  5 87  6 70  6 97  6 40  5 57            y    2 31  2 76  3 02  3 13  3 72  3 88  3 97  4 39  4 34  3 95            Compute the cross correlation of X and Y for LAG    5  0  1  5  6  7           lag    5  0  1  5  6  7            result   c_timecorrelate x  y  lag            The result should be:            0 428246  0 914755  0 674547   0 405140   0 403100   0 339685       history           01 03 2000 Sebastien Masson  smasson lodyc jussieu fr          Based on the C_CORRELATE procedure of IDL           August 2003 Sebastien Masson          update according to the update made in C_CORRELATE by         W  Biagiotti and available in IDL 5 5           INTRODUCTION TO STATISTICAL TIME SERIES         Wayne A  Fuller         ISBN 0 471 28715 6      version    Id: c_timecorrelate pro 150 2006 08 09 10:12:54Z navarro       FUNCTION C_Timecorrelate  X  Y  Lag  Covariance   Covariance  Double   Double   Compute the sample cross correlation or cross covariance of   Xt  Xt l  and  Yt  Yt l  as a function of the lag  l      ON_ERROR  2     xsize   SIZE X     ysize   SIZE Y     nt   float xsize xsize 0     NDim   xsize 0      if total xsize 0:xsize 0  NE ysize 0:ysize 0  NE 0 then       MESSAGE   X and Y arrays must have the same size and the same dimensions    Check length     if nt lt 2 then       MESSAGE   Time dimension of X and Y arrays must contain 2 or more elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    Xsize Xsize 0 1  eq 5 or ysize ysize 0 1  eq 5      if n_elements lag  EQ 0 then lag   0    nLag   N_ELEMENTS Lag    Deviations    if double then one   1 0d ELSE one   1 0    Ndim   size X   n_dimensions     Xd   TOTAL X  Ndim  Double   Double    nT    Xd   X   Xd replicate one   nT     Yd   TOTAL Y  Ndim  Double   Double    nT    Yd   Y   Yd replicate one   nT      if nLag eq 1 then Lag    Lag   Create a 1 element vector      case NDim of       1:if Double eq 0 then  Cross   FLTARR nLag  else  Cross   DBLARR nLag        2:if Double eq 0 then  Cross   FLTARR Xsize 1  nLag  else  Cross   DBLARR Xsize 1  nLag        3:if Double eq 0 then  Cross   FLTARR Xsize 1  Xsize 2  nLag          else  Cross   DBLARR Xsize 1  Xsize 2  nLag        4:if Double eq 0 then  Cross   FLTARR Xsize 1  Xsize 2  Xsize 3  nLag          else  Cross   DBLARR Xsize 1  Xsize 2  Xsize 3  nLag     endcase     if KEYWORD_SET Covariance  eq 0 then begin  Compute Cross  Crossation        for k   0  nLag 1 do begin          if Lag k  ge 0 then BEGIN              case NDim of                1: Cross k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 2: Cross  k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 3: Cross    k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 4: Cross      k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                endcase          ENDIF else BEGIN              case NDim of                1: Cross k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 2: Cross  k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 3: Cross    k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 4: Cross      k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double               endcase          ENDELSE         ENDFOR        div   sqrt TimeCross_Cov Xd  Xd  0L  nT  Ndim  Double   Double   zero2nan                        TimeCross_Cov Yd  Yd  0L  nT  Ndim  Double   Double   zero2nan         Cross   temporary Cross temporary div replicate one  nLag     endif else begin              Compute Cross Covariance        for k   0  nLag 1 do begin          if Lag k  ge 0 then BEGIN             case NDim of                1: Cross k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                2: Cross  k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                3: Cross    k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                4: Cross      k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT             ENDCASE          ENDIF else BEGIN              case NDim of                1: Cross k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                2: Cross  k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                3: Cross    k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                4: Cross      k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT             ENDCASE          ENDELSE        endfor    endelse     if Double eq 0 then RETURN  FLOAT Cross  else RETURN   Cross  END   "); 
    296 a[294] = new Array("./ToBeReviewed/STRING/chkeywd.html", "chkeywd.pro", "", "             file_comments   In a string containing an order to executewith EXECUTE by example     We change the value of one of keywords    More generally  in a string  we look for the caracter chain:   keywdname      and we change the value of       categories   string  keywords         param STRINGIN  in required    it is a string      param KEYWDNAME  in required    it is a string designating the name of keyword to look for       param KEYWDVALUE  in required     The new value of the keyword to considerate in STRINGIN      keyword SEPARATOR   To look for the keyword  we look for the first sign   which follow    the position of keywdname  By default  we substitute the string    before the comma  With the keyword SEPARATOR we can modify the cut    of the string  SEPARATOR give a caractere before the one we have to    look for the comma which delimit the keyword in the string     see examples       keyword AFTER   To look for the keyword  we look for the first sign   which follow    the position of keywdname  By default  we substitute the string    before the comma  With the keyword AFTER we can modify the cut    of the string  AFTER give a caractere after the one we have to    look for the comma which delimit the keyword in the string     see examples       returns    stringout stringin modified if keywdname has been found in stringin      uses    common pro      restrictions   If keywdvalue is an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays  The input keyword must not contain Complex floatings  structure     Double precision complex  Pointer  Object reference  Unsigned Integer     Unsigned Longword Integer  64 bit Integer or Unsigned 64 bit Integer          examples       IDL  b ok 111  year 1997 1998 1999  age_capitaine 35      IDL  print  b     ok 111  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b ok c est bon      ok c est bon  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep after      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  b ok 111   year   age_capitaine      IDL  print  chkeywd b year c est bon      ok 111  year c est bon   age_capitaine      history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999                        24 11 1999: adaptation for keywords starting by         version    Id: chkeywd pro 142 2006 07 21 12:47:49Z navarro             FUNCTION chkeywd  stringin  keywdname  keywdvalue  SEPARATOR   separator  AFTER   after     compile_opt idl2  strictarrsubs       stringout   stringin    poskeywd   strpos strlowcase stringout  strlowcase keywdname     if poskeywd EQ  1 then return  stringout    while poskeywd NE  1 do BEGIN   change a keyword starting by  toto       if strmid stringout poskeywd 1 1  EQ   then BEGIN          ajoute   keywdname tostr keywdvalue           stringout   strmid stringout  0  poskeywd 1 ajoute strmid stringout poskeywd strlen keywdname             poskeywd   poskeywd strlen ajoute           poskeywd   strpos stringout  keywdname  poskeywd        ENDIF ELSE BEGIN    change a keyword sarting by toto           posegal   strpos stringout    poskeywd           if posegal EQ  1 then return  stringout           if NOT keyword_set separator  then separator              posvirgule   strpos stringout  separator  posegal 1           if keyword_set after  then posvirgule   strpos stringout    posvirgule 1             ELSE posvirgule   rstrpos stringout    posvirgule 1           if posvirgule EQ  1 then posvirgule   strlen stringout             stringout   strmid stringout  0  posegal 1 tostr keywdvalue strmid stringout  posvirgule             poskeywd   strpos stringout  keywdname  posvirgule 1        ENDELSE     endwhile     return   stringout end"); 
    297 a[295] = new Array("./ToBeReviewed/STRING/delchr.html", "delchr.pro", "", "         file_comments   Delete all occurrences of a character from a text string        categories      param OLD  in required    original text string        param C  in required    character to delete       keyword HELP      returns   new   resulting string        history         R  Sterner   5 Jul  1988          Johns Hopkins Applied Physics Lab          RES 11 Sep  1989   converted to SUN          R  Sterner  27 Jan  1993   dropped reference to array      Copyright  C  1988  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: delchr pro 142 2006 07 21 12:47:49Z navarro            FUNCTION DELCHR  OLD  C  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 2  or keyword_set hlp  then begin    print  Delete all occurrences of a character from a text string     print  new   delchr old  char     print    old   original text string      in     print    char   character to delete      in     print    new   resulting string          out     return   1  endif    B   BYTE OLD      convert string to a byte array   CB   BYTE C      convert char to byte   w   where b ne cb 0   if w 0  eq  1 then return        Nothing left   return  string b w      Return new string   END"); 
    298 a[296] = new Array("./ToBeReviewed/STRING/getfile.html", "getfile.pro", "", "         file_comments   Read a text file into a string array       param filein  in required    text file name        Keyword ERROR    err  error flag: 0 ok  1 file not opened    2 no lines in file                keyword QUIET    means give no error message                keyword LINES    n  Number of lines to read  def all    Much faster if number of lines is known    Automatic for IDL 5 6 or later                keyword FIND    search te file in the all  path directories  use   find pro       keyword HELP       returns       history         R  Sterner  20 Mar  1990         R  Sterner  1999 Apr 14   Added LINES n keyword          R  Sterner  2003 Aug 29   Automatic lines if IDL 5 6          R  Sterner  2003 Sep 02   Check if file exists first          R  Sterner  2003 Sep 04   Fixed error in number of lines in file          R  Sterner  2003 Oct 10   Fixed error when no lines          R  Sterner  2004 Jan 27   Fixed to work in IDL as old as vers 4            S  Masson  smasson lodyc jussieu fr  4 Feb 2002         search te file in the all  path directories  use find pro          when using  find keyword  Use spawn   cat  for unix os      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: getfile pro 142 2006 07 21 12:47:49Z navarro            function getfile  filein  error err  help hlp  quiet quiet  lines lines  find   find     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Read a text file into a string array     print  s   getfile f     print    f   text file name       in     print    s   string array         out     print  Keywords:     print    ERROR err  error flag: 0 ok  1 file not opened     print      2 no lines in file     print     QUIET means give no error message     print    LINES n  Number of lines to read  def all     print      Much faster if number of lines is known     print      Automatic for IDL 5 6 or later     return   1  endif           if keyword_set find  then begin           file   find filein            file   file 0            if file EQ  NOT FOUND  then begin             print    Error in getfile: File  filein  not fouond              return   1           endif         ENDIF ELSE file   filein         if  version os_family EQ  unix  then begin           spawn   cat  file   res           if res 0  NE   then return  res ELSE return            endif                  if  version release 0  ge 5 5  then begin           f   call_function file_search  file  count   c   endif else begin    f   findfile file count c   endelse  if c eq 0 then begin    err   1    return   endif    if n_elements line  eq 0 and  version release 0  ge 5 6  then begin    lines   file_lines file     if lines eq 0 then begin      if not keyword_set quiet  then print  No lines in file       err   2      return 1    endif    minlines   0  endif else minlines 1    get_lun  lun  on_ioerror  err  openr  lun  file    if n_elements lines  ne 0 then begin    s   strarr lines     readf lun s  endif else begin    s          t        while not eof lun  do begin      readf  lun  t      s    s t     endwhile  endelse    close  lun  free_lun  lun  if n_elements s  eq minlines then begin    if not keyword_set quiet  then print  No lines in file     err   2    return 1  endif  if minlines eq 1 then s s 1:     err   0  return  s   err: if  err eq  168 then begin    if not keyword_set quiet  then print  Non standard text file format     free_lun  lun    return  s  endif  if not keyword_set quiet  then print       Error in getfile: File  file  not opened   free_lun  lun  err   1  return   1    end"); 
    299 a[297] = new Array("./ToBeReviewed/STRING/getwrd.html", "getwrd.pro", "", "         file_comments   Return the n th word from a text string        categories      param TXTSTR  in required    text string to extract from    The first element is used if txt is an array       param NTH  in required    word number to get  first   0   def       param MTH  in required    optional last word number to get       keyword LOCATION     l   Return word n string location                keyword DELIMITER     d  Set word delimiter  def   space   tab                keyword LAST   means n is offset from last word   So n 0 gives   last word  n 1 gives next to last      If n 2 and m 0 then last 3 words are returned       keyword NOTRIM   suppresses whitespace trimming on ends        keyword NWORDS     n  Returns number of words in string        returns wrd   returned word or words       uses   getwrd_com       restrictions   If a NULL string is given  txt  then the last string   given is used   This saves finding the words again    If m   n wrd will be a string of words from word n to   word m   If no m is given wrd will be a single word    n n wrd will be a string of words from word n to     print       word m   If no m is given wrd will be a single word     print       n 0  Smaller of in and im    im   im   0   to zero     if  in gt lst  and  im gt lst  then return    Out of range     in   in   lst  Larger of in and im    im   im   lst   to be last     ll   loc in  Nth word start     return  strtrim strmid txtstr0 ll loc im loc in len im  2    endif    N   ABS NTH  Allow nth 0   IF N GT NWDS 1 THEN RETURN  out of range  null   ll   loc n  N th word position   IF NTH LT 0 THEN GOTO  NEG  Handle nth 0   IF MTH GT NWDS 1 THEN MTH   NWDS 1  Words to end     if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH  2    endelse   NEG: if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll 9999   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll 9999  2   endelse    END"); 
    300 a[298] = new Array("./ToBeReviewed/STRING/isnumber.html", "isnumber.pro", "", "         file_comments   Determine if a text string is a valid number       categories      param TXT0  in required    text string to test       param X  in required       keyword HELP      returns         x   optionaly returned numeric value if valid            i   test flag:                                               0: not a number              1: txt is a long integer              2: txt is a float               1: first word of txt is a long integer               2: first word of txt is a float        history         R  Sterner   15 Oct  1986          Johns Hopkins Applied Physics Lab          R  Sterner  12 Mar  1990   upgraded          Richard Garrett  14 June  1992   fixed bug in returned float value          R  Sterner  1999 Nov 30   Fixed a bug found by Kristian Kjaer  Denmark     Copyright  C  1986  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: isnumber pro 142 2006 07 21 12:47:49Z navarro            function isnumber  txt0  x  help hlp     compile_opt idl2  strictarrsubs     if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Determine if a text string is a valid number     print  i   isnumber txt   x     print    txt   text string to test                       in     print    x   optionaly returned numeric value if valid   out     print    i   test flag:                                  out     print        0: not a number     print        1: txt is a long integer     print        2: txt is a float     print         1: first word of txt is a long integer     print         2: first word of txt is a float     return   1  endif    txt   strtrim txt0 2  trim blanks   x   0  define X     if txt eq   then return  0  null string not a number     sn   1  if nwrds txt  gt 1 then begin  get first word if more than one     sn    1    txt   getwrd txt 0   endif      f_flag   0  Floating flag   b   byte txt  Convert to byte array   if b 0  eq 45 then b b 1:  Drop leading       Kristian Kjaer  if b 0  eq 43 then b b 1:  Drop leading       bug fix   w   where b eq 43  cnt  Look for    if cnt gt 1 then return  0  Alow only 1   t   delchr txt  Drop it   w   where b eq 45  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   t   delchr t  Drop it   w   where b eq 46  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If one then floating   t   delchr t  Drop it   w   where b eq 101  cnt  Look for  e   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t e  Drop it   w   where b eq 69  cnt  Look for  E   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t E  Drop it   w   where b eq 100  cnt  Look for  d   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t d  Drop it   w   where b eq 68  cnt  Look for  D   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t D  Drop it     Allow only one  e   E   d  or  D      if total b eq 101 b eq 69 b eq 100 b eq 68  gt 1 then return 0  b   byte t     Allow no alphabetic characters     if total b ge 65  and  b le 122  ne 0 then return  0    c   strmid t 0 1   if  c lt  0  or  c gt  9  then return  0    First char not a digit     x   txt   0 0       Convert to a float   if f_flag eq 1 then return  2 sn       Was floating   if x eq long x  then begin    x   long x     return  sn  endif else begin    return  2 sn  endelse    end"); 
    301 a[299] = new Array("./ToBeReviewed/STRING/lenstr.html", "lenstr.pro", "", "    ROUTINE:         lenstr   USEAGE:          result lenstr str      input:    str             a single string or string array       output:    result          length of the string s  in normalized units                    the number of elements of RESULT matches the number of                     elements of STRING       procedure:                    This function returns the physical length of the                    string on the output device  not the number of                    characters   This is done by first switching to  X                     and writing the string s  with XYOUTS in graphics                    mode 5  which disables display to the screen but                    does not interfere with operation of XYOUTS   The                    WIDTH keyword parameter of XYOUTS is used to                    retrieve the physical length of the string s       author:  Paul Ricchiazzi                            7apr93             Institute for Computational Earth System Science             University of California  Santa Barbara      todo seb       function lenstr str     compile_opt idl2  strictarrsubs      dsave d name     thisOS    VERSION OS_FAMILY    thisOS   STRMID thisOS  0  3     thisOS   STRUPCASE thisOS     CASE thisOS of        MAC : SET_PLOT  thisOS        WIN : SET_PLOT  thisOS       ELSE: SET_PLOT   X     ENDCASE     p BACKGROUND d n_colors 1    255     p color 0    if  d n_colors gt 256 then  p background ffffff x     device get_graphics oldg set_graphics 5    if keyword_set charsize  eq 0 then charsize 1    nn n_elements str      case nn of        0:w 0        1:xyouts 0 0 device str width w        else:begin          w fltarr nn           for i 0 nn 1 do begin             xyouts 0 0 device str i width ww             w i ww          endfor       end    endcase     fac1 float d x_ch_size d x_vsize   ratio of char width to device1 width     device set_graphics oldg    set_plot dsave    IF dsave EQ  X  OR dsave EQ  MAC  OR dsave EQ  WIN  then BEGIN        p BACKGROUND d n_colors 1    255        p color 0       if  d n_colors gt 256 then  p background ffffff x    ENDIF     fac2 float d x_ch_size d x_vsize   ratio of char width to device2 width     return w fac2 fac1             string width adjusted for device width end "); 
    302 a[300] = new Array("./ToBeReviewed/STRING/nwrds.html", "nwrds.pro", "", "         file_comments   Return the number of words in the given text string        categories      param TXTSTR     text string to examine       keyword DELIMITER     d   Set delimiter character  def   space        keyword HELP      returns   n   number of words found        restrictions   See also getwrd        history         R  Sterner   7 Feb  1985          Johns Hopkins University Applied Physics Laboratory          RES 4 Sep  1989   converted to SUN      Copyright  C  1985  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: nwrds pro 142 2006 07 21 12:47:49Z navarro              function nwrds txtstr  help hlp  delimiter delim     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Return the number of words in the given text string     print  n   nwrds txt     print    txt   text string to examine              in     print    n   number of words found                 out     print  Keywords:     print    DELIMITER   d   Set delimiter character  def   space     print  Notes: See also getwrd     return   1  endif    if strlen txtstr  eq 0 then return 0  A null string has 0 words   ddel       Default word delimiter is a space   if n_elements delim  ne 0 then ddel   delim   Use given word delimiter   tst    byte ddel 0  Delimiter as a byte value          tb   byte txtstr                                String to bytes          if ddel eq     then begin                       Check for tabs            w   where tb eq 9B  cnt                       Yes            if cnt gt 0 then tb w    32B                  Convert any to space          endif  x   tb ne tst  Locate words   x    0 x 0  Pad ends with delimiters     y    x shift x 1  eq 1  Look for word beginnings     n   fix total y  Count word beginnings     return  n    end"); 
    303 a[301] = new Array("./ToBeReviewed/STRING/putfile.html", "putfile.pro", "", "         file_comments   Write a text file from a string array        categories     INPUTS:    param FILE  in required      text file name       param S  in required      string array       keyword ERROR    err  error flag: 0 ok  1 invalid string array        history         R  Sterner  20 Mar  1990         R  Sterner   4 Nov  1992   allowed scalar strings      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: putfile pro 142 2006 07 21 12:47:49Z navarro            pro putfile  file  s  error err  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Write a text file from a string array     print  putfile  f  s     print    f   text file name       in     print    s   string array         in     print  Keywords:     print    ERROR err  error flag: 0 ok  1 invalid string array     return  endif           if lmgr demo  then begin            print   you are in Demo mode  It is impossible to write a file             return         endif     if size s   type  ne 7 then begin    print  Error in putfile: argument must be a string array     err   1    return  endif    get_lun  lun  openw  lun  file    for i   0  n_elements s 1 do begin    t   s i     if t eq   then t          printf  lun  t  endfor    close  lun  free_lun  lun  err   0  return    end"); 
    304 a[302] = new Array("./ToBeReviewed/STRING/str_size.html", "str_size.pro", "", "       file_comments   The purpose of this function is to return the proper   character size to make a specified string a specifed   width in a window  The width is specified in normalized   coordinates  The function is extremely useful for sizing   strings and labels in resizeable graphics windows       categories   Graphics Programs  Widgets       param STRING  in required    This is the string that you want to make a specifed   target size or width       param TARGETWIDTH  in optional    This is the target width of the string in normalized   coordinates in the current graphics window  The character   size of the string  returned as thisCharSize  will be   calculated to get the string width as close as possible to   the target width  The default is 0 25       keyword INITSIZE     This is the initial size of the string  Default is 1 0       keyword STEP   This is the amount the string size will change in each step   of the interative process of calculating the string size    The default value is 0 05       returns    thisCharSize  This is the size the specified string should be set   to if you want to produce output of the specified target   width  The value is in standard character size units where   1 0 is the standard character size       examples   To make the string  Happy Holidays  take up 30  of the width of   the current graphics window  type this:       XYOUTS  0 5  0 5  ALIGN 0 5   Happy Holidays        CHARSIZE STR_SIZE Happy Holidays  0 3       history   Written by: David Fanning  17 DEC 96    Added a scaling factor to take into account the aspect ratio   of the window in determing the character size  28 Oct 97  DWF      version    Id: str_size pro 142 2006 07 21 12:47:49Z navarro        FUNCTION STR_SIZE  string  targetWidth  INITSIZE initsize  STEP step     compile_opt idl2  strictarrsubs    ON_ERROR  1       Check positional parameters   np   N_PARAMS  CASE np OF    0: MESSAGE   One string parameter is required     1: targetWidth   0 25    ELSE: ENDCASE       Check keywords  Assign default values   IF N_ELEMENTS step  EQ 0 THEN step   0 05 IF N_ELEMENTS initsize  EQ 0 THEN initsize   1 0       Calculate a trial width   size   initsize XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth          CHARSIZE size   NORMAL       Size is perfect   IF thisWidth EQ targetWidth THEN RETURN  size   Float D Y_Size D X_Size       Initial size is too big   IF thisWidth GT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth LE targetWidth    RETURN  size   Float D Y_Size D X_Size ENDIF       Initial size is too small   IF thisWidth LT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth GT targetWidth    size   size   step   Need a value slightly smaller than target     RETURN  size   Float D Y_Size D X_Size ENDIF  END"); 
    305 a[303] = new Array("./ToBeReviewed/STRING/string2struct.html", "string2struct.pro", "", "    This is a really  really cool way to turn keywords into   a structure    function too_cool _extra extra     compile_opt idl2  strictarrsubs   return extra end         file_comments   Takes an input string set up as keywords and returns an anonymous structure    This is particularly useful for taking keywords entered by a user in a text   field and passing then to other routines       categories   Utility      param STRVAL  IN REQUIRED    String set up as keywords  Keywords require a little special treatment  Such as   plot findgen 100 _extra stringToStructure title testing       RETURNS    This function returns the string as an anonymous structure  If an   error was found then this function returns a structure with a null field       examples         The code below creates a widget that uses this routine          pro tPlot event         widget_control event top get_uvalue field         widget_control field get_value strVal         extra   stringToStructure strVal          plot findgen 100 _extra extra         wshow         return         end           pro testWid          enter any keyword to plot and see how it works         base   widget_base col          field   cw_field base title test value ax 0 string          void   widget_button base value plot event_pro tPlot          widget_control base realize set_uvalue field         xmanager testWid base no_block         return         end      history         Written by:         RLK  Ronn Kling Consulting          ronn rlkling com         www rlkling com                 May  1999      version    Id: string2struct pro 142 2006 07 21 12:47:49Z navarro        function string2struct strVal     compile_opt idl2  strictarrsubs   r   execute extra   too_cool    strVal 0     if r   0 then user did not enter keywords correctly so  return a structure with a null field  if r eq 0 then begin   print Error in input string    return null:0  endif return extra end "); 
    306 a[304] = new Array("./ToBeReviewed/STRING/strkeywd.html", "strkeywd.pro", "", "             file_comments   Translate a sturcture in a string able to be used to specify keywords    in the calling of a function when we use EXECUTE  see example       categories        param STRUCT   a structure      returns   a string composed like following:   For each element of the structure  we write a part of the string as:             name_of_the_element content_of_the_element       restrictions   If an element of the structure contain an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays  The input keyword must not contain Complex floatings  structure     Double precision complex  Pointer  Object reference  Unsigned Integer     Unsigned Longword Integer  64 bit Integer or Unsigned 64 bit Integer       examples   We create a structure         IDL  b get_extra ok 111  year 1997 1998 1999  age_capitaine 35          IDL  help  b struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3    We put this structure as a string         IDL  a strkeywd b          IDL  print  a         AGE_CAPITAINE 35  OK 111  YEAR 1997 1998 1999    Now we can use the string a to pass keywords in a function thanks to execute          IDL  test execute c get_extra a          IDL  help  c struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3       history   Sebastien Masson  smasson lodyc jussieu fr                         11 10 1999      version    Id: strkeywd pro 142 2006 07 21 12:47:49Z navarro             FUNCTION strkeywd  struct     compile_opt idl2  strictarrsubs      if size struct   type  NE 8 then return        tname   tag_names struct     if n_elements tname  EQ 0 then return         on s occupe du premier element      res   strlowcase tname 0 tostr struct 0     if n_elements tname  EQ 1 then return   res     on s occupe des autres elements      for n   1 n_elements tname 1 do res   res   strlowcase tname n tostr struct n       return   res end"); 
    307 a[305] = new Array("./ToBeReviewed/STRING/strrepl.html", "strrepl.pro", "", "         file_comments    replace one  or more  character s string s  in a string      categories   string routines      param STR  in required    the string to be changed      param RCHAR  in required    replacement character string      returns   another string      restrictions    Known shortcoming: if index is an array  it must contain all   valid elements  only the first entry is checked       examples            Convert one letter into upper case            abc    abcdefghijklmnopqrstuvwxyz           print strrepl abc strpos abc m M               prints  abcdefghijklMnopqrstuvwxyz                 Use with strwhere function          a    abcabcabc           print strrepl a strwhere a a               prints   bc bc bc bc bc            IDL  print  strrepl a bc eeee          a eeee a eeee a eeee          IDL  print  strrepl a b 0000          a0000ca0000ca0000         IDL  print  strrepl a toto 0000          abcabcabc      history          mgs  02 Jun 1998: VERSION 1 00          sebastien Masson  smlod ipsl jussieu fr       version    Id: strrepl pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strrepl      function strrepl str agument1 rchar     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return                                        convert strign and replace character to byte    BStr   byte str     new   byte rchar     if size agument1   type  EQ 7 then begin       old   byte agument1        index   strpos str  agument1        pos   index       while strpos str  agument1  pos 1  NE  1 do BEGIN          pos   strpos str  agument1  pos 1           index    index  pos        ENDWHILE   make sure index is in range       if  index 0  lt 0 OR index 0  ge n_elements BStr  THEN return Str    ENDIF ELSE BEGIN       index   agument1       if  index 0  lt 0 OR index 0  ge n_elements BStr  then return Str       old   BStr index 0     ENDELSE                                   replace indexed characters in string    nelenew   n_elements new     neleold   n_elements old     nindex   n_elements index     if nelenew neleold NE 1 then begin       if index 0  EQ 0 then          BStr    NEW   BStr index 0 neleold: n_elements BStr 1    ELSE          BStr    BStr 0:index 0 1  NEW   BStr index 0 neleold: n_elements BStr 1          if nindex EQ 1 then return string BStr        if nindex GT 2 then          for i   1  nindex 2 do          BStr    BStr 0:index i i nelenew neleold 1  NEW                    BStr index i i nelenew neleold neleold: n_elements BStr 1          BStr    BStr 0:index n_elements index 1 nindex 1 nelenew neleold 1  NEW      ENDIF ELSE BStr index    NEW                                   return result as string    return string BStr      end"); 
    308 a[306] = new Array("./ToBeReviewed/STRING/strright.html", "strright.pro", "", "         file_comments   return right subportion from a string      categories   string handling        param S  in required    the string to be searched      param LASTN  in required    the number of characters to be returned  Default   is 1  If NLAST is ge strlen STRING  the complete string   is returned       returns   The portion of LASTN characters of S counted from the back       examples   if  strright path  ne   then path   path          history          mgs  19 Nov 1997: VERSION 1 00      version    Id: strright pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1997  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strright      function strright s lastn     compile_opt idl2  strictarrsubs         on_error 2     return to caller       if  n_elements s  le 0  then return 1L       l   strlen s        if  n_elements lastn  le 0  then lastn   1     if lastn gt l then lastn   l       result   strmid s l lastn l        return result end"); 
    309 a[307] = new Array("./ToBeReviewed/STRING/strsci.html", "strsci.pro", "", "         file_comments   Given a number  returns a string of that          B   number in scientific notation format   e g  A x 10         categories   String Utilities      param DATA  in required    A floating point or integer number to be   converted into a power of 10       keyword FORMAT   The format specification used in the string   conversion for the mantissa  i e  the    A  of  A x 10 B   Default is  f12 2         keyword POT_ONLY   Will return only the  power of 10  part of the   string  i e  the  10 B   Default is to return   the entire string  e g   A x 10 B         keyword MANTISSA_ONLY   return only mantissa of the string      keyword SHORT   return 10 0 as  1  and 10 1 as  10       keyword TRIM   don t insert blanks  i e  return Ax10 B       restrictions   This function does not  evaluate  the format statement thoroughly   which can result in somewhat quirky strings  Example:   print strsci 9 999  results in  10 0x10 0 instead of  1 0x10 1      Need a better symbol than the  x  for the multiplier       examples          Result   STRSCI  2000000  format i1             print  result                                                                                6                prints 2 x 10 u6 n  which gets plotted as 2 x 10                     Result   STRSCI   0 0001            print  result                                                                       4                prints  1 00 x 10 u 4 n  which gets plotted as 1 00 x 10            Result   STRSCI  0d0  format f13 8             print  result                           prints  0 00000000         history          bmy  28 May 1998: VERSION 1 00            B               now returns string of the form A x 10          mgs  29 May 1998:               bug fix: now allows negative numbers               keyword MANTISSA_ONLY added               default format changed to f12 2          bmy  02 Jun 1998:               renamed to STRSCI  STRing SCIentific notation           mgs  03 Jun 1998:               added TRIM keyword          mgs  22 Sep 1998:               added SHORT keyword               modified handling of TRIM keyword          mgs  24 Sep 1998:               bug fix with SHORT flag          bmy   mgs  02 Jun 1999:               now can handle DATA 0 0 correctly               updated comments          mgs  03 Jun 1999:                can now also handle values lt 1                 and doesn t choke on arrays      version    Id: strsci pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1998  1999 Bob Yantosca and Martin Schultz     Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to bmy io harvard edu   or mgs io harvard edu with subject  IDL routine strsci      function StrSci  Data  Format Format  POT_Only POT_Only                 MANTISSA_ONLY MANTISSA_ONLY SHORT SHORT TRIM TRIM     compile_opt idl2  strictarrsubs              Error checking   Keyword settings          on_error  2     if   n_elements  Data   eq 0   then begin       return       endif     if   not Keyword_Set  Format     then Format      f12 2      POT_Only        keyword_set  POT_Only           MANTISSA_Only   keyword_set  MANTISSA_Only      Short           Keyword_Set  Short              Trim            Keyword_Set  Trim                NDat   n_elements Data     Result   strarr NDat      for i 0 NDat 1 do begin                 If ABS  DATA     0 then we can proceed to take the common log          For DATA   0  place a   sign in front of the number               if   Abs  Data i    ne 0 0   then begin                take the common log and store in LOG10DATA          Log10Data   ALog10  Abs  Data i                       Boolean flag if data   0          sign     Data i  lt 0 0                   Compute the characteristic  int part             Add the 1d 6 to prevent roundoff errors          Characteristic   Fix  Log10Data   1 0d 6            if  Log10Data lt 0  then               Characteristic   Characteristic   1                 Compute the Mantissa  frac part  and take its antilog           Mantissa   Log10Data   Characteristic           Mantissa   10 0 Mantissa           print data i log10data mantissa characteristic format 3f24 14 i8                 String for the coefficient part              The coefficient is just antilog of the Mantissa            Add the minus sign if DATA   0 0          A   StrTrim  String  Mantissa  Format Format   2            if   Sign   then A       A                String for the power of 10 part          B    10 u    strtrim  string  Characteristic   2      n           if   Short   then begin             if   Characteristic eq 0   then B    1              if   Characteristic eq 1   then B    10           endif                composite string          Result i    A     x     B          if   Short AND B eq  1  then Result i    A                         If DATA   0  then we cannot take the common log  so return         zeroes for the result strings   Use the FORMAT string                endif else begin          A        String  0d0  Format Format            B        A          Result i    A           endelse                     Return result to calling program  depending on keyword settings          Eliminate blanks if TRIM keyword is set               if   POT_Only   then            Result i    B       if   MANTISSA_Only   then            Result i    A       if   Trim   then            Result i    StrCompress  Result i   Remove_All            endfor     if  n_elements Result  eq 1  then         Result   Result 0       return  Result  end"); 
    310 a[308] = new Array("./ToBeReviewed/STRING/strtok.html", "strtok.pro", "", "         file_comments   Retrieve portion of string up to token        categories   text strings      param STRING  in required    String to be split   Contains text after    in  out   token on output        param TOKEN  in required    Token to use in splitting old              keyword TRIM    set to remove leading blanks from old    before returning       keyword HELP   print useful message and exit        returns   new     portion of string up to token               out   old     portion of old after token                  out  in      restrictions   Input parameter old is modified    Token may be one or more characters    If token is not found  returns old and sets old to         examples         If old is  foo44 bar  then strtok  old   44    would return          foo  and upon return  old will be left with   bar   If  TRIM         were set  old would be  bar  on return            If old xyz  then new strtok old a  would return with         new xyz  and old       history          Log: strtok pro v           Revision 1 3  1996 06 14 20:00:27  mcraig         Updated Copyright info            Revision 1 2  1996 05 09 00:22:17  mcraig         Added built in help            Revision 1 1  1996 01 31 18:47:37  mcraig         Initial revision     Thanks:         To D  Linder who wrote GETTOK  part of the goddard library          upon which this is based      Release:          Name: Rel_1_2       Copyright:    Copyright  C  1996 The Regents of the University of California  All    Rights Reserved   Written by Matthew W  Craig     See the file COPYRIGHT for restrictions on distrubting this code     This code comes with absolutely NO warranty  see DISCLAIMER for details       version    Id: strtok pro 142 2006 07 21 12:47:49Z navarro       FUNCTION Strtok  string  token                     TRIM trim  HELP Help     compile_opt idl2  strictarrsubs      Back to the caller if error occurs      On_error  2      IF  n_params  NE 2  OR keyword_set Help  THEN BEGIN          offset                 print  offset Retrieve portion of string up to token          print  offset new   strtok  old  token           print  offset Inputs:          print  offset offset old     String to be split   Contains text after    in  out          print  offset offset          token on output          print  offset offset token   Token to use in splitting old               in          print  offset Keywords:          print  offset offset TRIM   set to remove leading blanks from old           print  offset offset          before returning          print  offset offset HELP   print useful message and exit          print  offset Outputs:          print  offset offset new     portion of string up to token               out          print  offset offset old     portion of old after token                  out  in          print  offset Side effects:          print  offset offset Input parameter old is modified          print  offset Notes:          print  offset offset Token may be one or more characters          print  offset offset If token is not found  returns old and sets old to           print  offset Examples:          print  offset offset If old is  foo44 bar  then strtok  old   44    would return          print  offset offset    foo  and upon return  old will be left with   bar   If  TRIM          print  offset offset   were set  old would be  bar  on return            print  offset offset If old xyz  then new strtok old a  would return with          print  offset offset   new xyz  and old          return   1     ENDIF       pos   strpos string  token       IF  pos GE 0  THEN BEGIN         front   strmid string  0  pos           string   strmid string  pos   strlen token  strlen string          IF keyword_set trim  THEN string   strtrim string  1          return  front     ENDIF          front   string     string         return  front      END "); 
    311 a[309] = new Array("./ToBeReviewed/STRING/strwhere.html", "strwhere.pro", "", "         file_comments   return position  array  for occurence of a character in a string      categories   string tools      param STR  in required    the string      param SCHAR  in required    the character to look for      returns COUNT  out optional    The number of matches that were found       The function returns an index array similar to the     result of the where function      examples          ind   strwhere abcabcabc a               returns   0  3  6        history          mgs  02 Jun 1998: VERSION 1 00          bmy  30 Jun 1998:   now returns COUNT  the number                               of matches that are found  this is                              analogous to the WHERE command       version    Id: strwhere pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strwhere      function strwhere str schar Count     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return 1        convert to byte    BStr   byte Str     BSC     byte schar 0         Search for matches    Ind   where  Bstr eq BSC  Count         bmy   return where BStr eq BSC     return  Ind  end    "); 
    312 a[310] = new Array("./ToBeReviewed/STRING/tostr.html", "tostr.pro", "", "             file_comments   Convert an input in a string       categories       param INPUT  in required    input can not contain or be of the type of:       Complex floating  structure  Double precision complex  Pointer  Object     reference  Unsigned Integer  Unsigned Longword Integer  64 bit     Integer  Unsigned 64 bit Integer       returns   a string      restrictions   If keywdvalue is an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays        examples      IDL  help  tostr 1 tostr a tostr indgen 4 tostr a jkfjo           STRING       1           STRING       a           STRING       0 1 2 3           STRING       a jkfjo       IDL  print  tostr c est bon c est bon        c est bon c est bon       history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999      version    Id: tostr pro 142 2006 07 21 12:47:49Z navarro             FUNCTION tostr  input     compile_opt idl2  strictarrsubs       case 1 of       size input   type  LE 5:BEGIN           if size input   type  EQ 1 then input   long input           if n_elements input  EQ 1 then res   strtrim input  1             ELSE BEGIN              res    strtrim input 0  1              for i   1   n_elements input 1 do res   res strtrim input i  1              res   res           ENDELSE        END       size input   type  eq 7:BEGIN           if n_elements input  EQ 1 then BEGIN             sinput   strrepl input                  res    sinput           ENDIF ELSE BEGIN              res    strrepl input 0                  for i   1   n_elements input 1 do res   res strrepl input i                  res   res           ENDELSE        END       ELSE:BEGIN           ras   report la fonction tostr ne marche pas pour input qui est de type  size input   tname           res           END    ENDCASE     return  res end"); 
    313 a[311] = new Array("./ToBeReviewed/STRUCTURE/chkstru.html", "chkstru.pro", "", "       file_comments   check validity of a structure and test if necessary   fields are contained      categories   tools      param  STRUCTURE  in required    The structure to be tested  If STRUCTURE is   not of type structure  the function will return 0      param FIELDS  in required    A string or string array with field names to    be contained in STRUCTURE  CHKSTRU returns 1  true    only if all field names are contained in STRUCTURE    The entries of FIELDS may be upper or lowercase       keyword INDEX   A named variable that will contain the indices of   the required field names in the structure  They can then   be assessed through structure index i    Index will   contain  1 for all fields entries that are not in the   structure       keyword VERBOSE   set this keyword to return an error message    in case of an error       keyword EXTRACT   set this keyword to extract a fields from the   structure    1 is return is fields or structure  are   incorrect       returns   CHKSTRU returns 1 if successful  otherwise 0       examples          test     a:1  b:2  c:3            required    a c           if CHKSTRU test required  then print found a and c           IDL  print  CHKSTRU test b              1          IDL  print  CHKSTRU test b extract                  2      history          mgs  02 Mar 1998: VERSION 1 00          mgs  07 Apr 1998:   second parameter  FIELDS  now optional          12 Jan 2001: EXTRACT keyword by S  Masson  smasson lodyc jussieu fr        version    Id: chkstru pro 150 2006 08 09 10:12:54Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine chkstru      function chkstru structure fields index index verbose verbose  extract   extract     compile_opt idl2  strictarrsubs             default index      index    1          first check number of parameters  must be at least 1       if  n_params  lt 1  then begin          if keyword_set verbose  then                ras   report CHKSTRU:   invalid number of parameters              if keyword_set extract  THEN return 1 ELSE return 0           endif            check if the user really passed a structure        s   size structure       if  s 1 s 0  ne 8  then begin          if keyword_set verbose  then                ras   report CHKSTRU:   No structure passed              if keyword_set extract  THEN return 1 ELSE return 0       endif          only one parameter: then we are finished      if  n_params  eq 1  then return 1            see if required field names are contained in the structure        and return indices of these fields        names   tag_names structure       index   intarr n_elements fields    1     default index to  not found        for i 0 n_elements fields 1 do begin          ind   where names eq strupcase fields i           if  ind 0  lt 0  then begin              if keyword_set verbose  then                   ras   report CHKSTRU:   Cannot find field  fields i               endif else index i    ind 0       endfor            check minimum value of index field:  1 indicates error      if keyword_set extract  then BEGIN         if index 0  NE  1 THEN return  structure index 0  ELSE return   1      ENDIF ELSE return min index  ge 0    end  "); 
    314 a[312] = new Array("./ToBeReviewed/STRUCTURE/extractstru.html", "extractstru.pro", "", "           file_comments   extract elements of a structure to constitute a new structure       categories   utilities      param STRU  in required    A structure      param LISTE  in required    A vector of string including names of STRU to be deleted     by default  or to be kept  if KEEP is activated       keyword KEEP   Specify that the given liste concern elements of STRU to be kept       keyword DELETE:   Specify  that the given liste concern elements of STRU to be deleted    This keyword is activated by default       returns   A structure or  1 in case of problem      examples        IDL  extra get_extra ok  year 1999  age_capitaine 35        IDL  help  extra struct        Structure   3 tags  length 6  refs 1:         AGE_CAPITAINE   INT             35         OK              INT              1         YEAR            INT           1999      IDL  help  extractstru extra ok hhuihi YEAR stru        Structure   1 tags  length 2  refs 1:         AGE_CAPITAINE   INT             35      IDL  help  extractstru extra ok hhuihi YEAR keep stru        Structure   2 tags  length 4  refs 1:         OK              INT              1         YEAR            INT           1999      history   Sebastien Masson  smasson lodyc jussieu fr                         8 10 1999      version    Id: extractstru pro 150 2006 08 09 10:12:54Z navarro              FUNCTION extractstru  stru  liste  KEEP   keep  DELETE   delete     compile_opt idl2  strictarrsubs      if size stru   type  NE 8 then return    1    if size liste   type  NE 7 then return    1   cheking for keep and vire keywords    keep   keyword_set keep 1 keyword_set delete     delete   keyword_set delete 1 keyword_set keep   keyword_set delete  EQ keep       tname   tag_names stru     index   make_selection tname  strupcase liste   only_valid   quiet       if keep then BEGIN   We just keep the list       if index 0  EQ  1 then return    1       if n_elements index  EQ n_elements tname  then return  stru       res   create_struct tname index 0  stru index 0        if n_elements index  GT 1 then for i   1  n_elements index 1 do               res   create_struct res  tname index i  stru index i     ENDIF ELSE BEGIN   We delete the list       if n_elements index  EQ n_elements tname  then return    1       if index 0  EQ  1 then return  stru   We take the complementary one of index to obtain indexes we keep        index   different indgen n_elements tname  index        res   create_struct tname index 0  stru index 0        if n_elements index  GT 1 then for i   1  n_elements index 1 do               res   create_struct res  tname index i  stru index i     ENDELSE      return  res end"); 
    315 a[313] = new Array("./ToBeReviewed/STRUCTURE/mixstru.html", "mixstru.pro", "", "             file_comments   Concatenate 2 structures together  The difference with CREATE_STRUCT    is  that if the 2 structure have same elements s name  then mixstru    do not break down but choose for the common element the value    specified by the first structure       categories   structure       param STRU1  in required    Structure which can have same elements s name than    STRU2 but with a different value       param STRU2  in required    Structure which can have same elements s name than    STRU1 but with a different value       returns   A stucture      restrictions   If STRU1 or  STRU2 is not a structure  mixstru send back  1      examples              IDL  a get_extra toto ok 123        IDL  b get_extra ok 111  year 1999  age_capitaine 35        IDL  help  a b struct         Structure   2 tags  length 4  refs 1:          OK              INT            123          TOTO            INT              1         Structure   3 tags  length 6  refs 1:          AGE_CAPITAINE   INT             35          OK              INT            111          YEAR            INT           1999       IDL  help  mixstru a b struct         Structure   4 tags  length 8  refs 1:          AGE_CAPITAINE   INT             35          YEAR            INT           1999          OK              INT            123          TOTO            INT              1       IDL  help  mixstru b a struct         Structure   4 tags  length 8  refs 1:          TOTO            INT              1          AGE_CAPITAINE   INT             35          OK              INT            111          YEAR            INT           1999      history   Sebastien Masson  smasson lodyc jussieu fr                         7 10 1999      version    Id: mixstru pro 150 2006 08 09 10:12:54Z navarro             FUNCTION mixstru  stru1  stru2     compile_opt idl2  strictarrsubs    cm_general     IF size stru1   type  EQ 0 AND size stru2   type  EQ 8 THEN return  stru2    IF size stru2   type  EQ 0 AND size stru1   type  EQ 8 THEN return  stru1    if size stru1   type  NE 8 then return    1    if size stru2   type  NE 8 then return    1    tname   tag_names stru2         str        FOR i   0  n_tags stru2 1 DO str   str   tname i    stru2    strtrim i  2          res   createfunc get_extra str _extra   stru1                    kwdlist    stru1   stru1  stru2   stru2                    stru1   stru1  stru2   stru2                   filename   myuniquetmpdir  for_createfunc pro      return  res  end"); 
    316 a[314] = new Array("./ToBeReviewed/STRUCTURE/struct2string.html", "struct2string.pro", "", "              file_comments   Convert a structure to an  executable string       categories   utilities       param STRUCT  in required    A structure      keyword MAX_STRUCT_LENGTH   The maximum length of the structure   permetted to convert the structure to string  Default is   10000l       keyword DIRECT2STRING   To get a string instead an  executable string       keyword CUT_IN_STRING   Try it      restrictions   Use tostr pro  cf this function header       examples          IDL  print  struct2string d         create_struct NAME X X_SIZE 891 Y_SIZE 630 X_VSIZE          891 Y_VSIZE 630 X_CH_SIZE 6 Y_CH_SIZE 10 X_PX_CM          40 0000 Y_PX_CM 40 0000 N_COLORS 16777216 TABLE_SIZE           256 FILL_DIST 1 WINDOW 32 UNIT 0 FLAGS 328124 ORIGIN          0 0 ZOOM 1 1       history   Sebastien Masson  smasson lodyc jussieu fr                         2000 07 03      version    Id: struct2string pro 150 2006 08 09 10:12:54Z navarro             FUNCTION struct2string  struct  CUT_IN_STRING   cut_in_string  MAX_STRUCT_LENGTH   max_struct_length  DIRECT2STRING   direct2string      compile_opt idl2  strictarrsubs      if size struct   type  NE 8 then return        if NOT keyword_set max_struct_length  then max_struct_length   10000l    if n_tags struct   length  GT max_struct_length then begin       rien   report The structure is too big to be converted to string   C See the MAX_STRUCT_LENGTH keyword        return       endif    names   tag_names struct     case 1 of       keyword_set direct2string :BEGIN          res   names 0 tostr struct 0           if n_tags struct  GT 1 then begin             FOR i   1  n_tags struct 1 do begin                res   res   names i tostr struct i              endfor          endif                 END       keyword_set CUT_IN_STRING :BEGIN          res    create_struct names 0 tostr struct 0           if n_tags struct  GT 1 then begin             FOR i   1  n_tags struct 1 do begin                res    res   create_struct res names i tostr struct i              endfor          endif       END       ELSE:BEGIN          res    create_struct names 0 tostr struct 0           if n_tags struct  GT 1 then begin             FOR i   1  n_tags struct 1 do begin                res   res names i tostr struct i              endfor          endif          res   res        END    endcase    return  res end"); 
    317 a[315] = new Array("./ToBeReviewed/STRUCTURE/where_tag.html", "where_tag.pro", "", "     file_comments   Like WHERE but works on structure tag names   Obtain subscripts of elements in structure array for which   a particular Tag has values in a range or matching specified values    Like the WHERE function but for use with structures       categories   Structures      param STRUCT  in required    structure array to search       keyword TAG_NAME   Scalar string specifying Tag Name       keyword TAG_NUMBER   Otherwise give the Tag Number        keyword RANGE     min max  range to search for in Struct       keyword VALUES   One or array of numbers to match for in Struct        keyword ISELECT   Specifies indices to select only part of structure array     use it to recycle subscripts from previous searches        keyword NOPRINT   Suppress informational messages about nothing found       returns   Nfound  out      of occurences found        restrictions   User  must  specify  1  TAG_NAME or TAG_NUMBER to search  and  2    the VALUES or RANGE to search on       examples         Suppose STR is a structure with tags CAT_NO:indgen 10  and                  NAME:strarr 10    Find the indices where STR CAT_NO is                 between 3 and 5            IDL  print  WHERE_TAG  str  TAG_NAME    CAT_NO  VALUE    3 4 5      or         IDL  print  WHERE_TAG  str  TAG_NUM   0  RANGE    3 5        history         written 1990 Frank Varosi STX   NASA GSFC         Stop printing  Tag  not found  with  NOPRINT  CD Pike 8 Jun 93      version    Id: where_tag pro 150 2006 08 09 10:12:54Z navarro        function where_Tag  Struct  Nfound      TAG_NAME Tag_Name                                                 TAG_NUMBER Tag_Num                                                ISELECT ipart  NOPRINT noprint                                            RANGE range  VALUES values  First check required parameters      compile_opt idl2  strictarrsubs            Ntag   N_tags  Struct            if  Ntag LE 1  then begin                 message expecting a Structure Array  try again CONTIN                 return 1             endif          if  N_elements  Tag_Num   NE 1  AND               N_elements  Tag_Name   NE 1  then begin                 message specify TAG_NAME  or TAG_NUMBER  to search CONTIN                 return 1             endif          Tags   Tag_names  Struct            if N_elements  Tag_Name   EQ 1 then begin                 Tag_Name   strupcase  Tag_Name                   Tag_Num   where  Tags EQ Tag_Name                   Tag_Num   Tag_Num 0                  if  Tag_Num LT 0  then begin                  if NOT keyword_set  noprint   then                           message Tag  not found CONTIN                         return 2                     endif            endif          if  Tag_Num LT 0  OR  Tag_Num GE Ntag  then begin                 message Tag      strtrim Tag_Num 2      exceeds Max Tag                                strtrim Ntag 1 2      in structure CONTIN                 return 1             endif          if N_elements  ipart   GT 0 then begin           check if any searching                                                           on a subset of input                  w   where  ipart GE 0  nf                   if  nf LE 0  then return 1                  if  nf LT N_elements  ipart   then ipart   ipart w             endif   Now find out where for RANGE :          if N_elements  range   EQ 2 then begin                  if N_elements  ipart   GT 0 then begin                       w   where   Struct ipart Tag_Num  GE range 0  AND                                    Struct ipart Tag_Num  LE range 1  Nfound                         if  Nfound GT 0  then windex   ipart w  else windex   w                   endif                     else  windex   where   Struct Tag_Num  GE range 0  AND                                            Struct Tag_Num  LE range 1  Nfound                    if  Nfound LE 0  AND  NOT keyword_set  noprint     then begin                         strnums   strtrim  range  2                           string   strnums 0        strnums 1                          message  NO values of  found in the Range     string    CONTIN                    endif  where Values:           endif else if N_elements  values   GE 1 then begin                  Nval   N_elements  values                   vals    values                  Nfound   0                  if N_elements  ipart   GT 0 then begin                      for v 0 Nval 1 do begin                         w   where  Struct ipart Tag_Num  EQ vals v  Nf                           if  Nf GT 0  then begin                                 if  Nfound GT 0  then ww    ww w  else ww   w                            endif                         Nfound   Nfound   Nf                       endfor                      if  Nfound GT 0  then windex   ipart ww sort  ww                                          else windex   w                   endif else begin                      for v 0 Nval 1 do begin                         w   where  Struct Tag_Num  EQ vals v  Nf                           if  Nf GT 0  then begin                                 if  Nfound GT 0  then ww    ww w  else ww   w                            endif                         Nfound   Nfound   Nf                       endfor                      if  Nfound GT 0  then windex   ww sort  ww                                          else windex   w                    endelse                  if  Nfound LE 0  AND  NOT keyword_set  noprint     then begin                         strnums   strtrim  vals  2                           string   strnums 0                          for i 1 Nval 1 do string   string       strnums i                          message  NO values of  found Equaling     string    CONTIN                    endif             endif else begin                  message must specify a RANGE   or VALUES s CONTIN                 windex 1              endelse  return  windex end"); 
    318 a[316] = new Array("./ToBeReviewed/TRIANGULATION/ciseauxtri.html", "ciseauxtri.pro", "", "           file_comments    Delete arrays which do not have to be drawn thanks to 2 tests:       1  Corners of the array must be in the window       2  Lenghtes of side of triangles expressed in normalized           coordinates must not surpass a sill lenght        categories      param TRIANG       param GLAM       param GPHI       keyword ALL       keyword _EXTRA   Used to pass your keywords       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          20 2 99      version    Id: ciseauxtri pro 150 2006 08 09 10:12:54Z navarro              FUNCTION ciseauxtri  triang  glam  gphi  ALL   all  _EXTRA   ex       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     IF NOT keyword_set key_periodic  AND NOT keyword_set key_irregular        AND NOT  map projection LE 7 AND  map projection NE 0        AND NOT  map projection EQ 14 OR  map projection EQ 15                OR  map projection EQ 18  THEN return  triang      tempsun   systime 1            For key_performance      taille   size glam     nx   taille 1     ny   taille 2      tempdeux   systime 1           For key_performance  2    z   convert_coord glam gphi data to_normal      x   z 0       y   z 1       tempvar   SIZE TEMPORARY z    delete z    IF testvar var   key_performance  EQ 2 THEN       print   temps ciseauxtri: convert_coord data to_normal  systime 1 tempdeux     Beware  following the projection  some points x or y can become NaN     see points behind the Earth in an orthographic projection     In this case  we have to remove all triangle which contain one of these points       if  map projection LE 7 AND  map projection NE 0        OR  map projection EQ 14 OR  map projection EQ 15 OR  map projection EQ 18 then begin       tempdeux   systime 1        For key_performance  2         test    x y triang        test   finite temporary test   nan        test   total temporary test  1        ind   where temporary test  EQ 0          if ind 0  NE  1 then triang   triang  temporary ind  ELSE return    1       trichanged   1b       IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: recherche points a NAN  systime 1 tempdeux    endif      seuil   5  indxtriang2       indxtriang   indxmin    nx 1 indxmin EQ 0 AND indxmax EQ  nx 1        ENDIF ELSE indxtriang   indxmin        listrect   nx indytriang indxtriang       IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: liste des rectangles  systime 1 tempdeux     Now we have this list  we will make sure that we do not have triangles    with only a common summit          test   bytarr nx  ny        test listrect    1       dejavire   1b test         tempdeux   systime 1        For key_performance  2       vire1   0       vire2   0       while  vire1 0  NE  1 OR vire2 0  NE  1  ne 0 do begin          vire1   where   test shift test   1   1                              1 shift test  0   1 1 shift test   1  0  EQ 1           if vire1 0  NE  1 THEN test vire1    0   We delete the rectangle          vire2   where   1 test 1 shift test   1   1                              shift test  0   1 shift test   1  0  EQ 1    We delete the top rectangle  same x index but equal to 1           if vire2 0  NE  1 THEN test vire2 nx    0        ENDWHILE  stop       test   test temporary dejavire          avirer   where temporary test  EQ 0        IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: determinationdes rectangles a virer  systime 1 tempdeux         if avirer 0  NE  1 then begin       tempdeux   systime 1        For key_performance  2       indnx   n_elements listrect        indny   n_elements avirer        ind   listrect replicate 1l  indny         ind   ind EQ replicate 1  indnx avirer        if indny GT 1 then ind   total ind  2        ind   where ind EQ 0        if ind 0  NE  1 then triang   triang  ind  ELSE return    1       endif       IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: derniere retouche de la triangulation  systime 1 tempdeux    endif            if keyword_set key_performance  THEN print   temps ciseauxtri  systime 1 tempsun       return   triang end"); 
    319 a[317] = new Array("./ToBeReviewed/TRIANGULATION/completecointerre.html", "completecointerre.pro", "", "PRO draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex     compile_opt idl2  strictarrsubs    cm_4mesh   the triangle must not be out of the domain   IF min lons  max   maxlon  GE lon1 AND maxlon LE lon2       AND min lats  max   maxlat  GE lat1 AND maxlat LE lat2 then BEGIN   the triangle must not be too big      z   convert_coord lons  lats   data   to_normal       alldist    z 0  2 z 0  0 2    z 1  2 z 1  0 2                     z 0  0 z 0  1 2    z 1  0 z 1  1 2                     z 0  1 z 0  2 2    z 1  1 z 1  2 2      IF max alldist  LT seuil 2 THEN polyfill  lons  lats           color   cont_color  _extra   ex     return   ENDIF  end              file_comments   To color cleanly continents      categories   graphic      keyword _EXTRA   Used to pass your keywords       keyword CONT_COLOR   The color of the continent  defaut value is    d n_colors   1   white      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         01 10 1999      version    Id: completecointerre pro 150 2006 08 09 10:12:54Z navarro             PRO completecointerre  COINMONTE   coinmonte  COINDESCEND   coindescend                            CONT_COLOR   cont_color  INDICEZOOM   indicezoom                            _extra   ex     compile_opt idl2  strictarrsubs    common       if NOT keyword_set coinmonte  then return     if NOT keyword_set coindescend  then return     if NOT keyword_set indicezoom  then return   tempsun   systime 1             For key_performance     definitions of vectors coinmont and coindesc     if keyword_set coinmonte  then coinmont   coinmonte     ELSE coinmont   twin_corners_up   if keyword_set coindescend  then coindesc   coindescend     ELSE coindesc   twin_corners_dn   IF NOT keyword_set cont_color  THEN cont_color    d n_colors 1     255     definition of coordinates of points numbered 1 2 3 4 5 6  see figures below      tempdeux   systime 1            For key_performance  2   if coinmont 0  NE  1 OR coindesc 0  NE  1 then BEGIN     if keyword_set indicezoom  then BEGIN   if we use key_stide  the t  u  v and f points are no more related to   the same cell because glamf and gphif has be recomputed to be in the   middle of two t points       IF total key_stride  EQ 3 AND finite glamv 0 gphiv 0  NE 0 THEN BEGIN         long1   glamv indicezoom    lati1   gphiv indicezoom        ENDIF ELSE BEGIN          long1   glamt indicezoom    lati1   gphif indicezoom        ENDELSE       IF total key_stride  EQ 3 AND finite glamu 0 gphiu 0  NE 0 THEN BEGIN         long2   glamu indicezoom    lati2   gphiu indicezoom        ENDIF ELSE BEGIN         long2   glamf indicezoom    lati2   gphit indicezoom        ENDELSE       long3   glamf indicezoom    lati3   gphif indicezoom      ENDIF ELSE BEGIN        IF total key_stride  EQ 3 AND finite glamv 0 gphiv 0  NE 0 THEN BEGIN         long1   glamv   lati1   gphiv       ENDIF ELSE BEGIN          long1   glamt   lati1   gphif       ENDELSE       IF total key_stride  EQ 3 AND finite glamu 0 gphiu 0  NE 0 THEN BEGIN         long2   glamu   lati2   gphiu       ENDIF ELSE BEGIN          long2   glamf   lati2   gphit       ENDELSE       long3   glamf   lati3   gphif     ENDELSE        nx    size long1   dimensions 0      ny    size long1   dimensions 1      seuil   5    min nx  ny 2      seuil   min p position 2 p position 0 seuil                       p position 3 p position 1 seuil      ENDIF     IF testvar var   key_performance  EQ 2 THEN       print   temps completecointerre: positions des points  systime 1 tempdeux       Case land corner in ascent:        2 land points in diagonal ascending with 2 ocean points on the descendant diagonal                          4           t i nx 1    u i nx        t i nx 1 0                                                                         1         3                  5         v i f i v i 1                                                                                 t i 0       2 u i           t i 1 1       if coinmont 0  NE  1 then BEGIN     tempdeux   systime 1          For key_performance  2     for id   0  n_elements coinmont 1 do BEGIN       i   coinmont id        ii   i MOD nx       ij   i nx   bottom triangle       lons    long1 i  long2 i  long3 i        lats    lati1 i  lati2 i  lati3 i        draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex   upper triangle       IF ii NE nx 1 AND ij NE ny 1 THEN BEGIN         lons    long3 i  long1 i 1  long2 i nx          lats    lati3 i  lati1 i 1  lati2 i nx          draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex       ENDIF      ENDFOR      IF testvar var   key_performance  EQ 2 THEN         print   temps completecointerre: trace de cointerremonte  systime 1 tempdeux   ENDIF     Case land corner in descent:        2 land points in diagonal descending with 2 ocean points on the ascendant diagonal                           4       t i nx 1    u i nx        t i nx 1 0                                                                                      3                  5         v i f i v i 1            1                                                                                                  t i 0      2 u i           t i 1 1     if coindesc 0  NE  1 then begin     tempdeux   systime 1          For key_performance  2     for id   0  n_elements coindesc 1 do BEGIN       i   coindesc id        ii   i MOD nx       ij   i nx       IF ii NE nx 1 AND ij NE ny 1 THEN BEGIN   left triangle         lons    long1 i  long3 i  long2 i nx          lats    lati1 i  lati3 i  lati2 i nx          draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex   right triangle         lons    long3 i  long2 i  long1 i 1          lats    lati3 i  lati2 i  lati1 i 1          draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex       ENDIF     ENDFOR     IF testvar var   key_performance  EQ 2 THEN         print   temps completecointerre: trace de cointerredescend  systime 1 tempdeux   ENDIF      IF keyword_set key_performance  THEN print   temps completecointerre  systime 1 tempsun      return end"); 
    320 a[318] = new Array("./ToBeReviewed/TRIANGULATION/definetri.html", "definetri.pro", "", "       file_comments   efine a triangulation array like TRIANGULATE             But in a VERY SIMPLE CASE:   the points are regulary gridded on nx ny array    Find a Delaunay triangulation for this set of points is easy:   Points define  nx 1 ny 1  rectangles which we can cut in 2   triangles  cf  figure above            ny 1                                                                                                                                            ny 2                                                                                                                                                    1                                                                                                                                         0                         0   1   2        nx 3  nx 2 nx 1      You have 2 ways to cut a rectangle:        1  the upward diagonal       2  the downward diagonal                                                                                                                                                                                                                              categories   utilities       param NX  in required    The x dimension array      param NY  in required    The y dimension array      param DOWNWARD  in optional    When downward is undefine all rectangles are cut   in using the upward diagonal  Downward is a vector which   contains the rectangles numbers which are cut in using the   downward diagonal    The rectangle number is define by the index  in a nx ny   vector  of the lower left corner of the rectangle       returns   triangles is a 2d array and is dimensions are 3 and   2 nx 1 ny 1    triangles is define like in the TRIANGULATE procedure       examples     triangles definetri 3 3 1 3    triangles will be a this kind of triangulation:                                                                                                                                                                       history   sebastien Masson  smlod ipsl jussieu fr                          4 3 1999      version    Id: definetri pro 150 2006 08 09 10:12:54Z navarro     FUNCTION definetri  nx  ny  downward     compile_opt idl2  strictarrsubs      nx   long nx     ny   long ny     if n_elements downward  NE 0 THEN BEGIN        if n_elements downward  GT  nx 1 ny 1  then begin          print   downward a trop d elements par rapport a nx et ny           return    1       endif       downward   long downward     ENDIF   we define triangles     triangles   lonarr 3  2 nx 1 ny 1      we cut the rectangles with the upward diagonal      if n_elements downward  NE  nx 1 ny 1  then BEGIN   there is some rectangle to cut    we define upward: upward is a vector which contains the rectangles   numbers which are cut in using the upward diagonal    The rectangle number is define by the index  in a nx ny vector  of   the lower left corner of the rectangle        upward   bytarr nx  ny 1       upward  ny 1    0       upward nx 1      0       if n_elements downward  NE 0 then upward downward    0       upward   where upward EQ 1        n1   n_elements upward       4 corners indexes of a rectangle number i are           i nx  i nx 1                                                                                                                                                                                   i   i 1         trinumber   2 upward upward nx    we define the right triangles       triangles 0  trinumber    upward       triangles 1  trinumber    upward 1       triangles 2  trinumber    upward 1 nx   we define the left triangles       triangles 0  trinumber 1    upward 1 nx       triangles 1  trinumber 1    upward nx       triangles 2  trinumber 1    upward    ENDIF ELSE n1   0     we cut the rectangles with the downward diagonal      if n_elements downward  NE 0 then BEGIN       n2   n_elements downward         trinumber   2 downward downward nx    we define the right triangles       triangles 0  trinumber    downward 1       triangles 1  trinumber    downward nx 1       triangles 2  trinumber    downward nx   we define the left triangles       triangles 0  trinumber 1    downward nx       triangles 1  trinumber 1    downward       triangles 2  trinumber 1    downward 1    endif     return  triangles end"); 
    321 a[319] = new Array("./ToBeReviewed/TRIANGULATION/definetri_e.html", "definetri_e.pro", "", "function numtri  index  nx  ny     compile_opt idl2  strictarrsubs       y index nx    x index y nx    numtri    y NE 0 nx 1 2 y 1 1     2 y EQ  ny 1  OR y EQ  ny 1 x     return  numtri end          file_comments   Define a triangulation array like TRIANGULATE but for a   E grid type      categories   Make contours with E grid type       param NX  in required    The x dimension array      param NY  in required    The y dimension array      param SINGULAR  in optional    When singular is undefined all rectangles are cut   in using the vertical diagonal  Singular is a vector which   contains the rectangles numbers which are cut in using the   horizontal diagonal    The rectangle number is define by the index  in a nx ny   vector  of the lower left corner of the rectangle       keyword SHIFTED        returns   Triangles is a 2d array and is dimensions are 3 and    nx 1 ny 1    Triangles is defined like in the TRIANGULATE procedure               history   Sebastien Masson  smlod ipsl jussieu fr                          June 2001      version    Id: definetri_e pro 150 2006 08 09 10:12:54Z navarro        todo    seb: documenter SHIFTED   FUNCTION definetri_e  nx  ny  singular  SHIFTED   shifted     compile_opt idl2  strictarrsubs      nx   long nx     ny   long ny     triangles   lonarr 3  2 nx 1 ny 1      build the base triangulation with the diamond cut in two triangles   by the vertical diagonal     first line    index   lindgen nx 1     trinumber   index    triangles 0  trinumber    index    triangles 1  trinumber    index 1    triangles 2  trinumber    index nx 1 shifted    last line    index    ny 1 nx lindgen nx 1     trinumber   numtri index  nx  ny     triangles 0  trinumber    index    triangles 1  trinumber    index nx index nx 1 shifted  MOD 2     triangles 2  trinumber    index 1   other lines    if ny GT 2 then begin       index   lindgen nx  ny        index   index 0:nx 2  1:ny 2        index   index        oddeven    index nx 1 shifted  MOD 2       trinumber   numtri index  nx  ny        triangles 0  trinumber    index       triangles 1  trinumber    index nx oddeven       triangles 2  trinumber    index nx oddeven       triangles 0  trinumber 1    index nx oddeven       triangles 1  trinumber 1    index nx oddeven       triangles 2  trinumber 1    index 1    endif     cut the diamond specified by singular in two triangles   by the horizontal diagonal      IF keyword_set singular  then BEGIN       yindex   singular nx       otherline   where yindex NE 0 AND yindex NE  ny 1        if otherline 0  NE  1 then begin          index   singular otherline           oddeven    index nx 1 shifted  MOD 2          trinumber   numtri index  nx  ny           triangles 0  trinumber    index          triangles 1  trinumber    index nx oddeven          triangles 2  trinumber    index 1          triangles 0  trinumber 1    index          triangles 1  trinumber 1    index 1          triangles 2  trinumber 1    index nx oddeven       endif     endif    return  triangles end "); 
    322 a[320] = new Array("./ToBeReviewed/TRIANGULATION/dessinetri.html", "dessinetri.pro", "", "             file_comments   Draw the triangulation      categories   utilities       param TRI  in optional    Array which define the triangulation  provided by triangule pro or triangulate        param X  in optional    The x position of points to which the trangulation refer to     see the x array provided in triangulate       param Y  in optional    The y position of points to which the trangulation refer to     see the y array provided in triangulate       keyword WAIT    x  to call wait x second between each triangle draw       keyword ONEBYONE   To draw the triangles one by one      keyword FILL   To fill the triangles  using polyfill  instead of plotting them      keyword CHANGECOLOR    n  To change the color of each traingle  n colors   will be used and repeted if necessary       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: dessinetri pro 150 2006 08 09 10:12:54Z navarro              PRO dessinetri  tri  x  y  WAIT   wait  ONEBYONE   onebyone  FILL   fill  CHANGECOLOR   changecolor  _extra   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1             For key_performance    a        if n_params  EQ 3 then BEGIN      CASE size x   n_dimensions size y   n_dimensions  OF        2:BEGIN          nx   n_elements x            ny   n_elements y            glam   x replicate 1  ny           gphi   replicate 1  nx y        END         4:BEGIN          glam   x          gphi   y        END        ELSE:BEGIN          dummy   report x and y inputs of dessinetri must have the same number of dimensions  1 or 2           return        END      ENDCASE    ENDIF ELSE BEGIN        grille mask glam gphi  tri   tri       undefine  mask       tri   ciseauxtri tri  glam  gphi     ENDELSE       IF keyword_set changecolor  THEN BEGIN       oldname    d name       if  d name EQ  PS  OR  d name EQ  Z  then BEGIN           thisos   strupcase strmid version os_family  0  3           CASE thisOS of              MAC : set_plot  thisOS              WIN : set_plot  thisOS             ELSE: set_plot   X           ENDCASE          ncolors d n_colors 1    255          set_plot  oldname        ENDIF ELSE ncolors d n_colors 1    255        color   1 indgen changecolor ncolors changecolor 1       ENDIF ELSE color   0      color   color replicate 1  n_elements tri 3 n_elements color 1        tempdeux   systime 1            For key_performance  2    for i   0L  n_elements tri 3 1 do begin       t    tri  i  tri 0  i        IF keyword_set fill  THEN           polyfill  glam t  gphi t  color   color i  _extra   ex         ELSE plots  glam t  gphi t  color   color i  _extra   ex       IF keyword_set wait  THEN wait  wait       IF keyword_set onebyone  THEN read  a  prompt    press a key     ENDFOR    IF testvar var   key_performance  EQ 2 THEN       print   temps dessinetri: trace des triangles  systime 1 tempdeux      if keyword_set key_performance  THEN print   temps dessinetri  systime 1 tempsun      return end"); 
    323 a[321] = new Array("./ToBeReviewed/TRIANGULATION/drawcoast_c.html", "drawcoast_c.pro", "", "     file_comments        categories         param MASK         param XF         param YF         param NX         param NY         keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thick of the trait to trace continents   By default  it is 1       keyword XSEUIL   To eliminate segments of coasts which are to big  which link points which can    be close on the sphere but distant on the drawing  We delete all segments    whose the size surpass the size of the window following X XSEUIL  By default     XSEUIL 5  But it can be to big if we do a big zoom or a little one for some    projections  We specify it the keyword thanks to this keyword       keyword YSEUIL   See XSEUIL       keyword _EXTRA   Used to pass our keywords        returns          uses          restrictions          examples          history          version        todo    Seb: remplir le header       PRO drawcoast_c  mask  xf  yf  nx  ny  COAST_COLOR   coast_color  COAST_THICK   coast_thick  YSEUIL   yseuil  XSEUIL   xseuil  _extra   ex     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      tempsun   systime 1            For key_performance       We trace vertical segments:      if NOT keyword_set yseuil  then yseuil   5     min nx  ny 2     distanceseuil    p position 3 p position 1 yseuil   list: list of points i for which we will trace a segment between the point i j 1 and i j    tempdeux   systime 1           For key_performance  2    liste   where mask shift mask   1  0  EQ 1                    AND  xf shift xf  0  1 2 yf shift yf  0  1 2  LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN   We recuperate lx an dly which are indexes in a 2d array of points given by list       ly   liste nx   lx   temporary liste nx ly       indice   where ly NE 0      We do not take points concerning       if indice 0  NE  1 then begin   the first line because in this case  the point j 1 is undefined           lx   lx indice    ly   ly temporary indice    Loop on concerned points and drawing of the segment    Comment: we use plots instead of plot because plots goes faster           IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: determiner liste des points concernes par un trait vertical  systime 1 tempdeux          tempdeux   systime 1     For key_performance  2          for pt   0L  n_elements lx 1 do BEGIN              i   lx pt    j   ly pt              plots   xf i  j 1  xf i  j   yf i  j 1  yf i  j                    color   coast_color  thick   coast_thick   normal  _extra   ex          endfor          IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: trace des traits verticaux  systime 1 tempdeux       endif    ENDIF     For the drawing of horizontal segments   it is the same thing but we have to be careful if it is periodic      If it is periodic  we duplicate the first column and we put it at the end      This is made not for the shift which is periodic by default but for the plots     tempdeux   systime 1           For key_performance  2    if keyword_set key_periodic  AND nx EQ jpi then begin       mask    mask  mask 0          xf    xf  xf 0          yf    yf  yf 0          nx   nx 1    ENDIF    if NOT keyword_set xseuil  then xseuil   5     min nx  ny 2     distanceseuil    p position 2 p position 0 xseuil    liste   where mask shift mask  0   1  EQ 1                    AND  xf shift xf  1  0 2 yf shift yf  1  0 2  LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN       ly   liste nx   lx   temporary liste nx ly       indice   where ly NE ny 1 AND lx NE 0        if indice 0  NE  1 then begin   We do not take points of the first column and of the last line  because we added artificially           lx   lx indice    ly   ly temporary indice           IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: determiner liste des points concernes par un trait horizontal  systime 1 tempdeux          tempdeux   systime 1     For key_performance  2          for pt   0L  n_elements lx 1 do BEGIN              i   lx pt    j   ly pt              plots   xf i 1  j  xf i  j   yf i 1  j  yf i  j                    color   coast_color  thick   coast_thick   normal  _extra   ex          endfor          IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: trace des traits horizontaux  systime 1 tempdeux       endif    endif      if keyword_set key_performance  THEN print   temps drawcoast_c  systime 1 tempsun    return end"); 
    324 a[322] = new Array("./ToBeReviewed/TRIANGULATION/drawcoast_e.html", "drawcoast_e.pro", "", "     file_comments        categories         param MASK         param XF         param YF         param NX         param NY         keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thick of the trait to trace continents   By default  it is 1       keyword XSEUIL   To eliminate segments of coasts which are to big  which link points which can    be close on the sphere but distant on the drawing  We delete all segments    whose the size surpass the size of the window following X XSEUIL  By default     XSEUIL 5  But it can be to big if we do a big zoom or a little one for some    projections  We specify it the keyword thanks to this keyword       keyword YSEUIL   See XSEUIL      keyword _EXTRA   Used to pass our keywords        returns          uses          restrictions          examples          history          version       todo   Seb: remplir le header       PRO drawcoast_e  mask  xf  yf  nx  ny  COAST_COLOR   coast_color  COAST_THICK   coast_thick  YSEUIL   yseuil  XSEUIL   xseuil  onemore   onemore  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      tempsun   systime 1            pour key_performance      if keyword_set key_periodic  AND nx EQ jpi then begin       mask    mask  mask 0          xf    xf  xf 0          yf    yf  yf 0          nx   nx 1    ENDIF     we plot the borders of the diamond in this sense :        if NOT keyword_set onemore  then onemore   0    if NOT keyword_set xseuil  then xseuil   5     min nx  ny 2     distanceseuil    p position 2 p position 0 xseuil   liste: liste des points i pourlesquels on va tracer un segment     index   lindgen nx  ny     index   index 0:nx 2  1:ny 1     indexbis   index nx index nx onemore  MOD 2     liste   where mask index 1 mask indexbis  EQ 1                    AND  xf index xf indexbis 2 yf index yf indexbis 2 LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN       index   index liste        indexbis   indexbis liste        for pt   0  n_elements index 1 do begin          plots   xf index pt  xf indexbis pt   yf index pt  yf indexbis pt                 color   coast_color  thick   coast_thick   normal  _extra   ex       endfor    ENDIF     we plot the borders of the diamond in this sense :        if NOT keyword_set xseuil  then xseuil   5     min nx  ny 2     distanceseuil    p position 2 p position 0 xseuil   liste: liste des points i pourlesquels on va tracer un segment     index   lindgen nx  ny 1     index   index 0:nx 2       indexbis   index nx index nx onemore  MOD 2     liste   where mask index 1 mask indexbis  EQ 1                    AND  xf index xf indexbis 2 yf index yf indexbis 2 LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN       index   index liste        indexbis   indexbis liste        for pt   0  n_elements index 1 do begin          plots   xf index pt  xf indexbis pt   yf index pt  yf indexbis pt                 color   coast_color  thick   coast_thick   normal  _extra   ex       endfor    ENDIF       if keyword_set key_performance  THEN print   temps drawcoast_e  systime 1 tempsun    return end"); 
    325 a[323] = new Array("./ToBeReviewed/TRIANGULATION/drawsectionbottom.html", "drawsectionbottom.pro", "", "             file_comments   Fill and draw the bottom continents for a real section       categories       param MASKIN  in requierd       param XXAXISIN  in requierd        param DEPTHSIN  in requierd       keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thickness of the coastline    defaut value is 1      keyword CONT_COLOR   The color of the continent  defaut value is    d n_colors   1   white      uses   common pro      restrictions   Simple way to fill continents for a section  using the   fact that continents are wider at the bottom than at the top        history   Sebastien Masson  smasson lodyc jussieu fr                         June 14  2002      version    Id: drawsectionbottom pro 150 2006 08 09 10:12:54Z navarro        todo   Seb: definir params         PRO drawsectionbottom  maskin  xxaxisin  depthsin                            COAST_COLOR   coast_color  COAST_THICK   coast_thick                            CONT_COLOR   cont_color  CONT_NOFILL   cont_nofill                            OVERPLOT   overplot  _extra   ex       compile_opt idl2  strictarrsubs    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF      if keyword_set overplot  then return     mask is from bottom to top     boundaries conditions:   nx    size maskin 1    nz    size maskin 2 1     IF size xxaxisin   n_dimensions  EQ 1 THEN       xxaxisin   temporary xxaxisin replicate 1  nz    IF size depthsin   n_dimensions  EQ 1 THEN       depthsin   replicate 1  nx temporary depthsin    for the mask : we add ocean at the top then it is always possible to   find one ocean point on each water column    mask    maskin   replicate 1  nx    for x axis we also add one level    xxaxis    xxaxisin   xxaxisin  0    x axis must cover nx 1 points because we will draw the edge of the   mask    if it was mot possible in decoupeterre pro to extend the xxaxis we   do it now by hand   xxaxis   xxaxisin  0     if  size xxaxis 1  EQ nx then begin   if n_elements xxaxis  EQ nx then begin     deltax   abs x range 1 x range 0 10      xxaxis    xxaxis 0 deltax  xxaxis        x0   xxaxis 0 deltax      xxaxis    replicate x0  1  nz  xxaxis     ENDIF   for the depth    usepartial   total depthsin  2    usepartial   total usepartial NE usepartial 0  GE 1   depths   depthsin 0:nx 1    we add one level according to the ocean level we had to the mask     deltaz   abs y range 1 y range 0 10    zmax   max depthsin deltaz     depths    depths   replicate zmax  nx 1    depths    depths   replicate zmax  nx    if min depths  gt  1 then we must add one line at the bottom  this   appens when the bottom limit is defined between T k  and W k    points    IF min depthsin  GT  1 OR max total mask  2  EQ nz THEN BEGIN     zmin   min y range deltaz     depths    replicate zmin  nx   depths      mask    replicate 0  nx   mask      nz   nz 1   ENDIF       xleft   xxaxis 0:nx 1    xright   xxaxis 1:nx    looking for the position of the bottom of the ocean    pos   nz 1 total mask  2    depths   depths lindgen nx nx pos      xx   transpose xleft   xright    xx    x range 0    xx   zz    max y range      xx   float xx    zz   float zz      filling of the continents   IF NOT keyword_set cont_color  THEN cont_color    d n_colors   1    255     if NOT keyword_set cont_nofill  then         polyfill   min xx   max   maxx  xx  maxx                       min zz   max   mazz  zz  mazz                      color   cont_color    if NOT keyword_set cont_nofill  then        polyfill   min xx  max   maxx  xx  maxx                      y range 0  zz   y range 0  color   cont_color     drawing of the coast  bottom  line    we could have plot directly xx and yy but if countout ne 0  doing   this will draw an non existing bottom line along  y range values   which is not so good    we thus do this ugly for if loops to make sure that we don t draw   these lines but we keep all vertical lines     IF countout NE 0 THEN BEGIN      FOR i   0  countout  1 DO BEGIN        CASE 1 OF          out i  EQ 0:BEGIN    if we start with a out point            xxx    values f_nan            zzz    values f_nan                     END           i EQ 0:BEGIN    i eq 0 but out i  ne 0            xxx    xx 0:out i   values f_nan             zzz    zz 0:out i   values f_nan           END          ELSE:BEGIN   two consecutive out values at the same depth: we just keep    values f_nan values until the next change of depth            IF  out i 1  EQ out i 1  AND  zz out i 1  EQ zz out i  THEN BEGIN               xxx    xxx   values f_nan               zzz    zzz   values f_nan                          ENDIF ELSE BEGIN    we keep everything inbetween the out values  including themselves   for the vertical lines  but we had  values f_nan to remove the horizontal lines              xxx    xxx  xx out i 1 :out i   values f_nan               zzz    zzz  zz out i 1 :out i   values f_nan                          ENDELSE          END        ENDCASE        IF i EQ countout 1 AND out i  NE n_elements xx 1 THEN BEGIN          xxx    xxx  xx out i :           zzz    zzz  zz out i :                      ENDIF      ENDFOR      plots  xxx  zzz  color   coast_color  thick   coast_thick  _extra   ex    ENDIF ELSE plots  xx  zz  color   coast_color  thick   coast_thick  _extra   ex     return end "); 
    326 a[324] = new Array("./ToBeReviewed/TRIANGULATION/fillcornermask.html", "fillcornermask.pro", "", "             file_comments   To color cleanly continents      categories   graphic      keyword _EXTRA   Used to pass your keywords       keyword CONT_COLOR   The color of the continent  defaut value is    d n_colors   1   white      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         8 8 2002      version    Id: fillcornermask pro 150 2006 08 09 10:12:54Z navarro             PRO fillcornermask  xin  yin  COINMONTE   coinmonte  COINDESCEND   coindescend                                     CONT_COLOR   cont_color  INDICEZOOM   indicezoom                         _extra   ex     compile_opt idl2  strictarrsubs    common     if NOT keyword_set coinmonte  AND NOT keyword_set coindescend  then return     tempsun   systime 1             For key_performance     IF NOT keyword_set cont_color  THEN cont_color    d n_colors 1     255         definition of coordinates of points numbered 1 2 3 4 5 6  see figures below        x1   reform xin    y1   reform yin    IF  size x1 0  EQ 2 THEN x1   x1   0    IF  size y1 0  EQ 2 THEN y1   y1  0      x2    5 x1 shift x1   1    y2    5 y1 shift y1   1    nx   n_elements x1    ny   n_elements y1           Case land corner in ascent:        2 land points in diagonal ascending with 2 ocean points on the descendant diagonal                          3           t i nx 1    u i nx        t i nx 1 0                                                                            1                            4         v i f i v i 1                                                                                 t i 0       2 u i           t i 1 1       if keyword_set coinmonte  then BEGIN     if coinmonte 0  NE  1 then BEGIN       iup   coinmonte MOD nx       jup   coinmonte nx       for id   0  n_elements coinmonte 1 do BEGIN         i   iup id          j   jup id          IF i NE nx 1 AND j NE ny 1 THEN BEGIN           polyfill   x1 i  x2 i  x2 i  x1 i 1  x1 i                   y2 j  y1 j  y1 j 1  y2 j  y2 j                  color   cont_color  _extra   ex         ENDIF       endfor     endif   endif     Case land corner in descent:        2 land points in diagonal descending with 2 ocean points on the ascendant diagonal                          4       t i nx 1    u i nx        t i nx 1 0                                                                                      3                  5         v i f i v i 1            1                                                                                               t i 0      2 u i           t i 1 1     if keyword_set coindescend  then BEGIN     if coindescend 0  NE  1 then begin       idw   coindescend MOD nx       jdw   coindescend nx       for id   0  n_elements coindescend 1 do BEGIN         i   idw id          j   jdw id          IF i NE nx 1 AND j NE ny 1 THEN BEGIN           polyfill   x1 i  x2 i  x2 i  x1 i 1  x1 i                   y2 j  y1 j 1  y1 j  y2 j  y2 j                  color   cont_color  _extra   ex         ENDIF       endfor     endif   endif      IF keyword_set key_performance  THEN print   temps fillcornermask  systime 1 tempsun      return end"); 
    327 a[325] = new Array("./ToBeReviewed/TRIANGULATION/section.html", "section.pro", "", "     file_comments        categories         param FIELD         param RES         param GLAMAXE         param GPHIAXE         keyword ENDPOINTS           keyword BOXZOOM         keyword TYPE         keyword WDEPTH        keyword DIREC        keyword SHOWBUILD        keyword ONLYBOX        keyword _EXTRA    Used to pass your keywords       returns          uses   common pro       restrictions          examples          history   Sebastien Masson  smasson lodyc jussieu fr        version        PRO section  field  res  glamaxe  gphiaxe  ENDPOINTS   endpoints                  BOXZOOM   boxzoom  TYPE   type  WDEPTH   wdepth                  DIREC   direc  SHOWBUILD   showbuild  ONLYBOX   onlybox                  _extra   ex       include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF         definition of boxzoom in function of endpoints  then redefinition of the domain   boxzoom2d    min endpoints 0  endpoints 2  max   ma02  ma02                    min endpoints 1  endpoints 3  max   ma13  ma13      minprof   0    profdefault   200    if n_elements type  EQ 0 then type    nothing    Case N_Elements Boxzoom  OF     0:localbox    boxzoom2d  minprof  profdefault      1:localbox    boxzoom2d  minprof  boxzoom 0      2:localbox    boxzoom2d  boxzoom 0      4:if strpos type   z  NE  1 THEN         localbox    boxzoom2d  minprof  profdefault  ELSE localbox   boxzoom2d     5:localbox    boxzoom2d  minprof  boxzoom 4      6:localbox    boxzoom2d  boxzoom 4:5      Else:BEGIN       print  report Bad definition of the box        stop     END   ENDCASE   nelbox   n_elements localbox      if keyword_set wdepth  then grillechoice    vargrid   W      ELSE grillechoice   vargrid   domdef  localbox  GRIDTYPE   grillechoice   findalways  _extra   ex   grille   1   1   1   1  nx  ny   if less than 10 points where found  we apply domdef over the whole domain      problem  why 10 points as a test value    how can we find a good test value    IF nx   ny LE 10 THEN domdef  GRIDTYPE   grillechoice  _extra   ex   We redefine lon1    in case findalways has been used in domdef   lon1   min endpoints 0  endpoints 2  max   lon2    lat1   min endpoints 1  endpoints 3  max   lat2    we extend the box along the z axis   i that way the plot will be drawn   until its bottom part    if strpos type   z  NE  1 THEN BEGIN   We keep yranges  axis z  before changing the boxzoom       y range    localbox nelbox 1  localbox nelbox 2       if vargrid EQ  W  OR keyword_set wdepth  then BEGIN       firstzw   0    firstzw 1        lastzw    lastzw 1    firstzt 1        lastzt    lastzt 1    firstx   1    lastx    lastx   1    firsty   1    lasty    lasty   1     jpj  1       domdef  firstx  lastx  firsty  lasty  firstz  lastz                index  gridtype   vargrid    IF keyword_set onlybox  THEN return     grille  mask  glam  gphi  gdep  nx  ny  nz               firstx  firsty  firstz  lastx  lasty  lastz      We define the triangulation which will allows us to determinate the section     We recalculate it because it must be defined on the Earth and on oceans    Following the direction of the section  rather longitude or rather latitude     we define the way to triangulate    if strpos type   x  NE  1 then BEGIN      downward    lindgen nx  ny 0:nx 2  0:ny 2      tri   definetri nx  ny   downward     ENDIF ELSE tri   definetri nx  ny    If we have an irregular grid that is periodic  then it is possible that   some of the triangle have a very large size  neighborg points on the   sphere but far away when doing the projection  and should not be   taken into account     IF keyword_set key_irregular  AND keyword_set key_periodic  THEN BEGIN     glamtri   glam tri      glamtri   abs glamtri   shift glamtri  1  0      good   temporary glamtri  LT  10 max glam nx      good   where total temporary good  1  EQ 3      tri    temporary tri  temporary good    ENDIF     Equation of the line on which we do the section      abc   linearequation endpoints 0:1  endpoints 2:3    glamtri   glam tri    gphitri   gphi tri    Which points of the triangulation are above and below the line    if abc 1  NE 0 THEN       test   temporary gphitri  GE  abc 0 abc 1 temporary glamtri abc 2 abc 1      ELSE test   temporary glamtri  GE  abc 1 abc 0 temporary gphitri abc 2 abc 0     zero123   total test  1    to keep: triangles of the triangulation which are over the line    tokeep1   where zero123 EQ 1    tokeep2   where temporary zero123  EQ 2    tokeep    tokeep1  tokeep2     test   test  tokeep    tri   tri  tokeep    Which summit of the triangle is alone in a side of the line    single1   where test  0:n_elements tokeep1 1  EQ 1    single1   single1 single1 3 3   single2   where test  n_elements tokeep1 :n_elements tokeep 1  EQ 0    single2   single2 single2 3 3    undefine  tokeep   undefine  tokeep1   undefine  tokeep2   undefine  test    single    temporary single1  temporary single2    points1 the point  of the triangle  alone in a side of the line    point2 the other point of the triangle in the other side of the line    point1    single  single    point2    single EQ 0  1    single LE 1     undefine   single    ntri    size tri 2    index    lindgen ntri  lindgen ntri     points1   tri point1  index    points2   tri point2  temporary index    points : complex containing couples of points in a side and the other    side of the line  We have to delete duplicates    points   dcomplex points1  points2    points   points uniq points  sort points    symetrique   dcomplex imaginary points  double points    points   points where points shift temporary symetrique  1  NE 0    points1 coordinates of the point of the triangle which is alone in a side of the line    point2 coordinates of the other point of the triangle in the other side of the line    points1   complex glam    double points  gphi    double points    points2   complex glam imaginary points  gphi imaginary points    droites equations of line whose we look for the intersection wit the section    droites   linearequation points1  points2    inter   lineintersection droites  abc replicate 1  n_elements points1         Geographic coordinates of points we look for on the section    glamaxe   float inter    gphiaxe   imaginary inter    We arrange them in the growing order between boundaries of the section    if strpos type   x  NE  1 then BEGIN      sort   sort glamaxe      glamaxe   glamaxe sort      inbox   where glamaxe GE lon1 AND glamaxe LE lon2      glamaxe   glamaxe inbox      sort   sort inbox      gphiaxe   gphiaxe sort    ENDIF ELSE BEGIN     sort   sort gphiaxe      gphiaxe   gphiaxe sort      inbox   where gphiaxe GE lat1 AND gphiaxe LE lat2      gphiaxe   gphiaxe inbox      sort   sort inbox      glamaxe   glamaxe sort    ENDELSE   points   points sort    points1   points1 sort    points2   points2 sort    inter   inter sort    poids   abs points2 inter abs points2 points1       array   litchamp field    array   fitintobox array    if array 0  EQ  1 THEN BEGIN     res    1     return   ENDIF   if n_elements valmask  EQ 0 THEN valmask   1e20   taille   size array    if jpt GT 1 AND taille 0  GE 3 AND strpos type   t  EQ  1 then BEGIN     direc    t      array   grossemoyenne array   t      taille   size array      jpt   1   ENDIF   case 1 of    xy       taille 0  EQ 2:BEGIN       value1   array double points        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       value2   array imaginary points        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       res   poids value1 1 poids value2     END    xyz       taille 0  EQ 3 AND jpt EQ 1:BEGIN       npoints   n_elements points         index   double points replicate 1  nz replicate nx ny  npoints lindgen nz        value1   array index        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       index   imaginary points replicate 1  nz replicate nx ny  npoints lindgen nz        value2   array index        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       poids   poids replicate 1  nz        res   poids value1 1 poids value2   average following z         if strpos type   z  EQ  1 then begin         nan   where finite res  EQ 0          if vargrid EQ  W  then e3   e3w firstzw:lastzw  ELSE e3   e3t firstzt:lastzt          weight   replicate 1  npoints e3         if nan 0  NE  1 then weight nan     values f_nan         totalweight   total weight  2   nan          zero   where totalweight EQ 0          if zero 0  NE  1 then totalweight zero     values f_nan         res   total res weight  2   nan totalweight         direc    z string byte testvar var   toto        endif     END    xyt       taille 0  EQ 3 AND jpt NE 1:BEGIN       npoints   n_elements points         index   double points replicate 1  jpt replicate nx ny  npoints lindgen jpt        value1   array index        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       index   imaginary points replicate 1  jpt replicate nx ny  npoints lindgen jpt        value2   array index        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       poids   poids replicate 1  jpt        res   poids value1 1 poids value2     END    xyzt       taille 0  EQ 4:BEGIN       npoints   n_elements points         index   double points replicate 1  nz jpt replicate nx ny  npoints lindgen nz jpt        index   reform index  npoints  nz  jpt   over        value1   array index        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       index   imaginary points replicate 1  nz jpt replicate nx ny  npoints lindgen nz jpt        index   reform index  npoints  nz  jpt   over        value2   array index        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       poids   poids replicate 1  nz jpt        poids   reform poids  npoints  nz  jpt   over        res   poids value1 1 poids value2   average following z         if strpos type   z  EQ  1 then begin         nan   where finite res  EQ 0          if vargrid EQ  W  then e3   e3w firstzw:lastzw  ELSE e3   e3t firstzt:lastzt          weight   replicate 1  npoints e3         weight   weight replicate 1  jpt          weight   reform weight  npoints  nz  jpt   over          if nan 0  NE  1 then weight nan     values f_nan         totalweight   total weight  2   nan          zero   where totalweight EQ 0          if zero 0  NE  1 then totalweight zero     values f_nan         res   total res weight  2   nan totalweight         direc    z string byte testvar var   toto        endif     END   endcase      terre   where finite res  EQ 0    if terre 0  NE  1 then res terre    valmask    if n_elements showbuild  then BEGIN      winsave    window     psave    p     xsave    x     ysave    y     plt  findgen nx  ny   nodata   nofill   rempli  title     subtitle                  coast_thick   2  window   showbuild      p title          p subtitle          plots   endpoints 0  endpoints 2   endpoints 1  endpoints 3  color   50     plots   endpoints 0  endpoints 2   endpoints 1  endpoints 3  color   50  psym   2  thick   2      FOR i   0  n_elements points1 1 DO         plots   float points1 i  float points2 i                    imaginary points1 i  imaginary points2 i  color   150      plots  float points1  imaginary points1  color   150  psym   1     plots  float points2  imaginary points2  color   150  psym   1     plots  float inter  imaginary inter  color   250  psym   1       bug      IF terre 0  NE  1 THEN plots  float terre inter  imaginary terre inter  color   0  psym   1              dummy            read  dummy   prompt    press return to continue      IF  d name EQ  PS  THEN erase ELSE wset  winsave      p   psave      x   xsave      y   ysave   ENDIF     restoreboxparam   boxparam4section dat       return end"); 
    328 a[326] = new Array("./ToBeReviewed/TRIANGULATION/tracecote.html", "tracecote.pro", "", "             file_comments   Draw coasts in plt       categories   graphic        INPUTS:mask le tableau mask sur la zone consideree pour le dessin      keyword SURFACE_COASTLINE   To draw the surface coast line instead of   the coast line at level firstz tw  Usefull only for deep   plots       keyword _EXTRA   used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         30 9 1999      version    Id: tracecote pro 150 2006 08 09 10:12:54Z navarro             PRO tracecote  SURFACE_COASTLINE   surface_coastline  _EXTRA   ex     include commons     compile_opt idl2  strictarrsubs    cm_4data  cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      tempsun   systime 1            For key_performance    if n_elements key_gridtype  EQ 0 then key_gridtype    c      We enlarge a bit the frame defined by firsts  lasts  in order to    recuperate edges of the coast which are in the edging of the domain          tempdeux   systime 1           For key_performance  2    firstx   0    min firstxt  firstxf 1     lastx    max lastxt  lastxf 1    min firstyt  firstyf 1     lasty    max lastyt  lastyf 1     jpj 1     nx   lastx firstx 1    ny   lasty firsty 1   Which vertical level choose     IF keyword_set surface_coastline  THEN firstz   0 ELSE        IF strupcase vargrid  eq  W  THEN firstz   firstzw ELSE firstz   firstzt   Attribution of the mask and of coordinates  delimiting limits of the land  coordinates f     mask   tmask firstx:lastx  firsty:lasty  firstz     xf   glamf firstx:lastx  firsty:lasty     yf   gphif firstx:lastx  firsty:lasty       IF testvar var   key_performance  EQ 2 THEN       print   temps tracecote: determiner mask xf yf  systime 1 tempdeux      if key_gridtype EQ  e  then onemore   xf 0  0  gT xf 0  1    We pass in normalized coordinates to be able to become independant from the projection s    type choosen and from the support on which we do the drawing  screen or postscript     z   convert_coord xf yf data to_normal      xf   reform z 0    nx  ny     yf   reform z 1    nx  ny     tempvar   SIZE TEMPORARY z      Beware  following the projection  some points x or y can become NaN  see point    behind the earth in an orthographic projection      We put points to be eliminated at a very big value so that they will not pass the    test with distanceseuil  see further       if  map projection LE 7 AND  map projection NE 0        OR  map projection EQ 14 OR  map projection EQ 15 OR  map projection EQ 18 then begin       ind   where finite xf yf  EQ 0        IF ind 0  NE  1 THEN BEGIN           xf ind    1e5          yf ind    1e5       ENDIF    ENDIF    ind   where xf LT  p position 0  OR xf GT  p position 2     IF ind 0  NE  1 THEN xf ind    1e5    ind   where yf LT  p position 1  OR yf GT  p position 3     IF ind 0  NE  1 THEN yf ind    1e5    tempvar   SIZE TEMPORARY ind    we delete ind      if n_elements key_gridtype  EQ 0 then key_gridtype    c     case key_gridtype of        c :drawcoast_c  mask  xf  yf  nx  ny  _extra   ex        e :drawcoast_e  mask  xf  yf  nx  ny  onemore   onemore  _extra   ex    endcase    if keyword_set key_performance  THEN print   temps tracecote  systime 1 tempsun    return end"); 
    329 a[327] = new Array("./ToBeReviewed/TRIANGULATION/tracemask.html", "tracemask.pro", "", "             file_comments   Draw contours of a mask      categories   utilities       param MASKENTREE  in required    2d array specifing the mask       param XIN  in required    2d array specifing longitude coordinates        param YIN  in required    2d array specifing latitude coordinates       keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thick of the trait to trace continents   It is 1 by default       keyword OVERPLOT   To do a plot over an other one       keyword _EXTRA   used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: tracemask pro 150 2006 08 09 10:12:54Z navarro             PRO tracemask  maskentree  xin  yin  COAST_COLOR   coast_color  COAST_THICK   coast_thick  OVERPLOT   overplot  _extra   ex       compile_opt idl2  strictarrsubs      if keyword_set overplot  then return    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF       tempsun   systime 1            For key_performance   We avoid edging problems:    tempdeux   systime 1           For key_performance  2    tailleentree   size maskentree     nx   tailleentree 1 1    ny   tailleentree 2 1   we check the input axis   IF n_elements xin  EQ 0 THEN xentree   findgen nx 1  ELSE xentree   xin   IF  size xentree 0  EQ 1 THEN xentree   xentree replicate 1 ny 1    IF n_elements yin  EQ 0 THEN yentree   findgen ny 1  ELSE yentree   yin   IF  size yentree 0  EQ 1 THEN yentree   replicate 1 nx 1 yentree   We enlarge the mask by 1 column to the left an d1 line to the bottom    mask   intarr tailleentree 1 1  tailleentree 2 1     mask 1:tailleentree 1  1:tailleentree 2    maskentree   The 2 first columns are identical     mask 0  1:tailleentree 2    maskentree 0      The 2 first lines are identical     mask 1:tailleentree 1  0    maskentree  0    We calculate the position following x of points which will serve to trace the mask  They are situated between each points of the mask  exept for the last column we can not calculate and so we put at max  x range     xrange    x range sort x range    if REVERSE_X is used    xentree    5 xentree shift xentree   1  0     IF not keyword_set overplot  THEN xentree nx 2      xrange 1       ELSE xentree nx 2      xentree nx 3      we sill    xentree   xrange 0    xentree  yentree   yrange 1     yf   fltarr nx  ny     yf 1:nx 1  1:ny 1    yentree    yf 0  1:ny 1    yentree 0       IF not keyword_set overplot  THEN BEGIN        if yinverse then yf  0    yrange 1  ELSE yf  0    yrange 0     ENDIF ELSE yentree  0    yentree  1       IF testvar var   key_performance  EQ 2 THEN       print   temps tracemask: determination du mask et des ses coordonnes  systime 1 tempdeux     We trace vertical segments:      tempdeux   systime 1           For key_performance  2    liste   where mask shift mask   1  0  EQ 1     IF liste 0  NE  1 THEN BEGIN   We recuperate lx and ly which are indexes in a 2d array of points given by list       ly   liste nx   lx   temporary liste nx ly       indice   where ly NE 0    We do not take points concernining    the first line because in this case  the point j 1 is not defined        if indice 0  NE  1 then begin          lx   lx indice    ly   ly temporary indice           IF testvar var   key_performance  EQ 2 THEN             print   temps tracemask: liste traits verticaux  systime 1 tempdeux          tempdeux   systime 1     For key_performance  2   loop on concerned points and drawing of the segment    comments: we use plots instead of plot because plots is faster           for pt   0L  n_elements lx 1 do BEGIN              i   lx pt    j   ly pt              plots   xf i  j 1  xf i  j   yf i  j 1  yf i  j                    color   coast_color  thick   coast_thick  _extra   ex             if pt LT 5 then begin             endif          endfor          IF testvar var   key_performance  EQ 2 THEN             print   temps tracemask: trace traits verticaux  systime 1 tempdeux       endif    ENDIF     We trace horizontal segments:      tempdeux   systime 1           For key_performance  2    liste   where mask shift mask  0   1  EQ 1     IF liste 0  NE  1 THEN BEGIN       ly   liste nx   lx   temporary liste nx ly       indice   where lx NE 0      We do not take point sof the first column        if indice 0  EQ  1 then return       lx   lx indice    ly   ly temporary indice        IF testvar var   key_performance  EQ 2 THEN          print   temps tracemask: liste traits horizontaux  systime 1 tempdeux       tempdeux   systime 1        For key_performance  2       for pt   0L  n_elements lx 1 do BEGIN           i   lx pt    j   ly pt           plots   xf i 1  j  xf i  j   yf i 1  j  yf i  j                 color   coast_color  thick   coast_thick  _extra   ex       endfor       IF testvar var   key_performance  EQ 2 THEN          print   temps tracemask: trace traits horizontaux  systime 1 tempdeux    endif        if keyword_set key_performance  THEN print   temps tracemask  systime 1 tempsun         return end     "); 
    330 a[328] = new Array("./ToBeReviewed/TRIANGULATION/triangule.html", "triangule.pro", "", "         todo   seb       FUNCTION triangule  maskentree  BASIC   basic  COINMONTE   coinmonte  COINDESCEND   coindescend  _extra   ex     compile_opt idl2  strictarrsubs    common     szmsk   size maskentree    IF szmsk 0  EQ 0 THEN BEGIN     nx   jpi     ny   jpj   ENDIF ELSE BEGIN      nx   szmsk 1      ny   szmsk 2    ENDELSE   IF nx EQ 1 OR ny EQ 1 THEN return   1     IF arg_present coinmonte  THEN coinmonte   1   IF arg_present coindescend  THEN coindescend   1      if keyword_set basic  then        return  triangule_c maskentree   BASIC  COINMONTE   coinmonte                              COINDESCEND   coindescend  _extra   ex       if n_elements key_gridtype  EQ 0 then key_gridtype    c     if n_elements maskentree  EQ 0 then maskentree   tmask    0     case key_gridtype of        e :res   triangule_e maskentree  _extra   ex         c :res   triangule_c maskentree  COINMONTE   coinmonte  COINDESCEND   coindescend  _extra   ex     endcase    return  res end"); 
    331 a[329] = new Array("./ToBeReviewed/TRIANGULATION/triangule_c.html", "triangule_c.pro", "", "             file_comments   Construct the triangulation array      The idea is: construct a list of triangle which link points between them     This is automatically done by the function TRIANGULATE    Here:   we consider the fact that points are disposed on a grid  regular or not     but not unstructured  that is to say that points are written following a    rectangular matrix  A easy way to do triangles between all points is then:          for each point  i j  of the matrix  exept those of the last line and of       the last column  we call rectangle  i j  the rectangle made of the four       points  i j   i 1 j   i j 1   i 1 j 1  To trace all triangle  we just       have to trace the 2 triangles contained in rectangles  i j      We notice that each rectangle  i j  have 2 diagonals  it is true  Make a   drawing to make sure  so there are two possible choice for each rectangle   we want to cut in 2 triangles       It is thanks to this choice that we will be able to trace coast with right   angles  At each angle of coast remarkable by the existence of an unique land   point or of an unique ocean point on one of the four summit of a rectangle  i j    we have to cut the rectangle following the diagonal passing by this point        categories   graphic      param MASKENTREE  in optional    It is a 2d array which will serve to mask the field we will trace after with CONTOUR      TRIANGULATION triangule mask    If this argument is not specified  the function use tmask      keyword BASIC   Specify that the mask is on a basic grid  use the triangulation for vertical cuts and hovmoellers       keyword KEEP_CONT   To keep the triangulation even on the continents      keyword COINMONTE   It is an array  To obtain the array of  ascending land corner  to be treated with    completecointerre pro in the variable array instead of make it pass by the global    variable twin_corners_up       keyword COINDESCEND   It is an array  See COINMONTE      returns   res: tableau 2d  3 nbre de triangles    Each line of res represent indexes of points constituing summits of a triangle     See how we trace triangles in definetri pro      uses   common pro   different pro   definetri pro      restrictions   Datas whose we want to do the contour must be disposed in a matrix     On the other hand  in the matrix  the points s arrangement can not be    irregular  If it is  use TRIANGULE       history   Sebastien Masson  smasson lodyc jussieu fr                          26 4 1999      version    Id: triangule_c pro 150 2006 08 09 10:12:54Z navarro        todo   seb L 267 268 je ne pense pas que ce soit ce que tu voulais dire mais    c est la traduction de ce qu il y avait  crit  Correction si besoin          FUNCTION triangule_c  maskentree  COINMONTE   coinmonte  COINDESCEND   coindescend  BASIC   basic  KEEP_CONT   keep_cont   compile_opt idl2  strictarrsubs   tempsun   systime 1               For key_performance    cm_4mesh IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew ENDIF     Is the mask given or do we have to take tmask      msk   maskentree taille   size msk  nx   taille 1  ny   taille 2    IF n_elements keep_cont  EQ 0 THEN keep_cont   1 key_irregular   if keyword_set key_periodic nx EQ jpi      AND NOT keyword_set basic  then BEGIN      msk    msk  msk 0        nx   nx 1 ENDIF     We will find the list of rectangles  i j located by their left    bottom corner  we have to cut folowing a descendant diagonal     We will call this list : pts_downward    pts_downward   0    We construct the test which allow to find this triangle :             shift msk   0   1 shift msk   1   1                                                                                                                                                                                                            msk shift msk   1   0    sum1   msk shift msk   1  0 shift msk   1   1      points which surround the left top point  sum2   msk shift msk  0   1 shift msk   1   1      points which surround the right bottom point    tempdeux   systime 1              For key_performance  2   The left top land point surrounded by ocean points liste   where   4 sum1 1 shift msk  0   1  EQ 1   if liste 0  NE  1 THEN pts_downward    pts_downward liste     The left top ocean point surrounded by land points liste   where   1 sum1 shift msk  0   1  EQ 1  if liste 0  NE  1 THEN pts_downward    pts_downward liste     The right bottom land point surrounded by ocean points liste   where   4 sum2 1 shift msk   1   0  EQ 1  if liste 0  NE  1 THEN pts_downward    pts_downward liste     The right bottom ocean point surrounded by land points liste   where   1 sum2 shift msk   1   0  EQ 1  if liste 0  NE  1 THEN pts_downward    pts_downward liste   undefine  liste   IF testvar var   key_performance  EQ 2 THEN     print   temps triangule: trouver pts_downward  systime 1 tempdeux   if  NOT keyword_set basic  OR keyword_set coinmonte  OR keyword_set coindescend  then begin     tempdeux   systime 1          For key_performance  2  2 land points in ascendant diagonal with 2 ocean points in descendant diagonal      coinmont   where   1 msk 1 shift msk   1   1                           shift msk  0   1 shift msk   1   0  EQ 1        if coinmont 0  NE  1 THEN pts_downward    pts_downward  coinmont        IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: trouver coinmont  systime 1 tempdeux     tempdeux   systime 1          pour key_performance  2       coindesc   where   1 shift msk   0   1 1 shift msk   1  0                            msk shift msk   1   1  EQ 1       2 land points in descendant diagonal with 2 ocean points in ascendant diagonal      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: trouver coindesc  systime 1 tempdeux   ENDIF   if n_elements pts_downward  EQ 1 then BEGIN      tempdeux   systime 1          For key_performance  2       triang   definetri nx  ny        IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: definetri  systime 1 tempdeux     coinmont    1     coindesc    1 ENDIF ELSE BEGIN      tempdeux   systime 1          For key_performance  2     pts_downward   pts_downward 1:n_elements pts_downward 1      pts_downward   pts_downward uniq pts_downward  sort pts_downward    None rectangle can have an element of the last column or of the    last line as left bottom corner    so we have to remove these points if they has been selected in pts_downward      derniere_colonne    lindgen ny 1 nx 1      derniere_ligne   lindgen nx ny 1 nx      pts_downward  different pts_downward derniere_colonne       pts_downward  different pts_downward derniere_ligne       if  NOT keyword_set basic  OR keyword_set coinmonte  OR keyword_set coindescend  then begin         if coinmont 0  NE  1 then begin             coinmont  different coinmont derniere_colonne               coinmont  different coinmont derniere_ligne           endif         if coindesc 0  NE  1 then begin             coindesc  different coindesc derniere_colonne               coindesc  different coindesc derniere_ligne           endif     ENDIF ELSE BEGIN          coinmont    1         coindesc    1     ENDELSE      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: menage ds pts_downward coinmont et coindesc  systime 1 tempdeux       tempdeux   systime 1          For key_performance  2     if  pts_downward 0  EQ  1 then triang   definetri nx  ny        ELSE triang   definetri nx  ny  pts_downward      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: definetri  systime 1 tempdeux ENDELSE      We delete land points which only contain land points          if  NOT keyword_set basic  AND  NOT keyword_set keep_cont  then begin     tempdeux   systime 1          For key_performance  2   We delete rectangles which are entirely in the land      recdsterre   where 1 msk 1 shift msk   1  0 1 shift msk  0   1 1 shift msk   1   1  EQ 1      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: tous les recdsterre  systime 1 tempdeux    We do an other sort :   We have to do not remove rectangles which only have one common summit    t1   systime 1      indice   intarr nx  ny      trimask   intarr nx  ny      trimask 0:nx 2  0:ny 2    1     IF recdsterre 0  NE  1 then BEGIN          tempdeux   systime 1      For key_performance  2         indice recdsterre    1         if NOT keyword_set basic  then begin             vire1   0             vire2   0             while  vire1 0  NE  1 OR vire2 0  NE  1  ne 0 do begin   Delete rectangles we have to remove from recsterre  in fact those we have    to keep although they ar eentirely in the land                  vire1   where   indice shift indice   1   1                                     1 shift indice  0   1 1 shift indice   1  0 trimask  EQ 1                  if vire1 0  NE  1 THEN BEGIN                      indice vire1    0                 indice vire1 nx 1    0                 endif                                  vire2   where   1 indice 1 shift indice   1   1                                     shift indice  0   1 shift indice   1  0 trimask  EQ 1                  if vire2 0  NE  1 THEN BEGIN                      indice vire2 1    0                 indice vire2 nx    0                 endif             endwhile             IF testvar var   key_performance  EQ 2 THEN                 print   temps triangule: trier les recdsterre  systime 1 tempdeux         endif         indice  ny 1    1       The last column and the last line         indice nx 1      1       can not define any rectangle            tempdeux   systime 1      For key_performance  2         recgarde   where indice EQ 0    We recuperate numbers of triangles we will keep          trigarde   2 recgarde recgarde nx          trigarde   transpose temporary trigarde          trigarde    trigarde  trigarde 1             triang   triang  temporary trigarde          IF testvar var   key_performance  EQ 2 THEN             print   temps triangule: virer les triangle de la liste  systime 1 tempdeux     endif endif   print   temps tri triangles  systime 1 t1      When key_periodic equal 1  triang is a list of indexes s array which    have a surplus column    We have to put it back to the initial matrix by putting indexes of    the last column equal to these of the last column    tempdeux   systime 1              For key_performance  2 if keyword_set key_periodic nx 1 EQ jpi      AND NOT keyword_set basic  then BEGIN      indicey   triang nx     indicex   triang indicey nx     nx   nx 1     liste   where indicex EQ nx      if liste 0  NE  1 then indicex liste    0     triang   indicex nx indicey     nx   nx 1     if coinmont 0  NE  1 then begin         indicey   coinmont nx         indicex   coinmont indicey nx         nx   nx 1         liste   where indicex EQ nx          if liste 0  NE  1 THEN indicex liste    0         coinmont   indicex nx indicey         nx   nx 1     endif     if coindesc 0  NE  1 then begin         indicey   coindesc nx         indicex   coindesc indicey nx         nx   nx 1         liste   where indicex EQ nx          if liste 0  NE  1 THEN indicex liste    0         coindesc   indicex nx indicey         nx   nx 1     endif endif IF testvar var   key_performance  EQ 2 THEN     print   temps triangule: finitions  systime 1 tempdeux    if keyword_set coinmonte  THEN coinmonte   coinmont ELSE twin_corners_up   coinmont if keyword_set coindescend  THEN coindescend   coindesc ELSE twin_corners_dn   coindesc   IF NOT keyword_set key_forgetold  THEN BEGIN     updateold ENDIF   IF keyword_set key_performance  THEN print   temps triangule  systime 1 tempsun   return  triang  END "); 
    332 a[330] = new Array("./ToBeReviewed/TRIANGULATION/triangule_e.html", "triangule_e.pro", "", "           file_comments   Buid the triangulation for a E grid type      categories   graphic       param MASKENTREE  in optional    It is a 2d array which will serve to mask the field we will trace after with CONTOUR      TRIANGULATION triangule mask    If this argument is not specified  the function use tmask       keyword BASIC   Specify that the mask is on a basic grid  use the triangulation for vertical cuts and hovmoellers        keyword COINMONTE   It is an array  To obtain the array of  ascending land corner  to be treated with    completecointerre pro in the variable array instead of make it pass by the global    variable twin_corners_up       keyword COINDESCEND   It is an array  See COINMONTE      keyword SHIFTED       uses   common pro       history   Sebastien Masson  smasson lodyc jussieu fr                         june 2001       version     Id: triangule_e pro 150 2006 08 09 10:12:54Z navarro         todo   seb L 152 153 je ne pense pas que ce soit ce que tu voulais dire mais    c est la traduction de ce qu il y avait  crit  Correction si besoin          FUNCTION triangule_e  maskentree  COINMONTE   coinmonte  COINDESCEND   coindescend                       SHIFTED   shifted  BASIC   basic       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      tempsun   systime 1            For key_performance     Is the mask given or do we have to take tmask         msk   maskentree    sizem   size msk     nx   sizem 1     ny   sizem 2       if keyword_set key_periodic nx EQ jpi        AND NOT keyword_set basic  then BEGIN        msk    msk  msk 0          nx   nx 1    ENDIF     we will find the diamond that must be cut in two triangle using the   horizontal diagonal       index   lindgen nx  ny     index   index 0:nx 2  1:ny 2     if n_elements shifted  EQ 0 then shifted   1    oddeven    index nx 1 shifted  MOD 2    msk1   msk index     msk2   msk index 1     sum   msk index nx oddeven msk index nx oddeven     sum1   msk2 sum    sum2   msk1 sum     horizontal      singularpoint   where msk1 EQ 0 AND sum1 EQ 3  OR  msk1 EQ 1 AND sum1 EQ 0                             OR  msk2 EQ 0 AND sum2 EQ 3  OR  msk2 EQ 1 AND sum2 EQ 0                             OR  sum EQ 0 AND  msk1 msk2  EQ 2       if singularpoint 0  NE  1 then begin       horizontal   index singularpoint        triang   definetri_e nx  ny  horizontal  SHIFTED   shifted     ENDIF ELSE triang   definetri_e nx  ny  SHIFTED   shifted       coinmont   index where sum EQ 2 AND  msk1 msk2  EQ 0       coindesc   index where sum EQ 0 AND  msk1 msk2  EQ 2      we keep only the triangles which are outside the land   but for some reasons we will in fact delete the land diamond        allrecinland   where sum1 msk1 EQ 0       indexallinland   index allrecinland       otherrec    lindgen nx  ny 0:nx 2  1:ny 2       otherrec   different otherrec  indexallinland           index   lindgen nx  ny       index   index 0:nx 3  2:ny 3       out   inter index  indexallinland       IF out 0  NE  1 THEN begin         out   inter out 1  indexallinland          IF out 0  NE  1 THEN begin            out   out 1            oddeven    out nx 1 shifted  MOD 2            out   inter out nx oddeven  otherrec             IF out 0  NE  1 THEN begin               out   inter out 2 nx  otherrec                IF out 0  NE  1 THEN begin                  out   out nx out nx shifted  MOD 2                endif            endif         endif      ENDIF      help   out          index   lindgen nx  ny       index   index 0:nx 3  2:ny 3       out   inter index  otherrec       IF out 0  NE  1 THEN begin         out   inter out 1  otherrec          IF out 0  NE  1 THEN begin            out   out 1            oddeven    out nx 1 shifted  MOD 2            out   inter out nx oddeven  indexallinland             IF out 0  NE  1 THEN begin               out   inter out 2 nx  indexallinland                IF out 0  NE  1 THEN begin                  out   out nx out nx shifted  MOD 2                endif            endif         endif      endif      help   out          IF out 0  EQ  1 THEN out   different indexallinland  out  ELSE out   indexallinland      triout   numtri out  nx  ny       triout    triout  triout 1       goodtri   lindgen 2 nx 1 ny 1       goodtri   different goodtri  triout       triang   triang  temporary goodtri           When key_periodic equal 1  triang is a list of indexes s array which    have a surplus column    We have to put it back to the initial matrix by putting indexes of    the last column equal to these of the last column       tempdeux   systime 1           For key_performance  2    if keyword_set key_periodic nx 1 EQ jpi        AND NOT keyword_set basic  then BEGIN        indicey   triang nx       indicex   triang indicey nx       nx   nx 1       liste   where indicex EQ nx        if liste 0  NE  1 then indicex liste    0       triang   indicex nx indicey       nx   nx 1         if coinmont 0  NE  1 then begin            indicey   coinmont nx            indicex   coinmont indicey nx            nx   nx 1            liste   where indicex EQ nx             if liste 0  NE  1 THEN indicex liste    0            coinmont   indicex nx indicey            nx   nx 1         endif         if coindesc 0  NE  1 then begin            indicey   coindesc nx            indicex   coindesc indicey nx            nx   nx 1            liste   where indicex EQ nx             if liste 0  NE  1 THEN indicex liste    0            coindesc   indicex nx indicey            nx   nx 1         endif    endif    IF testvar var   key_performance  EQ 2 THEN       print   temps triangule: finitions  systime 1 tempdeux        if arg_present coinmonte  THEN coinmonte   coinmont ELSE twin_corners_up   coinmont     if arg_present coindescend  THEN coindescend   coindesc ELSE twin_corners_dn   coindesc     IF NOT keyword_set key_forgetold  THEN BEGIN      updateold    ENDIF        IF keyword_set key_performance  THEN print   temps triangule  systime 1 tempsun      return  triang  END "); 
    333 a[331] = new Array("./ToBeReviewed/UTILITAIRE/get_extra.html", "get_extra.pro", "", "     todo    seb       elle fait quoi      elle permet :      soit de creer une variable extra contenant les mots clefs que tu   desires      soit de completer une variable extra avec des mots clefs que tu   rajoutes     imagine :    tu es dans une routine et tu veux passer un mot clef en extra car la   routine que tu appelles ne le connait pas mais la routine suivante oui    tu fais     extra get_extra ok  year 1999  age_capitaine 35      et tu obtiens la bonne variable extra  fait un help extra struc     ou alors  tu completes un extra existant :    extra get_extra _extra extra  name Guillaume     FUNCTION get_extra  _extra   extra     compile_opt idl2  strictarrsubs       return  extra END "); 
    334 a[332] = new Array("./ToBeReviewed/UTILITAIRE/oups.html", "oups.pro", "", ""); 
    335 a[333] = new Array("./ToBeReviewed/UTILITAIRE/vzoom.html", "vzoom.pro", "", ""); 
    336 a[334] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd.html", "buildcmd.pro", "", "             file_comments   This function send back a string which contain the reading command    and drawing s parameters       param BASE  in required       keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword FORCETYPE      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: buildcmd pro 150 2006 08 09 10:12:54Z navarro        todo   seb: documenter le param BASE et le keyword FORCETYPE           FUNCTION buildcmd  base  BOXZOOM   boxzoom  FORCETYPE   forcetype       we get back the ids of the widget parts       compile_opt idl2  strictarrsubs     txtcmdid   widget_info base  find_by_uname    txtcmd    domainid   widget_info base  find_by_uname    domain    actionid   widget_info base  find_by_uname    action      optionid   widget_info base  find_by_uname    option      widget_control  base  get_uvalue   top_uvalue   smallin   extractatt top_uvalue   smallin    numdessinin   smallin 2 1   smallout   extractatt top_uvalue   smallout    numdessinout   smallout 2 1     options   extractatt top_uvalue   options       optionsflag   extractatt top_uvalue   optionsflag    portrait    strtrim optionsflag where options EQ  Portrait Landscape  0  1 0        We determinate which procedure we will call to do the drawing and the type     IF keyword_set forcetype  THEN type   forcetype     ELSE type   widget_info actionid   combobox_gettext    case type of      plt :procedure    plt       pltz :procedure    pltz       pltz diag up :procedure    pltz       pltz diag dn :procedure    pltz       pltt :procedure    pltt       pltt diag up :procedure    pltt       pltt diag dn :procedure    pltt       xy :procedure    plt       xz :procedure    pltz       yz :procedure    pltz       xt :procedure    pltt       yt :procedure    pltt       zt :procedure    pltt       x :procedure    plt1d       y :procedure    plt1d       z :procedure    plt1d       t :procedure    pltt    endcase      Search of options     options   extractatt top_uvalue   options       optionsflag   extractatt top_uvalue   optionsflag    flags   optionsflag  numdessinin    xindex    flags where options EQ  Longitude   x index 0    yindex    flags where options EQ  Latitude   y index 0    drawvecteur    flags where options EQ  Vecteur 0 procedure eq  plt    drawover    flags where options EQ  Overlay 0      alreadyread   extractatt top_uvalue   alreadyread    alreadyvector   extractatt top_uvalue   alreadyvector    alreadyover   extractatt top_uvalue   alreadyoer    What must we read     case 1 of     alreadyover NE  1:BEGIN       toread   alreadyover 1       readswitch    over      END     alreadyvector NE  1 AND alreadyvector NE  pi:BEGIN       toread   alreadyvector 1       readswitch    vector      END     alreadyread NE  1 AND alreadyread NE  pi AND alreadyread NE 2 pi:BEGIN       toread   alreadyread 1       readswitch    classic      END     else:BEGIN       case 1 of         alreadyvector eq  pi:BEGIN           toread   alreadyover 1           readswitch    over          END         alreadyread EQ  pi:BEGIN           toread   alreadyvector 1           readswitch    vector          END         alreadyread EQ 2 pi:BEGIN           toread   alreadyover 1           readswitch    over          END         ELSE:BEGIN           toread   alreadyread 1           readswitch    classic          END       endcase     END   ENDCASE     widget_control  txtcmdid  get_value   widcmd   widcmd    strtrim widcmd  2    IF widcmd 0  EQ   THEN widcmd    zzz       cutcmd  widcmd 0  toread  numberofread  prefix  nameexp  ending     readcmd   buildreadcmd base   nameexp  procedure  type                              BOXZOOM   boxzoom  complete   readswitch EQ  classic  AND alreadyread EQ  1    we look for the line containing funclec_name   currentfile   extractatt top_uvalue   currentfile    readparameters    extractatt top_uvalue   readparameters currentfile    i   0   while strpos readcmd i  readparameters funclec_name     EQ  1 do i   i 1              case readswitch of      classic :BEGIN       if alreadyread 1 EQ 0 then BEGIN   we start the reading command         readcmd     beginning of reading the field to draw  readcmd          readcmd i 1     field       prefix   readcmd i 1        ENDIF ELSE BEGIN   we complet the reading command         oldrdcmd   extractatt top_uvalue   currentreadcmd          nl   n_elements oldrdcmd           oldrdcmd nl 1    oldrdcmd nl 1                readcmd i    prefix   readcmd i          readcmd    temporary oldrdcmd  temporary readcmd        ENDELSE   exit if we have to read other fields        if alreadyread 1 NE numberofread 1 THEN BEGIN           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd          top_uvalue 1  findline top_uvalue   alreadyread    alreadyread 1          top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field number  strtrim alreadyread 3  1          return           ENDIF   we finalize the reading command       IF ending NE   THEN BEGIN          nl   n_elements readcmd           readcmd nl 1    readcmd nl 1                readcmd    temporary readcmd  ending        ENDIF       readcmd    temporary readcmd                        field   create_struct arr:temporary field  grid:vargrid  unit:varunit  experiment:varexp  name:varname                         end of reading the field to draw      we get back _EXTRA:       extra   extractatt top_uvalue   extra        if xindex NE 0 then extra   create_struct extra   xindex  xindex        if yindex NE 0 then extra   create_struct extra   yindex  yindex        exextra   cw_specifie_get_value base        extra    mixstru exextra  extra        sextra   struct2string extra        readcmd    temporary readcmd   extra    sextra           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd       case 1 of         drawvecteur:BEGIN   we have to read the vectors            top_uvalue 1  findline top_uvalue   alreadyread     pi            top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the zonal component of vector            return             END         drawover:BEGIN   we have to read the field to overlay             top_uvalue 1  findline top_uvalue   alreadyread    2 pi            top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field to overlay            return             END   finished  we draw the plot          ELSE: top_uvalue 1  findline top_uvalue   alreadyread     1       endcase     END      vector :BEGIN   for the vectors  there is 2 components  we read u when alreadyvector   is a interger and v when alreadyvector is a interger 0 5       if floor alreadyvector 1 EQ 0 then begin         if floor alreadyvector  EQ alreadyvector then begin           readcmd     beginning of reading the zonal component of vector  readcmd            readcmd i 1     fieldu       prefix   readcmd i 1          ENDIF ELSE BEGIN           readcmd     beginning of reading the meridional component of vector  readcmd            readcmd i 1     fieldv       prefix   readcmd i 1          ENDELSE         readcmd    extractatt top_uvalue   currentreadcmd  temporary readcmd        ENDIF ELSE BEGIN         oldrdcmd   extractatt top_uvalue   currentreadcmd          nl   n_elements oldrdcmd           oldrdcmd nl 1    oldrdcmd nl 1                readcmd i    prefix   readcmd i          readcmd    temporary oldrdcmd  temporary readcmd        ENDELSE         case alreadyvector 1 of         numberofread 1:BEGIN   we finalize the reading command           IF ending NE   THEN BEGIN              nl   n_elements readcmd               readcmd nl 1    readcmd nl 1                    readcmd    temporary readcmd  ending            ENDIF           readcmd    temporary readcmd                            fieldu   create_struct arr:temporary fieldu  grid:vargrid  unit:varunit  experiment:varexp  name:varname                             end of reading the zonal component of vector               top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd   we finished zonal component reading    we know switch to meridional component             top_uvalue 1  findline top_uvalue   alreadyvector     5            top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the meridional component of vector            return             END         numberofread 0 5:BEGIN   we finalize the reading command           IF ending NE   THEN BEGIN              nl   n_elements readcmd               readcmd nl 1    readcmd nl 1                    readcmd    temporary readcmd  ending            ENDIF           readcmd    temporary readcmd                             fieldv   create_struct arr:temporary fieldv  grid:vargrid  unit:varunit  experiment:varexp  name:varname                             end of reading the meridional component of vector      we finished meridional component reading      we get back _EXTRA of the vector and we complet extra already build           extra   extractatt top_uvalue   extra            exextra   cw_specifie_get_value base            extra    mixstru exextra  extra            sextra   struct2string extra            readcmd    readcmd   vectorextra    sextra   extra mixstru extra vectorextra               top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd             if drawover then BEGIN   shall we do an overlay               top_uvalue 1  findline top_uvalue   alreadyvector     pi              top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field to overlay              return               ENDIF ELSE BEGIN   it is done know               top_uvalue 1  findline top_uvalue   alreadyread     1              top_uvalue 1  findline top_uvalue   alreadyvector     1           ENDELSE         END         ELSE:BEGIN   we still need to read some vector components             top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd            top_uvalue 1  findline top_uvalue   alreadyvector    alreadyvector 1           if floor alreadyvector  EQ alreadyvector then text     zonal               ELSE text     meridional              top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the  strtrim floor alreadyread 3  1 text component of vector            return             END       endcase     END      over :BEGIN       if alreadyover 1 EQ 0 then begin   we start the reading          readcmd     beginning of reading the field to overdraw  readcmd          readcmd i 1     fieldover     prefix  readcmd i 1          readcmd    extractatt top_uvalue   currentreadcmd  temporary readcmd        ENDIF ELSE BEGIN         oldrdcmd   extractatt top_uvalue   currentreadcmd          nl   n_elements oldrdcmd           oldrdcmd nl 1    oldrdcmd nl 1                readcmd i    prefix   readcmd i          readcmd    temporary oldrdcmd  temporary readcmd        ENDELSE         if alreadyover 1 NE numberofread 1 THEN BEGIN    we still need to read some files           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd          top_uvalue 1  findline top_uvalue   alreadyover    alreadyover 1          top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field number  strtrim alreadyover 3  1  to overlay          return           ENDIF   we finalize the reading command       IF ending NE   THEN BEGIN          nl   n_elements readcmd           readcmd nl 1    readcmd nl 1                readcmd    temporary readcmd  ending        ENDIF   on finalise la commande de lecture       readcmd    readcmd                       fieldover   create_struct arr:temporary fieldover  grid:vargrid  unit:varunit  experiment:varexp  name:varname                         end of reading the field to overdraw      we get back _EXTRA of over and we complet extra already build       extra   extractatt top_uvalue   extra        exextra   cw_specifie_get_value base        extra    mixstru exextra  extra        sextra   struct2string extra        readcmd    readcmd   overextra    sextra   extra mixstru extra overextra           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd   we reinitialize        top_uvalue 1  findline top_uvalue   alreadyread     1        top_uvalue 1  findline top_uvalue   alreadyvector     1        top_uvalue 1  findline top_uvalue   alreadyover     1     END   endcase                   determination of the boxzoom s name    if NOT keyword_set boxzoom  then widget_control  domainid  get_value   boxzoom   Writting of this one as a string   box    strtrim boxzoom 0  1    for i   1   n_elements boxzoom 1     3 2 strpos type   z  EQ  1  do       box   box   strtrim boxzoom i  1    For  plots in z  box must have by default 0 profmax   if strpos type   z  NE  1 then BEGIN   If more than 1 level is selected:      widget_control  widget_info base  find_by_uname    dthlv1  get_value   niv1     niv1   niv1 combobox_index     widget_control  widget_info base  find_by_uname    dthlv2  get_value   niv2     niv2   niv2 combobox_index     if niv1 NE niv2 then begin       box   box strtrim boxzoom 4  1 strtrim boxzoom 5  1      ENDIF ELSE BEGIN       if chkstru exextra   profmax  then  pmax   exextra profmax         ELSE pmax   200       box   box 0 strtrim pmax  1      ENDELSE   endif   box   box    IF strpos type    diag up  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 2  1                            strtrim boxzoom 1  1          strtrim boxzoom 3  1        ENDIF   IF strpos type    diag dn  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 3  1                            strtrim boxzoom 1  1          strtrim boxzoom 2  1        ENDIF     We determinate typein       IF strpos type    diag   NE  1 THEN typein    strmid type  0  4        ELSE typein    type        determination of small     ssmall   tostr smallout      We will define the string which will contain the command to be executed by widgetdessine pro     Cmd    readCmd  procedure    field                       boxzoom    box   findalways  typein typein  small ssmall      IF drawvecteur then Cmd    Cmd         vecteur    u: fieldu v: fieldv      IF drawover then Cmd    Cmd         contour   fieldover     IF n_elements sendpoints  NE 0 then Cmd    Cmd         endpoints       sendpoints         Cmd    Cmd         _extra  mixstru ex  extra  portrait       portrait     NOERASE noerase        print         for i   0  n_elements Cmd 1 do print  Cmd i       print        We complete and or update the structure top_uvalue       top_uvalue 1  findline top_uvalue   nameprocedures numdessinout    procedure    top_uvalue 1  findline top_uvalue   types numdessinout    type    top_uvalue 1  findline top_uvalue   domaines  numdessinout    boxzoom    top_uvalue 1  findline top_uvalue   txtcmd numdessinout    widcmd    top_uvalue 1  findline top_uvalue   optionsflag  numdessinout    flags    top_uvalue 1  findline top_uvalue   exextra numdessinout    extra     return  Cmd end  "); 
    337 a[335] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html", "buildreadcmd.pro", "", "        param BASE  in required     The id of the widget where apply the drawing       param SNAMEEXP  in required         param PROCEDURE  in required         param TYPE  in required          keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword COMPLETE          keyword NAMEFIELD        uses   common pro       history   Sebastien Masson  smasson lodyc jussieu fr        version     Id: buildreadcmd pro 150 2006 08 09 10:12:54Z navarro        todo   seb: documenter les param et les keyword qui ne le sont pas      FUNCTION buildreadcmd  base  snameexp  procedure  type  BOXZOOM   boxzoom                            COMPLETE   complete  NAMEFIELD   namefield       compile_opt idl2  strictarrsubs    cm_4cal   for key_caltype     get back widgets IDs     vlstid   widget_info base  find_by_uname    varlist    date1id   widget_info base  find_by_uname    calendar1    date2id   widget_info base  find_by_uname    calendar2    domainid   widget_info base  find_by_uname    domain      optionid   widget_info base  find_by_uname    option      widget_control  base  get_uvalue   top_uvalue   numdessinin    extractatt top_uvalue   smallin 2 1   numdessinout    extractatt top_uvalue   smallout 2 1     name of the file     currentfile   extractatt top_uvalue   currentfile    filelist   extractatt top_uvalue   filelist    filename   filelist currentfile    sfilename    filename      name of the variable     if keyword_set namefield  then namevar   namefield     ELSE namevar   widget_info vlstid   combobox_gettext    snamevar    namevar      get the options     options   extractatt top_uvalue   options       flags   extractatt top_uvalue   optionsflag    flags   flags  numdessinin    xindex    flags where options EQ  Longitude   x index 0    yindex    flags where options EQ  Latitude   y index 0      extra   extractatt top_uvalue   extra    if xindex NE 0 then extra   create_struct extra   xindex  xindex    if yindex NE 0 then extra   create_struct extra   yindex  yindex    exextra   cw_specifie_get_value base    exextra   extractstru exextra   min   max   inter   lct    if size exextra   type  EQ 8 then extra   mixstru exextra  extra    sextra   struct2string extra      find date1 and date2     key_caltype    extractatt top_uvalue   fileparameters currentfile caltype   widget_control  date1id  get_value   date1   widget_control  date2id  get_value   date2    if procedure EQ  pltt  AND date1 EQ date2 then BEGIN   we redefine the dates to the begining and end of the calendar     calendar    extractatt top_uvalue   fileparameters currentfile time_counter     date1   jul2date calendar 0      date2   jul2date calendar n_elements calendar 1      widget_control  date1id  set_value   date1     widget_control  date2id  set_value   date2   endif     fakecal    extractatt top_uvalue   fileparameters currentfile fakecal   IF keyword_set fakecal  THEN BEGIN     date1   date2jul date1    fakecal     date2   date2jul date2    fakecal   ENDIF   sdate1   strtrim date1  1    sdate2   strtrim date2  1      find boxzoom     if NOT keyword_set boxzoom  then widget_control  domainid  get_value   boxzoom   put boxzoom into a string   box    strtrim boxzoom 0  1    for i   1   n_elements boxzoom 1     3 2 strpos type   z  EQ  1  do        box   box   strtrim boxzoom i  1    if strpos type   z  NE  1 then BEGIN        common       min   min gdept  gdepw  max   max        box   box strtrim floor min  1 strtrim ceil max  1      endif   box   box    IF strpos type    diag up  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 2  1                            strtrim boxzoom 1  1          strtrim boxzoom 3  1        ENDIF   IF strpos type    diag dn  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 3  1                            strtrim boxzoom 1  1          strtrim boxzoom 2  1        ENDIF     find funclec_name  readparameters  meshparameters     readparameters    extractatt top_uvalue   readparameters currentfile    funclec_name   readparameters funclec_name   if keyword_set complete  then begin     sreadparameters   struct2string readparameters      meshparameters    extractatt top_uvalue   meshparameters currentfile      smeshparameters   struct2string meshparameters          We will define the string which will contain the command to be executed for the reading        Cmd     Definition of extra structure:   extra    sextra                  Definition of readparameters structure:   readparameters    sreadparameters                  Do we change of reading :   dummy   changeread readparameters                   Definition of meshparameters structure:   meshparameters    smeshparameters                  Do we change the grid :   dummy   changegrid meshparameters                   Read the data                  if n_elements date1in  ne 0 then date1   date1in else date1       sdate1                 if n_elements date2in  ne 0 then date2   date2in else date2       sdate2                funclec_name snamevar  date1  date2   snameexp                  timestep    strtrim keyword_set fakecal  1  parent    strtrim base  2                          boxzoom    box   findalways                         filename    sfilename        if n_elements sendpoints  NE 0 then          Cmd    Cmd         endpoints       sendpoints     type       type            Cmd    Cmd         _extra   mixstru ex  extra   nostruct       top_uvalue 1  findline top_uvalue   varinfo  numdessinout     filename  namevar       top_uvalue 1  findline top_uvalue   dates  numdessinout     date1  date2    ENDIF ELSE BEGIN     Cmd    funclec_name snamevar   sdate1   sdate2   snameexp                  timestep    strtrim keyword_set fakecal  1  parent    strtrim base  1                          boxzoom    box   findalways                         filename    sfilename        if n_elements sendpoints  NE 0 then          Cmd    Cmd         endpoints       sendpoints     type       type            Cmd    Cmd         _extra   mixstru ex  extra   nostruct    ENDELSE      print   ::::::::::::::::::::::       for i   0  n_elements Cmd 1 do print  Cmd i       print   ::::::::::::::::::::::         return  cmd end"); 
    338 a[336] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield.html", "changefield.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing       param NEWFIELDNAME         keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef        returns          uses          restrictions          examples          history          version     Id: changefield pro 150 2006 08 09 10:12:54Z navarro        todo   seb     PRO changefield  base  newfieldname  BOXZOOM   boxzoom       compile_opt idl2  strictarrsubs     widget_control  base  get_uvalue   top_uvalue     Change exextra :   exextra   definedefaultextra newfieldname    specifieid   widget_info base  find_by_uname    specifie    widget_control  specifieid  set_value   exextra   Change the variable   Do we need to change the vertical axis   according to the tye of points  T or W    dthlv1id   widget_info base  find_by_uname    dthlv1    widget_control  dthlv1id  get_uvalue   dthlv1_uval   oldzgridt   dthlv1_uval grid_t   get the type of point   currentfile   extractatt top_uvalue   currentfile    listgrid    extractatt top_uvalue   fileparameters currentfile listgrid   listvar    extractatt top_uvalue   fileparameters currentfile listvar     for i   0   n_elements listvar 1 do print   listvar i    listgrid i    indexvar   where listvar EQ newfieldname    indexvar   0   indexvar 0    zgridt   strupcase listgrid indexvar  NE  W    if we change the type of point   if zgridt NE oldzgridt then BEGIN   update dthlv1_uval grid_t     dthlv1_uval grid_t   zgridt     widget_control  dthlv1id  set_uvalue   dthlv1_uval   update cw_domain     if NOT keyword_set boxzoom  THEN          widget_control  widget_info base  find_by_uname    domain  get_value   boxzoom     widget_control  widget_info base  find_by_uname    domain  set_value   boxzoom   endif     return end"); 
    339 a[337] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.html", "changefile.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing       param NEWFILENAME         keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef        keyword DATE1       keyword DATE2      keyword FIELDNAME          returns          uses          restrictions          examples          history          version     Id: changefile pro 150 2006 08 09 10:12:54Z navarro        todo   seb     PRO changefile  base  newfilename  BOXZOOM   boxzoom  DATE1   date1  DATE2   date2  FIELDNAME   fieldname       compile_opt idl2  strictarrsubs     widget_control  base   hourglass   widget_control  base  get_uvalue   top_uvalue   filelist   extractatt top_uvalue   filelist    IF size newfilename   type  EQ 7 THEN newfile    where filelist EQ newfilename 0      ELSE newfile   newfilename      it is already the index of the new file   if newfile EQ  1 then begin     nothing   report invalid filename      return   endif   oldfile   extractatt top_uvalue   currentfile    oldfilename   filelist oldfile     did we really change the file    if oldfile EQ newfile AND NOT  keyword_set BOXZOOM  OR keyword_set DATE1  OR keyword_set DATE2  OR keyword_set FIELDNAME  then return      widget_control  base  update   0       we update currentfile element of the top_uvalue      top_uvalue 1  findline top_uvalue   currentfile    newfile     Calendar     oldcalendar    extractatt top_uvalue   fileparameters oldfile time_counter   newcalendar    extractatt top_uvalue   fileparameters newfile time_counter   Did we change the calendar    if array_equal oldcalendar  newcalendar  NE 1 then begin  cm_4cal    for key_caltype     key_caltype    extractatt top_uvalue   fileparameters newfile caltype   fake or real calendar      fakecal    extractatt top_uvalue   fileparameters newfile fakecal   Which dates were selected          date1id   widget_info base  find_by_uname    calendar1      if NOT keyword_set date1  then widget_control  date1id  get_value   date1     jdate1   date2jul date1      if  where newcalendar EQ jdate1 0  EQ  1 then jdate1   newcalendar 0      date2id   widget_info base  find_by_uname    calendar2      if NOT keyword_set date2  then widget_control  date2id  get_value   date2     jdate2   date2jul date2      if  where newcalendar EQ jdate2 0  EQ  1 then jdate2   date1     if jdate2 LT jdate1 THEN jdate2   jdate1     widget_control  date1id   destroy     widget_control  date2id   destroy     basecal   widget_info base  find_by_uname    basecal      rien   cw_calendar basecal  newcalendar  jdate1  uname    calendar1                             FAKECAL   fakecal  uvalue    name: calendar1   frame      rien   cw_calendar basecal  newcalendar  jdate2  uname    calendar2                             FAKECAL   fakecal  uvalue    name: calendar2   frame    ENDIF ELSE BEGIN      if keyword_set date1  then begin       date1id   widget_info base  find_by_uname    calendar1        widget_control  date1id  set_value   date1     endif     if keyword_set date2  then begin       date2id   widget_info base  find_by_uname    calendar2        widget_control  date2id  set_value   date2     endif   ENDELSE     Grid parameters and domain     newgrid    extractatt top_uvalue   meshparameters newfile    change   changegrid newgrid    if change OR keyword_set boxzoom  then BEGIN     if NOT keyword_set boxzoom  then boxzoom    1     domainid   widget_info base  find_by_uname    domain      widget_control  domainid  set_value   boxzoom   endif     file name     IF oldfile NE newfile THEN BEGIN      flstid   widget_info base  find_by_uname    filelist      widget_control  flstid  set_combobox_select    newfile   ENDIF      Variables name     vlstid   widget_info base  find_by_uname    varlist    oldfieldname   widget_info vlstid   combobox_gettext    did we really change the liste of variables    oldlistvar    extractatt top_uvalue   fileparameters oldfile listvar   newlistvar    extractatt top_uvalue   fileparameters newfile listvar   if array_equal oldlistvar  newlistvar  NE 1 THEN        widget_control  vlstid  set_value   newlistvar   set the liste of variables to the new variable name   if keyword_set fieldname  then newfieldname   fieldname ELSE newfieldname   oldfieldname   indexvar   where newlistvar EQ newfieldname    indexvar   0   indexvar 0    widget_control  vlstid  set_combobox_select   indexvar   newfieldname   newlistvar indexvar    did we change the name of the variable    if newfieldname NE oldfieldname then BEGIN     changefield  base  newfieldname  BOXZOOM   boxzoom   ENDIF       widget_control  base  update   1     return end"); 
    340 a[338] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/createhistory.html", "createhistory.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing       param SMALL   Vector composed of 3 or 4 elements  applyed to make a drawing on a small    portion of a page or screen  It delimit the zone where the drawing will    be done  If there is 4 elements: then is constituated of coordinates  expressed    in cm located from the up and left corner of the page or the window  in portrait    like in lanscape  of the bottom and left corner and of the up and right corner    of the drawing zone  If there is 3 elements: in this case  we divide the page or    the screen in small 0  columns and in small 1  lines the drawing made in the box    numbered small 2  The numerotation starting up and left by the number 1 and then     following the writing direction  By default  we make the largest drawing we can do     conserving the aspect rapport  exept when REMPLI is activated        returns          uses          restrictions          examples          history          version     Id: createhistory pro 150 2006 08 09 10:12:54Z navarro        todo   seb: je ne suis pas sur pour les param    documenter le reste      PRO createhistory  base  small       we save globalcommand in globaloldcommand     compile_opt idl2  strictarrsubs      widget_control base  get_uvalue   top_uvalue    globalcommand   extractatt top_uvalue   globalcommand      top_uvalue 1  findline top_uvalue   globaloldcommand    globalcommand   portrait or landscape      options   extractatt top_uvalue   options        optionsflag   extractatt top_uvalue   optionsflag     portrait    optionsflag where options EQ  Portrait Landscape  0 0    composition du text contennu ds history pro    texte    common                                       if keyword_set postscript  then begin                        noerase   1                       openps  infowidget   infowidget  portrait       strtrim portrait  2                   endif                                        beginning of 1                                      end of 1     if small 0 small 1  GT 1 then begin       for draw   1  small 0 small 1 1  do begin          texte    texte                         beginning of  strtrim draw 1  2                         noerase 1                          end of  strtrim draw 1  2        endfor    ENDIF    texte    texte                  if keyword_set postscript  then begin                       closeps  infowidget   infowidget                       printps                   endif    the new globalcommand     top_uvalue 1  findline top_uvalue   globalcommand    texte      for i   0  n_elements texte 1 do print  texte i       return end"); 
    341 a[339] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd.html", "cutcmd.pro", "", "     file_comments        categories         param WIDCMD        param TOREAD        param NUMBEROFREAD        param PREFIX        param NAMEEXP        param ENDING         returns          uses          restrictions          examples          history          version     Id: cutcmd pro 150 2006 08 09 10:12:54Z navarro         todo   seb     PRO cutcmd  widcmd  toread  numberofread  prefix  nameexp  ending       compile_opt idl2  strictarrsubs     dummy   where byte widcmd  EQ  byte 0  nbdblquote     CASE 1 OF     nbdblquote MOD 2: stop   odd numbers are impossibles      nbdblquote GT 0:     nbdblquote EQ 0:BEGIN   widcmd is an expression of type:   numb1 a   numb2 b     numb   we will change into the form   numb1 a    numb2 b      numb   in order to suits the new method of cutcmd       widcmd   strtrim widcmd  2    we force to start with a   or         case 1 of         strpos widcmd    EQ 0:         strpos widcmd    EQ 0:         ELSE:widcmd       widcmd       ENDCASE       separator   strsplit widcmd     extract   regex        other   strsplit widcmd     extract        IF n_elements separator  NE n_elements other  THEN stop       widcmd           FOR i   0  n_elements other 1 DO BEGIN          IF isnumber other i  LT 1 THEN other i        other i              widcmd   widcmd   separator i    other i        ENDFOR        print  widcmd     END    ENDCASE    cutted   strsplit widcmd     extract    IF strpos widcmd    EQ 0 THEN start   0 ELSE start   1   nameexp   cutted start: :2    numberofread   n_elements nameexp     IF toread GE numberofread then begin     dummy   report toread cannot be larger than numberofread      stop   ENDIF   other   cutted 1 start: :2    make sure that we have a prefix for each nameexp   IF start EQ 0 THEN other     other      nameexp   nameexp toread    prefix   other toread    IF n_elements other  EQ numberofread   1 THEN ending   other numberofread  ELSE ending        help  prefix  nameexp  ending     return end"); 
    342 a[340] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/definedefaultextra.html", "definedefaultextra.pro", "", "     file_comments        categories         param NOMVARIABLE         returns          uses          restrictions          examples          history          version    Id: definedefaultextra pro 150 2006 08 09 10:12:54Z navarro          todo   seb     FUNCTION definedefaultextra  nomvariable     compile_opt idl2  strictarrsubs      case strlowcase nomvariable  of          sn :BEGIN            return  get_extra min   31  max   37  inter    2  lct   33 nocontout          END          tn :BEGIN            return  get_extra min   20  max   31  inter    5  lct   39          END          un :BEGIN            return  get_extra min    1  max   1  inter    1  lct   64          END          vn :BEGIN            return  get_extra min    1  max   1  inter    1  lct   64          END       ELSE:    ENDCASE     return  get_extra min     max     inter     lct   39  end"); 
    343 a[341] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/doubleclickaction.html", "doubleclickaction.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: doubleclickaction pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO doubleclickaction  event       compile_opt idl2  strictarrsubs      widget_control  event id   get_uvalue   uval    widget_control  event top  get_uvalue   top_uvalue   We activate the right window    widget_control  event id  get_value   win    wset  win   What is the selected drawing     smallin   extractatt top_uvalue   smallin     smallout   extractatt top_uvalue   smallout     x    convert_coord uval x 0 uval y 0   device   to_normal 0     y    convert_coord uval x 0 uval y 0   device   to_normal 1     numcolonne   n_elements where findgen smallin 0 smallin 0  lt x 1    numligne   n_elements where findgen smallin 1 smallin 1  lt 1 y 1    numdessin   numcolonne numligne smallin 0 1   Choice of the type of action     case uval press of       1:BEGIN           if top_uvalue smallin 2  NE numdessin then begin          tracecadre  smallin   erase          if total smallin EQ smallout  EQ 3 then             tracecadre  smallout   out          smallin    smallin 0:1  numdessin            top_uvalue 1  findline top_uvalue   smallin    smallin          tracecadre  smallin           p    extractatt top_uvalue   penvs numdessin 1            x    extractatt top_uvalue   xenvs numdessin 1            y    extractatt top_uvalue   yenvs numdessin 1          END       2:BEGIN            if top_uvalue smallout 2  NE numdessin then begin          tracecadre  smallout   erase          if total smallin EQ smallout  EQ 3 then             tracecadre  smallin          smallout    smallin 0:1  numdessin            top_uvalue 1  findline top_uvalue   smallout    smallout          tracecadre  smallout   out           endif       END       4:BEGIN          tracecadre   smallin 0:1  numdessin   fill          inserthistory  event top      beginning of  strtrim numdessin  2                  end of  strtrim numdessin  2    Putting at 0 of attributes of the value concerning the drawing:            numdessin   numdessin 1           top_uvalue 1  findline top_uvalue   varinfo  numdessin                  top_uvalue 1  findline top_uvalue   dates  numdessin     0l  0l            top_uvalue 1  findline top_uvalue   nameprocedures numdessin                top_uvalue 1  findline top_uvalue   types numdessin                top_uvalue 1  findline top_uvalue   domaines  numdessin    fltarr 6            top_uvalue 1  findline top_uvalue   txtcmd numdessin                if numdessin EQ smallin 2  then             tracecadre  smallin          if numdessin EQ smallout 2  then             tracecadre  smallout   out        END        ELSE:    endcase    updatewidget  event top      return end"); 
    344 a[342] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt.html", "extractatt.pro", "", "     file_comments        categories         param TOP_UVALUE        param NAME         returns          uses          restrictions          examples          history          version     Id: extractatt pro 150 2006 08 09 10:12:54Z navarro         todo   seb     FUNCTION extractatt  top_uvalue  name     compile_opt idl2  strictarrsubs      taille   size top_uvalue     j    1    repeat BEGIN       j   j 1       if j EQ  size top_uvalue 2  then return   1    endrep until  top_uvalue 0  j  EQ name    return   top_uvalue 1  j  end"); 
    345 a[343] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html", "findline.pro", "", "     file_comments        categories         param TOP_UVALUE        param NAME         returns          uses          restrictions          examples          history          version     Id: findline pro 150 2006 08 09 10:12:54Z navarro         todo   seb     FUNCTION findline  top_uvalue  name     compile_opt idl2  strictarrsubs      taille   size top_uvalue     j    1    repeat BEGIN       j   j 1       if j EQ  size top_uvalue 2  then return   1    endrep until  top_uvalue 0  j  EQ name    return  j end"); 
    346 a[344] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/identifyclick.html", "identifyclick.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: identifyclick pro 150 2006 08 09 10:12:54Z navarro          todo   seb     FUNCTION identifyclick  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval   no_copy    thisEvent   TAG_NAMES event   Structure     if thisEvent EQ  WIDGET_TIMER  then press   0 ELSE press   event press      d 0 1  t 1 0 d 2 0     long click            d 1 0 t 2 0   normal click                          d 2 1 d 3 0 t 0 0  double click                                              t 3 0 d 0 0  double click    type    inutile     case 1 OF   d 0 0 1er reascending       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 0 AND press EQ 0:   d 0 1 1er click of the series       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 0 AND press ge 1:BEGIN          uval x    event x  0           uval y    event y  0           uval press   press          uval click   1          widget_control  event id  timer    3       END   d 1 0 1er reascending       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 1 AND press EQ 0:uval click   2   d 2 0 End of the long click       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 2 AND press EQ 0:BEGIN          type    long           uval x    uval x 0 event x    uval x   uval x sort uval x           uval y    uval y 0 event y    uval y   uval y sort uval y           uval click   0          uval press   event release       END   d 2 1       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 2 AND press ge 1:BEGIN          type    double           uval press   press          uval click   3       END   d 3 0 reascending and end of the double click       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 3 AND press EQ 0:uval click   0   t 0 0 End of the double click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 0 AND press EQ 0:   t 1 0 long click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 1 AND press EQ 0:uval click   2   t 2 0 normal click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 2 AND press EQ 0:BEGIN           type    single           press   uval press          uval click   0       END   t 3 0 End of the double click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 3 AND press EQ 0:uval click   0   Imposible case in theory:       ELSE:BEGIN          print  thisEvent  uval click  press          print   Probleme  cas normalement impossible        END    endcase     widget_control  event id  set_uvalue uval   no_copy    return   type:type  end"); 
    347 a[345] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html", "inserthistory.pro", "", "     file_comments        categories         param BASE        param TEXT        param LINE1        param LINE2         returns          uses          restrictions          examples          history          version    Id: inserthistory pro 150 2006 08 09 10:12:54Z navarro          todo   seb       PRO inserthistory   base  text  line1  line2     compile_opt idl2  strictarrsubs      widget_control base  get_uvalue   top_uvalue    globalcommand   extractatt top_uvalue   globalcommand      top_uvalue 1  findline top_uvalue   globaloldcommand    globalcommand     for i   0  n_elements globalcommand 1 do print  globalcommand i    we insert text between line1 and line2     index1   where globalcommand EQ line1    index1   index1 0 1     if index1  EQ  1 then begin        rien   report line1  n est pas trouve ds globalcommand         return     endif     index2   where globalcommand EQ line2    index2   index2 0      if index2  EQ  1 then begin        rien   report line2  n est pas trouve ds globalcommand         return     ENDIF   the new text:     globalcommand    globalcommand 0:index1  text  globalcommand index2:n_elements globalcommand 1    the new globalcommand      top_uvalue 1  findline top_uvalue   globalcommand    globalcommand       return end"); 
    348 a[346] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw.html", "letsdraw.pro", "", "     file_comments    It si the procedure lauching the drawing     If we do not give the command to it  it call    construitcommande to know what to trace       categories         param BASE  in required    The id of the widget where apply the drawing        keyword COMMANDE   A string of the style: read_data sst       keyword _EXTRA   Used to pass your keywords        uses   common pro        history   Sebastien Masson  smasson lodyc jussieu fr        version     Id: letsdraw pro 150 2006 08 09 10:12:54Z navarro        PRO letsdraw  base  COMMANDE   commande  _extra   ex     compile_opt idl2  strictarrsubs    common   we recuperate the uvalue of base   widget_control base  get_uvalue   top_uvalue   print      help   top_uvalue   struct   help   top_uvalue exextra   struct    if NOT keyword_set commande  then       commande   buildcmd base  _extra ex     if commande 0  EQ   then return   on recupere la uvalue de base    widget_control  base   hourglass    widget_control base  get_uvalue   top_uvalue   print      help   top_uvalue   struct   print       help   top_uvalue exextra   struct    help   top_uvalue extra   struct   print      print  commande   help mixstru top_uvalue exextra top_uvalue extra   struct       we recuperate the id of the graphic associated to the widget of id base     graphid   extractatt top_uvalue   graphid     widget_control  graphid  get_value   win   We select it  we will pass to it all commands concerning the window     wset  win     erase  255                         we clean the window   We make sure that  if we work with a screen coding colors on 24 bits  the specified background color  p background is the one applied       if  d n_colors gt 256 then begin         device  decomposed 1          p background ffffff x         plot 0 0          device  decomposed 0      ENDIF      smallout   long extractatt top_uvalue   smallout     numdessinout   smallout 2 1      tracecadre  smallout   fill        options   extractatt top_uvalue   options        optionsflag   extractatt top_uvalue   optionsflag     portrait    strtrim optionsflag where options EQ  Portrait Landscape  0  1 0           createpro   common                      noerase   1                      key_portrait     portrait                    Commande          filename    myuniquetmpdir    xxx_oneplot pro       inserthistory  base  Commande  beginning of  strtrim smallout 2  1            end of  strtrim smallout 2  1        top_uvalue 1  findline top_uvalue   penvs numdessinout     p     top_uvalue 1  findline top_uvalue   xenvs numdessinout     x     top_uvalue 1  findline top_uvalue   yenvs numdessinout     y     return end"); 
    349 a[347] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/loadgrid.html", "loadgrid.pro", "", "     file_comments        categories         param MESHFILEIN         keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: loadgrid pro 150 2006 08 09 10:12:54Z navarro        todo   seb     PRO loadgrid  meshfilein  _extra   ex          compile_opt idl2  strictarrsubs    cm_4mesh   ccmeshparameters filename   meshfilein   split the name according to   delimiter   meshfile   strsplit meshfilein     extract    meshfile   strtrim meshfile  2    try to find a  pro file with this name    filepro    find meshfile 0   firstfound   onlypro 0    if this is an idl batch file or a procedure     if filepro NE  NOT FOUND  THEN BEGIN     CASE protype filepro  OF   this is a procedure        proc :listing   file_basename filepro   pro    this is a function  this case is not coded         func :stop   this is an IDL batch file        batch :listing    file_basename filepro   pro      ENDCASE   ENDIF ELSE BEGIN     filenc    find meshfile 0   firstfound   onlync 0      if filenc EQ  NOT FOUND  THEN stop     listing    initncdf      filenc     ENDELSE   add the arguments and keywords if necessary   IF n_elements meshfile  GT 1 AND strmid listing  0  1  NE   THEN BEGIN      FOR i   1 filepro NE  NOT FOUND  n_elements meshfile 1 DO listing   listing         meshfile i    ENDIF    IF strmid listing  0  1  NE   THEN listing   listing     strcalling       meshfilein     _extra   ex     createpro  listing  filename   myuniquetmpdir  for_createpro pro  _extra   ex  return END "); 
    350 a[348] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/longclickaction.html", "longclickaction.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: longclickaction pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO longclickaction  event     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uval   widget_control  event top  get_uvalue   top_uvalue   What is the selected drawing    smallout   extractatt top_uvalue   smallout    smallin   extractatt top_uvalue   smallin    small   smallin   x    convert_coord uval x 0  uval y 0   device   to_normal 0    y    convert_coord uval x 0  uval y 0   device   to_normal 1    numcolonne   n_elements where findgen small 0 small 0  lt x 1   numligne   n_elements where findgen small 1 small 1  lt 1 y 1   numdessin   numcolonne numligne small 0    we put on numdessin as the leader plot   tracecadre  smallin   erase   if total smallin EQ smallout  EQ 3 then        tracecadre  smallout   out   smallin    smallin 0:1  numdessin 1     top_uvalue 1  findline top_uvalue   smallin    smallin   tracecadre  smallin    p    extractatt top_uvalue   penvs numdessin     x    extractatt top_uvalue   xenvs numdessin     y    extractatt top_uvalue   yenvs numdessin      Change the domain box:     coor    convert_coord uval x  uval y   device   to_data    x    coor 0  0  coor 0  1    y    coor 1  0  coor 1  1    domainid   widget_info event top  find_by_uname    domain    boxzoom    x  y    Do we have to pass the boxzoom in indexes     currentplot    extractatt top_uvalue   smallin 2 1   options   extractatt top_uvalue   options       flags   extractatt top_uvalue   optionsflag    flags   flags  currentplot    changex    flags where options EQ  Longitude   x index 0  EQ 1   changey    flags where options EQ  Latitude   y index 0  EQ 1   if changex OR changey then begin   We want to find the type of grid which is used     currentfile   extractatt top_uvalue   currentfile      listgrid    extractatt top_uvalue   fileparameters currentfile listgrid     listvar    extractatt top_uvalue   fileparameters currentfile listvar     vlstid   widget_info event top  find_by_uname    varlist      namevar   widget_info vlstid   combobox_gettext      indexvar   where listvar EQ namevar      vargrid   strupcase listgrid indexvar      domdef  boxzoom  gridtype   vargrid     grille   1   1   1   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz     if changex then boxzoom 0:1     firstx  lastx      if changey then boxzoom 2:3     firsty  lasty    endif     widget_control  domainid  set_value   boxzoom       actionid   widget_info event top  find_by_uname    action    type   widget_info actionid   combobox_gettext    case uval press of     1:BEGIN       nodates    type EQ  xt  OR type EQ  yt  OR type EQ  zt  OR type EQ  t        updatewidget  event top   noboxzoom  nodates   nodates  notype   type NE  plt        letsdraw  event top     END     2:BEGIN        IF type EQ  plt  THEN BEGIN           top_uvalue 1  findline top_uvalue   types smallout 2 1     pltz          forcetype    pltz        ENDIF        updatewidget  event top   noboxzoom       letsdraw  event top     END     4:BEGIN       IF type EQ  plt  THEN BEGIN           top_uvalue 1  findline top_uvalue   types smallout 2 1     pltt          forcetype    pltt        ENDIF        updatewidget  event top   noboxzoom   nodates       letsdraw  event top  forcetype   forcetype     END   endcase     return end"); 
    351 a[349] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html", "read_vermair.pro", "", "     file_comments        categories         param NAME        param DEBUT        param FIN        param NOMEXP        keyword PARENT   same as DIALOG_PARENT de dialog_message pro      keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword _EXTRA   Used to pass your keywords        returns          uses          restrictions          examples          history          version     Id: read_vermair pro 150 2006 08 09 10:12:54Z navarro        todo   seb      FUNCTION read_vermair  name  debut  fin  nomexp  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex     compile_opt idl2  strictarrsubs    common       if name EQ  un  then name    vozocrtx     if name EQ  vn  then name    vomecrty     if debut EQ fin then begin       res   lec name debut nomexp  BOXZOOM boxzoom  _EXTRA   ex     ENDIF ELSE res   lect name debut fin  nomexp  BOXZOOM boxzoom  _EXTRA   ex        return   tab:res  grille:vargrid  unite:  experience:varexp  nom:varname  end"); 
    352 a[350] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/scanfile.html", "scanfile.pro", "", "     file_comments        categories         param NAMEFILE         keyword GRID        keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: scanfile pro 150 2006 08 09 10:12:54Z navarro        todo   seb : I don t know what to do with that            liste des presupposes:         1  le fichier a lire est un fichier netcdf         2  le nom de ce fichier finit         par U nc  V nc  W nc  T nc ou F nc  la lettre avant le         nc designant la grille a laquelle se rapporte la champ          Si tel n est pas la cas  le fichier est attribue a la grille         T          3  ce fichier contient une dimension infinie qui doit etre         celle qui se rapporte au temps et au mois 2 autres dimensions         dont les noms sont  x lon xi_  et  y lat  ou          eta_  ou bien en majuscule          4  il doit exiter ds ce fichier une unique variable n ayant         qu une dimension et etant la dimension temporelle  cette         variable sera prise comme axe des temps  Rq: si plusieurs         variables verifient ces criteres on considere la premiere         variable         5  Cette variable axe des temps doit contenir l attribut          units qui doit etre ecrit suivant la syntaxe:                  seconds since 0001 01 01 00:00:00                    hours since 0001 01 01 00:00:00                    days since 1979 01 01 00:59:59                    months since 1979 01 01 00:59:59                    years since 1979 01 01 00:59:59       je crois que c est tout             GRID UTVWF  to specify the type of grid  Defaut is  1           based on the name of the file if the file ends by          GRID _ TUVFW NC  not case sensible  or  2  T if case  1           is not found      FUNCTION scanfile  namefile  GRID   GRID  _extra   ex     compile_opt idl2  strictarrsubs    common     res    1     filename     fullname   isafile filename   namefile  IODIRECTORY   iodir  _extra   ex      open file     cdfid   ncdf_open fullname      What contains the file      infile   ncdf_inquire cdfid       find vargrid     IF keyword_set grid  THEN vargrid   strupcase grid  ELSE BEGIN     vargrid    T                  default definition     IF finite glamu 0  EQ 1 THEN BEGIN       pattern    GRID   GRID_   GRID   UPID_   30ID_        gdtype    T   U   V   W   F        fnametest   strupcase fullname        FOR i   0  n_elements pattern 1 DO BEGIN         FOR j   0  n_elements gdtype 1 DO BEGIN           substr   pattern i gdtype j            pos   strpos fnametest  substr            IF pos NE  1 THEN                vargrid   strmid fnametest  pos strlen substr 1  1          ENDFOR       ENDFOR     ENDIF   ENDELSE     name of all dimensions     namedim   strarr infile ndims    for dimiq   0  infile ndims 1 do begin     ncdf_diminq  cdfid  dimiq  tmpname  value      namedim dimiq    strlowcase tmpname    ENDFOR   we are looking for a x dimension    dimidx   where namedim EQ  x  OR strmid namedim  0  3  EQ  lon  OR strmid namedim  0  3  EQ  xi_  OR namedim EQ  xt_i7_156    dimidx   dimidx 0    if dimidx EQ  1 then begin     print   one of the dimensions must have the name:  x  or  lon  or  xi_  or  xt_i7_156      stop   endif   we are looking for a y dimension    dimidy   where namedim EQ  y  OR strmid namedim  0  3  EQ  lat  OR strmid namedim  4  EQ  eta_  OR namedim EQ  yt_j6_75    dimidy   dimidy 0    if dimidy EQ  1 then begin     print   one of the dimensions must have the name:  y  or  lat  or  eta_  or  yt_j6_75      stop   endif     name of all variables     we keep only the variables containing at least x  y and time dimension  if existing    namevar   strarr infile nvars    for varid   0  infile nvars 1 do begin     invar   ncdf_varinq cdfid  varid    what contains the variable      if  where invar dim EQ dimidx 0  NE  1 AND           where invar dim EQ dimidy 0  NE  1 AND           where invar dim EQ infile recdim 0  NE  1 OR infile recdim EQ  1        THEN namevar varid    invar name    ENDFOR   namevar   namevar where namevar NE     listgrid   replicate vargrid  n_elements namevar      time axis     date0fk   date2jul 19000101    IF infile recdim EQ  1 THEN BEGIN      jpt   1     time   date0fk     fakecal   1   ENDIF ELSE BEGIN     ncdf_diminq  cdfid  infile recdim  timedimname  jpt   we look for the variable containing the time axis   we look for the first variable having for only dimension infile recdim     varid   0     repeat BEGIN       invar   ncdf_varinq cdfid  varid         varid   varid 1     endrep until n_elements invar dim  EQ 1 AND invar dim 0  EQ infile recdim     varid   varid 1       CASE 1 OF       varid EQ  1:BEGIN          dummy   report the file  fullname  has no time axis C we create a fake calendar           fakecal   1         time   date0fk   lindgen jpt        END       invar natts EQ 0:BEGIN          dummy   report the variable  invar name  has no attribut C we create a fake calendar           fakecal   1         time   date0fk   lindgen jpt        END       ELSE:BEGIN     we want to know which attributes are attached to the time variable            attnames   strarr invar natts          for attiq   0  invar natts 1 do attnames attiq    ncdf_attname cdfid  varid  attiq          if  where attnames EQ  units 0  EQ  1 then BEGIN           dummy   report Attribut  units  not found for the variable  varid name C we create a fake calendar             fakecal   1           time   date0fk   lindgen jpt          ENDIF ELSE BEGIN    we read the time axis           ncdf_varget  cdfid  varid  time           time   double time            ncdf_attget  cdfid  varid   units  value   time_counter:units    seconds since 0001 01 01 00:00:00      time_counter:units    hours since 0001 01 01 00:00:00      time_counter:units    days since 1979 01 01 00:00:00      time_counter:units    months since 1979 01 01 00:00:00      time_counter:units    years since 1979 01 01 00:00:00              value   strtrim strcompress string value  2            mots   str_sep value                unite   mots 0            debut   str_sep mots 2        now we try to find the attribut called calendar    the the attribute  calendar  exists    If no  we suppose that the calendar is gregorian calendar             if  where attnames EQ  calendar 0  NE  1 then BEGIN             ncdf_attget  cdfid  varid   calendar  value             value   string value              CASE value OF                noleap :key_caltype    noleap                 360d :key_caltype    360d                 greg :IF n_elements key_caltype  EQ 0 THEN key_caltype    greg                ELSE:BEGIN              notused   report Unknown calendar:  value  we use greg calendar                   key_caltype    greg                END             ENDCASE           ENDIF ELSE BEGIN          notused   report Unknown calendar  we use  key_caltype  calendar               IF n_elements key_caltype  EQ 0 THEN key_caltype    greg            ENDELSE     BEWARE we have to recuperate the calendar attribute and ajust TIME by consequence        We pass TIME in IDL julian days             unite   strlowcase unite            IF strpos unite   s  strlen unite 1  NE  1 THEN unite   strmid unite  0  strlen unite 1            IF strpos unite   julian_  NE  1 THEN unite   strmid unite  7            case unite of              second :time   julday debut 1  debut 2  debut 0 time 86400 d              hour :time   julday debut 1  debut 2  debut 0 time 24 d              day :time   julday debut 1  debut 2  debut 0 time              month :BEGIN                if total fix time  NE time  NE 0 then     we switch to days with 30d m                  time   julday debut 1  debut 2  debut 0 round time 30                  ELSE for t   0  n_elements time 1 DO                    time t    julday debut 1 time t  debut 2  debut 0              END              year :BEGIN               if total fix time  NE time  NE 0 then     we switch to days with 365d y                  time   julday debut 1  debut 2  debut 0 round time 365                  ELSE for t   0  n_elements time 1 do                    time t    julday debut 1  debut 2  debut 0 time t              END           ENDCASE     high frequency calendar: more than one element per day           IF max histogram long time time 0  GT 1 THEN fakecal   1 ELSE fakecal   0           date0fk   date2jul 19000101            IF keyword_set fakecal  THEN time   date0fk lindgen jpt              ELSE time   long time            ENDELSE       END     ENDCASE   ENDELSE     ncdf_close  cdfid     return   filename:fullname  time_counter:time  listvar:namevar                listgrid:strupcase listgrid  caltype:key_caltype                fakecal:date0fk fakecal  end"); 
    353 a[351] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html", "selectfile.pro", "", "  PRO selectfile_event  event       compile_opt idl2  strictarrsubs    common     widget_control  event id  get_uvalue   eventuvalue   default definition of messenger when selectfile_event is called   directly without calling xmanager   widget_control  event handler  get_uvalue   messenger    messenger    1    IF chkstru eventuvalue   name  EQ 0 THEN return    case eventuvalue name of   cancel button      Global Cancel :BEGIN        widget_control  event handler  get_uvalue   messenger        messenger    1       widget_control  event handler   destroy     END   data file informations      datafilename :BEGIN       widget_control  event id  get_value   filename       filename   isafile filename   filename 0  iodir   iodir   onlync  title    data file name        if size filename   type  NE 7 then BEGIN          widget_control  event id  set_value             return       ENDIF       widget_control  event id  set_value   filename     END      browse datafilename :BEGIN       filename   isafile iodir   iodir   onlync  title    data file name        if size filename   type  NE 7 then return       widget_control  widget_info event handler  find_by_uname    datafilename                            set_value   filename     END   switch automatic by and mesh definition buttons      gridload :BEGIN       IF event select EQ 1 THEN BEGIN          widget_control  widget_info event handler  find_by_uname    argtxt  set_value             widget_control  widget_info event handler  find_by_uname    kwdtxt  set_value             widget_control  widget_info event handler  find_by_uname    kwd base  sensitive   1         CASE event value OF            via initnetcdf :BEGIN             widget_control  widget_info event handler  find_by_uname    meshload  set_value    initncdf  editable   0             widget_control  widget_info event handler  find_by_uname    arg base  sensitive   0             widget_control  widget_info event handler  find_by_uname    kwdlab  set_value    initncdf keywords:            END            via perso :BEGIN             widget_control  widget_info event handler  find_by_uname    meshload  set_value     editable   1             widget_control  widget_info event handler  find_by_uname    arg base  sensitive   1             widget_control  widget_info event handler  find_by_uname    kwdlab  set_value    keywords of IDL procedure:            END          ENDCASE       ENDIF      END   name of the procedure or batch file      meshload :BEGIN       widget_control  event id  get_value   filename       filename    find filename 0   onlypro   firstfound 0        if filename EQ  NOT FOUND  then begin         widget_control  event id  set_value             return       endif        CASE protype filename  OF   this is a procedure          proc :BEGIN            widget_control  widget_info event handler  find_by_uname    arg base  sensitive   1           widget_control  widget_info event handler  find_by_uname    kwd base  sensitive   1           widget_control  widget_info event handler  find_by_uname    kwdlab  set_value   file_basename filename   pro  keywords:          END   this is a function  this case is not accepted          func :BEGIN            widget_control  event id  set_value               return         END   this is an IDL batch file          batch :BEGIN            widget_control  widget_info event handler  find_by_uname    arg base  sensitive   0           widget_control  widget_info event handler  find_by_uname    kwd base  sensitive   0           widget_control  widget_info event handler  find_by_uname    kwdlab  set_value    no keywords:          END       ENDCASE       widget_control  widget_info event handler  find_by_uname    argtxt  set_value           widget_control  widget_info event handler  find_by_uname    kwdtxt  set_value           widget_control  event id  set_value   file_basename filename   pro      END      browse meshload :BEGIN       filename   isafile iodir   homedir   onlypro  title    to load the grid file        if size filename   type  NE 7 then return       meshload_id   widget_info event handler  find_by_uname    meshload        widget_control  meshload_id  set_value   filename       selectfile_event   ID:meshload_id  TOP:event top  HANDLER:event handler      END    Lets Go  button      Lets Go :BEGIN       widget_control  widget_info event handler  find_by_uname    datafilename                            get_value   datafilename       datafilename   datafilename 0        IF datafilename EQ   THEN return       datafilename   isafile filename   datafilename  iodir   iodir   onlync  title    data file name        if size datafilename   type  NE 7 then BEGIN          widget_control  widget_info event handler  find_by_uname    datafilename                              set_value             return       ENDIF        widget_control  widget_info event handler  find_by_uname    gridload                            get_value   gridload       widget_control  widget_info event handler  find_by_uname    argtxt                            get_value   argtxt       argtxt   strtrim argtxt 0  2        IF strpos argtxt    EQ 0 THEN argtxt   strmid argtxt  1        widget_control  widget_info event handler  find_by_uname    kwdtxt                            get_value   kwdtxt       kwdtxt   strtrim kwdtxt 0  2        IF strpos kwdtxt    EQ 0 THEN kwdtxt   strmid kwdtxt  1         CASE gridload 0  OF          via perso :BEGIN           meshload_id   widget_info event handler  find_by_uname    meshload            widget_control  meshload_id  get_value   meshload           meshload   meshload 0            IF meshload EQ   THEN return           meshload    find meshload 0   onlypro   firstfound 0            if meshload EQ  NOT FOUND  then begin             widget_control  meshload_id  set_value                 return           endif          END           via initnetcdf :meshload   datafilename       ENDCASE       IF strlen argtxt  NE 0 THEN meshload   meshload         argtxt       IF strlen kwdtxt  NE 0 THEN meshload   meshload         kwdtxt       widget_control  event handler  get_uvalue   messenger        messenger   create_struct datafilename  datafilename   meshload  meshload        widget_control  event handler   destroy     END    endcase   return end        file_comments        categories         param DATAFILENAME        param IDLFILE        param ARGSPRO         keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: selectfile pro 150 2006 08 09 10:12:54Z navarro         todo   seb: documenter les params      FUNCTION selectfile  datafilename  idlfile  argspro  _extra   ex       compile_opt idl2  strictarrsubs    common         We create a pointer in the uvalue to recuperate answers at setted    questions atthe time of the use of this widget  So when the widget    is deleted in the procedure  event pro  the variable on which the    pointer pointed  contained in the uvalue of the widget  is not    deleted and we can recuperate the result      messenger   ptr_new allocate_heap    base   widget_base column  title    selectfile   align_center  uvalue   messenger  _EXTRA   ex    cancel button   dummyid   widget_button base  value    Cancel  uvalue    name: Global Cancel    data file informations   basea   widget_base base   row   align_center    dummyid   widget_label basea  value    Data file name:     database   widget_text basea  value     uvalue    name: datafilename                              uname    datafilename  xsize   45   EDITABLE    dummyid   widget_button basea  value    Browse  uvalue    name: browse datafilename    switch automatic by and mesh definition buttons   baseb   widget_base base   row   align_center    gdldid   cw_bgroup baseb   automatic grid construction with initncdf pro                                     grid construction with other IDL batch or procedure                             exclusive  set_value   0  uvalue    name: gridload                            uname    gridload  button_uvalue    via initnetcdf   via perso    name of the procedure or batch file   basec   widget_base base   row   align_center  uname    pro base    dummyid   widget_label basec  value    IDL batch file of procedure    basemeshload   widget_text basec  value    initncdf  uvalue    name: meshload                              uname    meshload  xsize   45  editable   0    dummyid   widget_button basec  value    Browse  uvalue    name: browse meshload    arguments informations   based   widget_base base   row   align_center  uname    arg base  sensitive   0    dummyid   widget_label based  value    procedure arguments    agrbase   widget_text based  value     uvalue    name: argtxt                              uname    argtxt  xsize   45   EDITABLE    keyword informations   basee   widget_base base   row   align_center  uname    kwd base    dummyid   widget_label basee  uname    kwdlab  value         keywords of initncdf:    dummyid   widget_text basee  value                                 uvalue    name: kwdtxt  uname    kwdtxt  xsize   45   EDITABLE     Lets Go  button   basego   widget_button base  value    Lets Go  uvalue    name: Lets Go       IF n_elements datafilename  NE 0 THEN BEGIN      widget_control  database  set_value   datafilename     selectfile_event   ID:database  TOP:base  HANDLER:base    ENDIF    IF n_elements idlfile  NE 0 THEN BEGIN      widget_control  basemeshload  set_value   idlfile     selectfile_event   ID:basemeshload  TOP:base  HANDLER:base      widget_control  basemeshload  get_value   idlfile2     IF idlfile2 0  NE   THEN widget_control  gdldid  set_value   1   ENDIF    IF n_elements argspro  NE 0 THEN widget_control  argbase  set_value   argspro     IF n_elements datafilename  EQ 0 THEN BEGIN      widget_control  base   realize     xmanager   selectfile  base  event_handler    selectfile_event  no_block   0   ENDIF ELSE selectfile_event   ID:basego  TOP:base  HANDLER:base      get back the information from selectfile_event   res    messenger   ptr_free  messenger   if size res   type  NE 8 then return   1    loadgrid  res meshload  _extra   ex    ccreadparameters    funclec_name: read_ncdf                jpidta:jpidta  jpjdta:jpjdta  jpkdta:jpkdta               ixmindta:ixmindta  ixmaxdta:ixmaxdta               iymindta:iymindta  iymaxdta:iymaxdta               izmindta:izmindta  izmaxdta:izmaxdta     res3   scanfile res datafilename  iodir   iodir  _extra   ex    if size res3   type  NE 8 then return    1    return   fileparameters:res3  readparameters:ccreadparameters  meshparameters:ccmeshparameters   end"); 
    354 a[352] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/singleclickaction.html", "singleclickaction.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: singleclickaction pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO singleclickaction  event     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  return      widget_control  event id  get_uvalue   uval   widget_control  event top  get_uvalue   top_uvalue   actionid   widget_info event top  find_by_uname    action    type   widget_info actionid   combobox_gettext    IF type NE  plt  THEN return   We activate the right window   widget_control  event id  get_value   win   wset  win   choice of the type of action   case uval press of     1:BEGIN       coor    convert_coord uval x 0  uval y 0   device   to_data        x   coor 0        y   coor 1        help   x   y       oldgrid   vargrid       CASE strupcase vargrid  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     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 RETURN       IF y GT  y range 1  THEN RETURN       IF y LT  y range 0  THEN RETURN         cell   inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4                         onsphere   key_onearth            x1    1                   free memory         y1    1                   free memory         x2    1                   free memory         y2    1                   free memory         x3    1                   free memory         y3    1                   free memory         x4    1                   free memory         y4    1                   free memory              IF cell 0  EQ  1 OR n_elements cell  GT 1 THEN RETURN               yy   cell 0 nx 1 key_periodic nx EQ jpi        xx   cell 0  MOD  nx 1 key_periodic nx EQ jpi          CASE strupcase vargrid  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         print  glamt xx  yy  gphit xx  yy          cmd    buildcmd event top  boxzoom   boxzoom        END     ELSE:   endcase    RETURN end"); 
    355 a[353] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html", "tracecadre.pro", "", "     file_comments        categories         param SMALL         keyword OUT        keyword ERASE        keyword FILL          returns          uses          restrictions          examples          history          version    Id: tracecadre pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO tracecadre  small  out   out  erase   erase  fill   fill     determination of the column and of the line corresponding in input to small     compile_opt idl2  strictarrsubs      numdessin   small 2 1    numligne   numdessin small 0     numcolonne   numdessin numligne small 0    determination of poscadre    largeurcolonne   1 small 0     largeurligne   1 small 1     cadre    numcolonne largeurcolonne 1 numligne 1 largeurligne                   numcolonne 1 largeurcolonne  1 numligne largeurligne     decale   0 001    cadre   cadre decale decale decale decale     reinitplt     p position    0  0  1  1     IF keyword_set fill  then begin       polyfill   cadre 0  cadre 2  cadre 2  cadre 0  cadre 0              cadre 1  cadre 1  cadre 3  cadre 3  cadre 1  color   255   normal    ENDIF ELSE BEGIN       plot   cadre 0  cadre 2  cadre 2  cadre 0  cadre 0              cadre 1  cadre 1  cadre 3  cadre 3  cadre 1             xrange    0  1  yrange    0  1  linestyle   2 keyword_set out              noerase   normal  thick   2  color   0 255 keyword_set erase     ENDELSE      return end"); 
    356 a[354] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/updatewidget.html", "updatewidget.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing        keyword NOBOXZOOM        keyword NODATES        keyword NOTYPE          returns          uses          restrictions          examples          history          version    Id: updatewidget pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO updatewidget  base  NOBOXZOOM   noboxzoom  NODATES   nodates  NOTYPE   notype       compile_opt idl2  strictarrsubs      widget_control base  get_uvalue   top_uvalue    smallin   extractatt top_uvalue   smallin     numdessinin   smallin 2 1        widget_control  base  update   0     date1 et date2      if keyword_set nodates  then begin       date1   0       date2   0     ENDIF ELSE BEGIN        dates    extractatt top_uvalue   dates  numdessinin        date1   dates 0    date2   dates 1     ENDELSE     domain      boxzoom    extractatt top_uvalue   domaines  numdessinin     if total boxzoom  EQ 0 then boxzoom    1    if keyword_set noboxzoom  then boxzoom   0     varinfo: filename   namevar      varinfo    extractatt top_uvalue   varinfo  numdessinin     filename   varinfo 0    nomvar   varinfo 1       if filename NE   OR nomvar NE   THEN BEGIN       changefile  base  filename  fieldname   nomvar  BOXZOOM   boxzoom  DATE1   date1  DATE2   date2    ENDIF ELSE BEGIN       if date1 NE 0 then begin          date1id   widget_info base  find_by_uname    calendar1           widget_control  date1id  set_value   date1       endif       if date2 NE 0 then begin          date2id   widget_info base  find_by_uname    calendar2           widget_control  date2id  set_value   date2       endif       if keyword_set boxzoom  then BEGIN           domainid   widget_info base  find_by_uname    domain           widget_control  domainid  set_value   boxzoom       endif    ENDELSE     exextra      if n_elements extractatt top_uvalue   exextra numdessinin  NE 0 then begin       exextra    extractatt top_uvalue   exextra numdessinin        specifieid   widget_info base find_by_uname    specifie        widget_control  specifieid  set_value   exextra    endif     text command      txtcmd    extractatt top_uvalue    txtcmd numdessinin     if txtcmd NE   then begin       txtcmdid   widget_info base  find_by_uname    txtcmd        widget_control  txtcmdid  set_value   txtcmd    endif     graphtype         if NOT keyword_set notype  then BEGIN       graphtype    extractatt top_uvalue   types numdessinin        if graphtype NE   then begin          actionid   widget_info base find_by_uname    action           widget_control  actionid  get_value   action_value          widget_control  actionid  set_combobox_select    where action_value EQ graphtype 0        endif    endif      widget_control  base  update   1        return end"); 
    357 a[355] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim.html", "xcreateanim.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: xcreateanim pro 150 2006 08 09 10:12:54Z navarro          todo   seb     pro xcreateanim_event  event      compile_opt idl2  strictarrsubs    common   We recuperate arguments contained in the widget   if tag_names event   structure_name  NE  WIDGET_BUTTON  then return   widget_control  event id  get_uvalue   uval   if n_elements uval  EQ 0 then return   if uval EQ  cancel  then begin     widget_control  event top   destroy     return   ENDIF   We will write the animation      widget_control  event top  get_uvalue   local_uvalue   widget_control  local_uvalue parent  get_uvalue   top_uvalue     calendar    extractatt top_uvalue   fileparameters local_uvalue indexfile time_counter   key_caltype    extractatt top_uvalue   fileparameters local_uvalue indexfile caltype   fakecal    extractatt top_uvalue   fileparameters local_uvalue indexfile fakecal     widget_control  widget_info event top  find_by_uname    Filename                        get_value   nomfic   nomfic   nomfic 0      widget_control  widget_info event top  find_by_uname    directorie                        get_value   animdir   animdir   animdir 0      widget_control  widget_info event top  find_by_uname    debut                        get_value   vdate1   index1   where calendar eq date2jul vdate1    index1   index1 0     if index1 EQ  1 then return     widget_control  widget_info event handler  find_by_uname    fin                        get_value   vdate2   index2   where calendar eq date2jul vdate2    index2   index2 0     if index2 EQ  1 OR index2 LE index1 then return   We delete the widget before create the file  ps   widget_control  event top   destroy     creation of the routine which will serve us to do the drawing     We recuperate the list of instructions    globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program   createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                   KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript  DATE1IN   date1in  DATE2IN   date2in     creation of the file       we recuperate the number of octets on which we code the palette    device  get_visual_depth   depth   Picture s size  in number of pixels :   xsize    d x_size   ysize    d y_size     We check that the file s name end by  gif   if strpos nomfic   gif  EQ  1 then nomfic   nomfic gif     current_window    d window   window   free   pixmap  xsize   xsize  ysize   ysize     indication of the number of the picture we are creating   base   widget_base    sliderid   widget_slider base  minimum   1  maximum   index2 index1 1  value   1                                title    image number:     widget_control  base   realize     Beginning of the gif file  Writting of an empty  picture    IF keyword_set fakecal  THEN date   index1 ELSE date   jul2date calendar index1    xxx2ps   noerase  date1in   date  date2in   date       image   tvrd true   depth GT 8    If an 8 bit image was read  reduce the number of colors   if depth le 8 then begin     tvlct  red  green  blue   get     reduce_colors  image  index     red   red index      green   green index      blue   blue index    endif                 if depth gt 8 then     Convert 24 bit image to 8 bit   image   color_quan image  1  red  green  blue  colors   256  get_translation   translation   map_all        write_gif  animdir nomfic  image  red  green  blue   multiple   wdelete   d window     Creation and writting loop in the file      IF index2 GT index1 THEN BEGIN     FOR ind   index1 1  index2 do BEGIN         widget_control  sliderid  set_value   ind index1 1   We move the slider          window   free   pixmap  xsize   xsize  ysize   ysize       IF keyword_set fakecal  THEN date   ind ELSE date   jul2date calendar ind        xxx2ps   noerase  date1   date  date2   date               image   tvrd true   depth GT 8          if depth gt 8 then           image   color_quan image  1  aaa  bbb  ccc  colors   256  translation   translation            write_gif  animdir nomfic  image  red  green  blue   multiple       wdelete   d window     ENDFOR   ENDIF    We put a last white picture   window   free   pixmap  xsize   xsize  ysize   ysize   reinitplt   plot    0    0   nodata   image   tvrd true   depth GT 8      if depth gt 8 then       image   color_quan image  1  aaa  bbb  ccc  colors   256  translation   translation        write_gif  animdir nomfic  image  red  green  blue   multiple   wdelete   d window   File s closing    write_gif  animdir nomfic   close    widget_control  base   destroy    Rerock in  normal  mode   thisOS   strupcase strmid version os_family  0  3      wset  current_window    If we are under x  we try to lauch xanim     if thisOS NE  MAC  AND thisOS NE  WIN  then begin     spawn   which xanim  result     if strpos result 0   xanim  EQ strlen result 0 5 then spawn   xanim  animdir nomfic      endif        return end        file_comments        categories         param PARENT         returns          uses          restrictions          examples          history          version    Id: xcreateanim pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO xcreateanim  parent     compile_opt idl2  strictarrsubs    common      widget_control  parent  get_uvalue   top_uvalue     We will make sure that all procedure are not in pltt      procedures   extractatt top_uvalue   nameprocedures     if total procedures EQ  pltt  NE 0 then begin       nothing   report Certains des plots ont un axe se rapportant au temps   C Animation impossible   error        return    ENDIF     We will make sure that all figure have the same calendar      filelist   extractatt top_uvalue    filelist     filenames    extractatt top_uvalue    varinfo 0       filenames   reform filenames     filenames   filenames uniq filenames  sort filenames     if strtrim filenames 0  1  EQ   then filenames   filenames 1:n_elements filenames 1     indexfile    where filelist EQ filenames 0 0     calendar    extractatt top_uvalue   fileparameters indexfile time_counter      key_caltype    extractatt top_uvalue   fileparameters indexfile caltype    fakecal    extractatt top_uvalue   fileparameters indexfile fakecal    if n_elements filenames  GT 1 then begin       for i   1  n_elements filenames 1 do begin          indexfilebis    where filelist EQ filenames i 0           calendarbis    extractatt top_uvalue   fileparameters indexfilebis time_counter          if n_elements calendarbis  NE n_elements calendar   then begin             nothing   report Les diffrents plots n utilisent pas le meme calendrier   C Animation impossible   error              return          ENDIF          if total calendar NE calendarbis  NE 0 then begin             nothing   report Les diffrents plots n utilisent pas le meme calendrier   C Animation impossible   error              return          endif       endfor    endif     It is possible to do an animation       base   widget_base column  title    animation creation  uvalue    parent:parent  indexfile:indexfile        rien   widget_label base  value    animation name     rien   widget_text base value anim_idl gif  uname Filename   editable     rien   widget_label base  value    animation directory     if n_elements animdir  EQ 0 then cd  current   animdir    rien   widget_text base value animdir  uname directorie   editable     rien   widget_label base  value    starting date     rien   cw_calendar base  calendar  calendar 0                            FAKECAL   fakecal  uname    debut  uvalue    name: calendar   frame     rien   widget_label base  value    ending date     rien   cw_calendar base  calendar  calendar n_elements calendar 1                            FAKECAL   fakecal  uname    fin  uvalue    name: calendar   frame     rien   widget_button base value OK  uvalue    ok     rien   widget_button base value Cancel  uvalue    cancel       widget_control base realize    xmanager xcreateanim  base   no_block        return end"); 
    358 a[356] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xxxmenubar_event.html", "xxxmenubar_event.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version     Id: xxxmenubar_event pro 150 2006 08 09 10:12:54Z navarro        todo    seb     PRO xxxmenubar_event  event     compile_opt idl2  strictarrsubs    common     case event value of      Open  :begin        oldmeshparams   ccmeshparameters       newfile   selectfile        if size newfile   type  NE 8 then return       widget_control  event top   hourglass       widget_control  event top  update   0       widget_control  event top  get_uvalue   top_uvalue   We take care of filelist       filelist   extractatt top_uvalue   filelist        filelist    filelist  newfile fileparameters filename        currentfile   n_elements filelist 1   We update the widget       filelistid   widget_info event top  find_by_uname    filelist        widget_control  filelistid  combobox_additem   file_basename newfile fileparameters filename        widget_control  filelistid  set_combobox_select   currentfile   We update filelist and currentfile s elements of the top_value        top_uvalue 1  findline top_uvalue   filelist    filelist       oldfile    top_uvalue 1  findline top_uvalue   currentfile         top_uvalue 1  findline top_uvalue   currentfile    currentfile   We take care of the name of the variable       vlstid   widget_info event top  find_by_uname    varlist    What is the selected field   Do we reselect it         fieldname   widget_info vlstid   combobox_gettext        index   where newfile fileparameters listvar EQ fieldname         widget_control  vlstid  set_value   newfile fileparameters listvar       widget_control  vlstid  set_combobox_select   0   index 0    We take care of the calendar        key_caltype   newfile fileparameters caltype       date1id   widget_info event top  find_by_uname    calendar1        widget_control  date1id  get_value   date1       widget_control  date1id   destroy       jdate1   jul2date date1        if  where newfile fileparameters time_counter EQ jdate1 0  EQ  1         then jdate1   newfile fileparameters time_counter 0        date2id   widget_info event top  find_by_uname    calendar2        widget_control  date2id  get_value   date2       widget_control  date2id   destroy       jdate2   jul2date date2        if  where newfile fileparameters time_counter EQ jdate2 0  EQ  1 then jdate2   jdate1       basecal   widget_info event top  find_by_uname    basecal        fakecal   newfile fileparameters fakecal       rien   cw_calendar basecal  newfile fileparameters time_counter  jdate1  uname    calendar1                               FAKECAL   fakecal  uvalue    name: calendar1   frame        rien   cw_calendar basecal  newfile fileparameters time_counter  jdate2  uname    calendar2                               FAKECAL   fakecal  uvalue    name: calendar2   frame    We update fileparameters  readparameters et meshparameters elements of the top_value       newfileparameters   ptrarr currentfile 1   allocate_heap        FOR i   0  currentfile 1 DO             newfileparameters i     extractatt top_uvalue   fileparameters i         newfileparameters currentfile    newfile fileparameters       ptr_free  extractatt top_uvalue   fileparameters         top_uvalue 1  findline top_uvalue   fileparameters    newfileparameters         newreadparameters   ptrarr currentfile 1   allocate_heap        FOR i   0  currentfile 1 DO             newreadparameters i     extractatt top_uvalue   readparameters i         newreadparameters currentfile    newfile readparameters       ptr_free  extractatt top_uvalue   readparameters         top_uvalue 1  findline top_uvalue   readparameters    newreadparameters         newmeshparameters   ptrarr currentfile 1   allocate_heap        FOR i   0  currentfile 1 DO             newmeshparameters i     extractatt top_uvalue   meshparameters i         newmeshparameters currentfile    newfile meshparameters       ptr_free  extractatt top_uvalue   meshparameters         top_uvalue 1  findline top_uvalue   meshparameters    newmeshparameters   We update the widget        if cmpgrid oldmeshparams  then BEGIN         domainid   widget_info event top  find_by_uname    domain          widget_control  domainid  set_value    1       endif       widget_control  event top  update   1     end      New xxx  :BEGIN       widget_control  event top  get_uvalue   top_uvalue       extra   extractatt top_uvalue   extra        xxx  CALLERWIDID   event top  _extra   extra     end      Quit :begin        widget_control  event top  get_uvalue   top_uvalue       ptr_free  extractatt top_uvalue   exextra        ptr_free  extractatt top_uvalue   fileparameters        ptr_free  extractatt top_uvalue   readparameters        ptr_free  extractatt top_uvalue   meshparameters        ptr_free  top_uvalue       widget_control  event top   destroy  We shut the widget     end      PostScript  :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save as postscript in demo mode          return       ENDIF       widget_control  event top  get_uvalue   top_uvalue   We recuperate the list of instructions       globalcommand   extractatt top_uvalue   globalcommand         for i   0  n_elements globalcommand 1 do print  globalcommand i    We complete by first and last lines of the program        createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                       KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript                       PORTRAIT   portrait  LANDSCAPE   landscape                       DATE1IN   date1in  DATE2IN   date2in                        POSTSCRIPT     END      Animated gif  :begin        IF float strmid version release 0 3  GE 6 2 THEN xcreateanim  event top     end      Gif  :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save as an image in demo mode          return       ENDIF       widget_control  event top  get_uvalue   top_uvalue       smallin   extractatt top_uvalue   smallin        numdessinin   smallin 2 1       smallout   extractatt top_uvalue   smallout        numdessinout   smallout 2 1       tracecadre  smallin   erase       tracecadre  smallout   erase       filename   xquestion dans quelle fichier gif voulez vous sauver  C l ecran de xxx   xxx_image gif        if rstrpos filename   gif  NE strlen filename 4 then filename   filename gif        filename   isafile file   filename  io   imagedir   new        saveimage  filename   quiet     end      IDL procedure :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save as a idl program file in demo mode          return       ENDIF   We recuperate the name of the file       filename   xquestion dans quelle procedure IDL voulez vous sauver  C la realisation de ce graph   xxx_figure pro    We complete it by a  pro       if rstrpos filename   pro  NE strlen filename 4 then filename   filename pro        filename   isafile file   filename  io   homedir   new        widget_control  event top  get_uvalue   top_uvalue   portrait or landscape         options   extractatt top_uvalue   options           optionsflag   extractatt top_uvalue   optionsflag        portrait    optionsflag where options EQ  Portrait Landscape  0 0    We read commands to do a plot       globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program       thisOS   strupcase strmid version os_family  0  3        CASE thisOS of          MAC :sep    :           WIN :sep             ELSE:sep           ENDCASE       poslastsep   rstrpos filename  sep        proname   strmid filename  poslastsep 1  strlen filename poslastsep 1 4        globalcommand    pro  proname  NOERASE   noerase  POSTSCRIPT   postscript  PORTRAIT   portrait  LANDSCAPE   landscape  DATE1IN   date1in  DATE2IN   date2in  _extra   ex                                                                 globalcommand                                                            return                              end    We write it in a program       putfile  filename  globalcommand     END      RESTORE kwd of xxx :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save the widget in demo mode          return       ENDIF   We recuperate the name of the file       filename   xquestion dans quel fichier bianire voulez vous sauver le widget    xxx_widget dat    We complete it by a  dat       if rstrpos filename   dat  NE strlen filename 4 then filename   filename dat        filename   isafile file   filename  io   homedir   new          widget_control  event top  get_uvalue   uvalue       widget_control  extractatt uvalue   graphid  get_value   win       wshow  win       wset  win       image   tvrd true        save  uvalue  image  filename   filename     END      Print to prompt :BEGIN       commande   getfile myuniquetmpdir    xxx_oneplot pro        for i   0   n_elements commande 1 do print  commande i      end     Portrait Landscape  :begin        widget_control  event top  get_uvalue   top_uvalue       options   extractatt top_uvalue   options        index   where options EQ  Portrait Landscape    index   index 0        optionsflag   extractatt top_uvalue   optionsflag        key_portrait   1 optionsflag index  0         top_uvalue 1  findline top_uvalue   optionsflag index      key_portrait   Separated windows or windows stuck to the widget        if widget_info event top  find_by_uname    graph  EQ 0 then BEGIN   We delete the window         graphid   extractatt top_uvalue   graphid          widget_control  widget_info graphid   parent   destroy   We recreate it          basegraph   widget_base title    xxx window   group_leader   event top  uvalue   event top   uname    basegraph          windsize   givewindowsize          graphid   widget_draw basegraph  uname    graph                                    uvalue    name: graph  press:0  click:0  x: 0  0  y: 0  0                                     button_events  retain   2                                   xsize   windsize 0  ysize   windsize 1          widget_control  basegraph   realize         xmanager   xxx  basegraph   no_block   We redraw what their were into it   We recuperate the list of instructions         globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program         createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                         KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript  PORTRAIT   portrait  LANDSCAPE   landscape                         KWDUSED      noerase  PORTRAIT   portrait    We reattribute the graphic element of the top_value          top_uvalue 1  findline top_uvalue   graphid    graphid       ENDIF ELSE BEGIN         extra   extractatt top_uvalue   extra          xxx  CALLERWIDID   event top   redraw  _extra   extra         widget_control  event top   destroy  We shut the widget       ENDELSE     end      Overlay  :begin        widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Overlay    We change the flag on Longitude   x index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag     end      Vecteur :BEGIN       widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Vecteur    We change the flag on Longitude   x index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag     end      Longitude   x index :BEGIN       widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Longitude   x index    We change the flag on Longitude   x index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag   Now we will change sliders defining the boxzoom       domainid   widget_info event top  find_by_uname    domain        boxzoom    extractatt top_uvalue   domaines  numdessinin    We want to find the type of grid which is used       currentfile   extractatt top_uvalue   currentfile        listgrid    extractatt top_uvalue   fileparameters currentfile listgrid       listvar    extractatt top_uvalue   fileparameters currentfile listvar       vlstid   widget_info event top  find_by_uname    varlist        namevar   widget_info vlstid   combobox_gettext        indexvar   where listvar EQ namevar        vargrid   strupcase listgrid indexvar        if flag EQ 0 then BEGIN     longitudes   We do a domdef to find the lon1 lon2 corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid   xindex                     yindex    flags where options EQ  Latitude   y index  numdessinin 0          widget_control  domainid  set_value    lon1  lon2  boxzoom 2:3        ENDIF ELSE BEGIN            xindex   now we want to find firstx  lastx corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid                     yindex    flags where options EQ  Latitude   y index  numdessinin 0          grille   1   1   1   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz         widget_control  domainid  set_value    firstx  lastx  boxzoom 2:3        ENDELSE   We update the top_uvalue       widget_control  domainid  get_value   boxzoom        top_uvalue 1  findline top_uvalue   domaines  numdessinin    boxzoom     end      Latitude   y index :begin        widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Latitude   y index    We change the flag on Latitude   y index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag   Now we will change sliders defining the boxzoom       domainid   widget_info event top  find_by_uname    domain        boxzoom    extractatt top_uvalue   domaines  numdessinin    We want to find the type of grid which is used       currentfile   extractatt top_uvalue   currentfile        listgrid    extractatt top_uvalue   fileparameters currentfile listgrid       listvar    extractatt top_uvalue   fileparameters currentfile listvar       vlstid   widget_info event top  find_by_uname    varlist        namevar   widget_info vlstid   combobox_gettext        indexvar   where listvar EQ namevar        vargrid   strupcase listgrid indexvar        if flag EQ 0 then BEGIN     latitudes   We do a domdef to find the lat1 lat2 corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid   yindex                     xindex    flags where options EQ  Longitude   x index  numdessinin 0          widget_control  domainid  set_value    boxzoom 0:1  lat1  lat2        ENDIF ELSE BEGIN            yindex   now we want to find firsty  lasty corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid                     xindex    flags where options EQ  Longitude   x index  numdessinin 0          grille   1   1   1   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz         widget_control  domainid  set_value    boxzoom 0:1  firsty  lasty        ENDELSE   We update the top_uvalue       widget_control  domainid  get_value   boxzoom        top_uvalue 1  findline top_uvalue   domaines  numdessinin    boxzoom     END   endcase   return end"); 
    359 a[357] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html", "cw_bgroup.pro", "", "pro CW_BGROUP_SETV  id  value   compile_opt hidden  idl2  strictarrsubs    ON_ERROR  2                        return to caller    stash   WIDGET_INFO id   CHILD    WIDGET_CONTROL  stash  GET_UVALUE state   NO_COPY    case state type of     0: message unable to set plain button group value      1: begin       WIDGET_CONTROL  SET_BUTTON 0  state ids state excl_pos        state excl_pos   value       WIDGET_CONTROL   SET_BUTTON  state ids value      end     2: begin       n   n_elements value 1       for i   0  n do begin         state nonexcl_curpos i    value i          WIDGET_CONTROL  state ids i  SET_BUTTON value i        endfor     end   endcase    WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY end    function CW_BGROUP_GETV  id  value    compile_opt hidden  idl2  strictarrsubs   ON_ERROR  2                        return to caller    stash   WIDGET_INFO id   CHILD    WIDGET_CONTROL  stash  GET_UVALUE state   NO_COPY    case state type of     0: message   unable to get plain button group value       1: ret   state excl_pos     1: ret   state ret_arr state excl_pos       2: ret   state nonexcl_curpos     2: BEGIN        index   where state nonexcl_curpos NE 0        if index 0  EQ  1 then begin         if size state ret_arr   type  EQ 7 then ret     ELSE ret    1       ENDIF ELSE ret   state ret_arr index      END   endcase      WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY    return  ret  end    function CW_BGROUP_EVENT  ev   compile_opt hidden  idl2  strictarrsubs   WIDGET_CONTROL  ev handler  GET_UVALUE stash   WIDGET_CONTROL  stash  GET_UVALUE state   NO_COPY   WIDGET_CONTROL  ev id  get_uvalue uvalue    ret   1            Assume we return a struct   case state type of     0:     1: if  ev select eq 1  then begin       state excl_pos   uvalue     ENDIF else begin       if  state no_release ne 0  then ret   0     ENDELSE     2: begin         Keep track of the current state       state nonexcl_curpos uvalue    ev select           if  state no_release ne 0  and  ev select eq 0  then ret   0     end   endcase    if ret then begin      Return a struct        ret     ID:state base  TOP:ev top  HANDLER:0L  SELECT:ev select               VALUE:state ret_arr uvalue          efun   state efun       WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY       if efun ne   then return  CALL_FUNCTION efun  ret          else return  ret   endif else begin       Trash the event       WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY       return  0   endelse end            file_comments   CW_BGROUP is a compound widget that simplifies creating   a base of buttons  It handles the details of creating the   proper base  standard  exclusive  or non exclusive  and filling   in the desired buttons  Events for the individual buttons are   handled transparently  and a CW_BGROUP event returned  This   event can return any one of the following:          The Index of the button within the base           The widget ID of the button           The name of the button           An arbitrary value taken from an array of User values       categories   Compound widgets       param PARENT  in required    The ID of the parent widget        param NAMES   A string array  containing one string per button    giving the name of each button       keyword BUTTON_UVALUE   An array of user values to be associated with   each button and returned in the event structure        keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword EVENT_FUNCT   The name of an optional user supplied event function   for buttons  This function is called with the return   value structure whenever a button is pressed  and   follows the conventions for user written event functions        keyword EXCLUSIVE   Buttons will be placed in an exclusive base  with   only one button allowed to be selected at a time        keyword FONT   The name of the font to be used for the button   titles  If this keyword is not specified  the default   font is used        keyword FRAME   Specifies the width of the frame to be drawn around the base        keyword IDS   A named variable into which the button IDs will be   stored  as a longword vector        keyword LABEL_LEFT   Creates a text label to the left of the buttons        keyword LABEL_TOP   Creates a text label above the buttons        keyword MAP   If set  the base will be mapped when the widget   is realized  the default        keyword NONEXCLUSIVE   Buttons will be placed in an non exclusive base    The buttons will be independent        keyword NO_RELEASE   If set  button release events will not be returned        keyword RETURN_ID   If set  the VALUE field of returned events will be   the widget ID of the button        keyword RETURN_INDEX   If set  the VALUE field of returned events will be   the zero based index of the button within the base    THIS IS THE DEFAULT        keyword RETURN_NAME   If set  the VALUE field of returned events will be   the name of the button within the base        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword SCROLL   If set  the base will include scroll bars to allow   viewing a large base through a smaller viewport        keyword SET_VALUE   The initial value of the buttons  This is equivalent   to the later statement:     WIDGET_CONTROL  widget  set_value value      keyword SPACE   The space  in pixels  to be left around the edges   of a row or column major base  This keyword is   ignored if EXCLUSIVE or NONEXCLUSIVE are specified        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword XOFFSET   The X offset of the widget relative to its parent        keyword XPAD   The horizontal space  in pixels  between children   of a row or column major base  Ignored if EXCLUSIVE   or NONEXCLUSIVE are specified        keyword XSIZE   The width of the base     keyword X_SCROLL_SIZE   The width of the viewport if SCROLL is specified        keyword YOFFSET   The Y offset of the widget relative to its parent        keyword YPAD   The vertical space  in pixels  between children of   a row or column major base  Ignored if EXCLUSIVE   or NONEXCLUSIVE are specified        keyword YSIZE   The height of the base        keyword Y_SCROLL_SIZE   The height of the viewport if SCROLL is specified       returns   The ID of the created widget is returned       restrictions   This widget generates event structures with the following definition:           event     ID:0L  TOP:0L  HANDLER:0L  SELECT:0  VALUE:0       The SELECT field is passed through from the button event  VALUE is   either the INDEX  ID  NAME  or BUTTON_UVALUE of the button    depending on how the widget was created       restrictions   Only buttons with textual names are handled by this widget    Bitmaps are not understood       history   15 June 1992  AB   7 April 1993  AB  Removed state caching    6 Oct  1994  KDB  Font keyword is not applied to the label    10 FEB 1995  DJC  fixed bad bug in event procedure  getting                           id of stash widget    11 April 1995  AB Removed Motif special cases      Copyright  c  1992 2005  Research Systems  Inc   All rights reserved      Unauthorized reproduction prohibited       version    Id: cw_bgroup pro 150 2006 08 09 10:12:54Z navarro            function CW_BGROUP  parent  names        BUTTON_UVALUE   button_uvalue  COLUMN column  EVENT_FUNCT   efun        EXCLUSIVE excl  FONT font  FRAME frame  IDS ids  LABEL_TOP label_top        LABEL_LEFT label_left  MAP map        NONEXCLUSIVE nonexcl  NO_RELEASE no_release  RETURN_ID return_id        RETURN_INDEX return_index  RETURN_NAME return_name        ROW row  SCROLL scroll  SET_VALUE sval  SPACE space        TAB_MODE tab_mode  UVALUE uvalue        XOFFSET xoffset  XPAD xpad  XSIZE xsize  X_SCROLL_SIZE x_scroll_size      YOFFSET yoffset  YPAD ypad  YSIZE ysize  Y_SCROLL_SIZE y_scroll_size        UNAME uname     IF  N_PARAMS  ne 2  THEN MESSAGE   Incorrect number of arguments     ON_ERROR  2                        return to caller      Set default values for the keywords   version   WIDGET_INFO version    if  version toolkit eq  OLIT  then def_space_pad   4 else def_space_pad   3   IF  N_ELEMENTS column  eq 0       then column   0   IF  N_ELEMENTS excl  eq 0         then excl   0   IF  N_ELEMENTS frame  eq 0        then frame   0   IF  N_ELEMENTS map  eq 0      then map 1   IF  N_ELEMENTS nonexcl  eq 0      then nonexcl   0   IF  N_ELEMENTS no_release  eq 0   then no_release   0   IF  N_ELEMENTS row  eq 0      then row   0   IF  N_ELEMENTS scroll  eq 0       then scroll   0   IF  N_ELEMENTS space  eq 0        then space   def_space_pad   IF  N_ELEMENTS uname  eq 0       then uname    CW_BGROUP_UNAME    IF  N_ELEMENTS uvalue  eq 0       then uvalue   0   IF  N_ELEMENTS xoffset  eq 0      then xoffset 0   IF  N_ELEMENTS xpad  eq 0         then xpad   def_space_pad   IF  N_ELEMENTS xsize  eq 0        then xsize   0   IF  N_ELEMENTS x_scroll_size  eq 0    then x_scroll_size   0   IF  N_ELEMENTS yoffset  eq 0      then yoffset 0   IF  N_ELEMENTS ypad  eq 0         then ypad   def_space_pad   IF  N_ELEMENTS ysize  eq 0        then ysize   0   IF  N_ELEMENTS y_scroll_size  eq 0    then y_scroll_size   0       top_base   0L   if  n_elements label_top  ne 0  then begin     next_base   WIDGET_BASE parent  XOFFSET xoffset  YOFFSET yoffset   COLUMN      if keyword_set font then          junk   WIDGET_LABEL next_base  value label_top font font        else    junk   WIDGET_LABEL next_base  value label_top      top_base   next_base   endif else next_base   parent    if  n_elements label_left  ne 0  then begin     next_base   WIDGET_BASE next_base  XOFFSET xoffset  YOFFSET yoffset   ROW      if keyword_set font then          junk   WIDGET_LABEL next_base  value label_left  font font        else junk   WIDGET_LABEL next_base  value label_left      if  top_base eq 0L  then top_base   next_base   endif     We need some kind of outer base to hold the users UVALUE   if  top_base eq 0L  then begin     top_base   WIDGET_BASE parent  XOFFSET xoffset  YOFFSET yoffset      next_base   top_base   endif   If  top_base EQ next_base  THEN        next_base   WIDGET_BASE top_base  Xpad 1  Ypad 1  Space 1       Set top level base attributes   WIDGET_CONTROL  top_base  MAP map        FUNC_GET_VALUE CW_BGROUP_GETV  PRO_SET_VALUE CW_BGROUP_SETV        SET_UVALUE uvalue  SET_UNAME uname      Tabbing   if  n_elements tab_mode  ne 0  then begin     WIDGET_CONTROL  top_base  TAB_MODE tab_mode     WIDGET_CONTROL  next_base  TAB_MODE tab_mode   end      The actual button holding base   base   WIDGET_BASE next_base  COLUMN column  EXCLUSIVE excl  FRAME frame        NONEXCLUSIVE nonexcl  ROW row  SCROLL scroll  SPACE space        XPAD xpad  XSIZE xsize  X_SCROLL_SIZE x_scroll_size        YPAD ypad  YSIZE ysize  Y_SCROLL_SIZE y_scroll_size        EVENT_FUNC CW_BGROUP_EVENT        UVALUE WIDGET_INFO top_base   child      n   n_elements names    ids   lonarr n    for i   0  n 1 do begin     if  n_elements font  eq 0  then begin       ids i    WIDGET_BUTTON base  value names i  UVALUE i          UNAME uname _BUTTON STRTRIM i 2      endif else begin       ids i    WIDGET_BUTTON base  value names i  FONT font          UVALUE i  UNAME uname _BUTTON STRTRIM i 2      endelse   endfor      Keep the state info in the real  inner  base UVALUE      Pick an event value type:     0   Return ID     1   Return INDEX     2   Return NAME   ret_type   1   if KEYWORD_SET RETURN_ID  then ret_type   0   if KEYWORD_SET RETURN_NAME  then ret_type   2   if KEYWORD_SET BUTTON_UVALUE  then ret_type   3     case ret_type of       0: ret_arr   ids       1: ret_arr   indgen n        2: ret_arr   names       3: ret_arr   button_uvalue     endcase   type   0   if  excl ne 0  then type   1    if  nonexcl ne 0  then type   2   if n_elements efun  le 0 then efun       state     type:type         0 Standard  1 Exclusive  2 Non exclusive         base: top_base        cw_bgroup base          ret_arr:ret_arr       Vector of event values         efun : efun       Name of event fcn         nonexcl_curpos:intarr n      If non exclus  tracks state         excl_pos:0                If exclusive  current button         ids:ids               Ids of buttons         no_release:no_release     WIDGET_CONTROL  WIDGET_INFO top_base   CHILD  SET_UVALUE state   NO_COPY    if  n_elements sval  ne 0  then CW_BGROUP_SETV  top_base  sval    return  top_base END"); 
    360 a[358] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html", "cw_calendar.pro", "", "  IDL  testwid julday 1 1 1980 lindgen 100 5     PRO testwid_event  event       ComboboxId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          set :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value   value         END          get :BEGIN             widget_control  ComboboxId  get_value   value            help   value   struct         END         ELSE:      endcase      return   end   PRO testwid  calendar  date0  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_calendar base calendar  date0  _extra   ex  uname    c est lui  uvalue    c est lui      print   cw_calendar ID   nothing          nothing   widget_label base  value    end of the test        nothing   widget_text base  value   string calendar 0  uvalue    set   editable        nothing   widget_button base  value    get  uvalue    get        nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   END       PRO cw_calendar_set_value  id  value     compile_opt strictarr  strictarrsubs       cm_4cal   get back the calendar and its related informations   winfo_id   widget_info id  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   key_caltype   infowid caltype      high freqeuncy calendar   IF keyword_set infowid fakecal  THEN BEGIN     value2   date2jul long value    infowid fakecal     IF value2 LT n_elements infowid calendar  AND value2 GE 0 THEN BEGIN         stepid   widget_info id  find_by_uname    step        widget_control  stepid  set_value    combobox_select:value2        infowid date   jul2date value2   infowid fakecal        widget_control  winfo_id  set_uvalue   infowid     ENDIF   ENDIF ELSE BEGIN        value   long value 0    make sure the value correspond     value   jul2date date2jul value    define year month day     year   value 10000l     month    value MOD 10000L 100L     day   value MOD 100L   check that the date exists in the calendar   if  where infowid calendar EQ julday month  day  year 0  EQ   1 then return   update the value of infocal     infowid date   value     widget_control  winfo_id  set_uvalue   infowid   update the combobox if needed      possiblecase    day   month   year      for name   2  0   1 do BEGIN   call set_cal_combobox with out   2 to specify that the call is coming   from cw_calendar_set_value       if widget_info id  find_by_uname   possiblecase name  NE 0 then            set_cal_combobox   handler:id  out:2  possiblecase name  value     ENDFOR   ENDELSE     return end   FUNCTION cw_calendar_get_value  id     compile_opt strictarr  strictarrsubs      winfo_id   widget_info id  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   return  infowid date END   FUNCTION get_cal_value  id  winfoid      compile_opt strictarr  strictarrsubs      winfo_id   widget_info id  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   oldate   infowid date  day    wid_id   widget_info id  find_by_uname    day    if wid_id NE 0 then BEGIN     widget_control  wid_id  get_value   wid_value     date   long wid_value combobox_gettext    ENDIF ELSE date   oldate MOD 100L  month    wid_id   widget_info id  find_by_uname    month    if wid_id NE 0 then BEGIN     widget_control  wid_id  get_value   wid_value     allmonths   string format    C CMoA  31 indgen 12      month    where allmonths EQ wid_value combobox_gettext 0    1      date   date   100L   long month    ENDIF ELSE date   date    oldate MOD 10000L 100L 100L  year    wid_id   widget_info id  find_by_uname    year    widget_control  wid_id  get_value   wid_value   date   date   10000L   long wid_value combobox_gettext      IF arg_present winfoid  NE 0 THEN BEGIN     winfoid   winfo_id     infowid date   date     return  infowid   ENDIF ELSE return  date end     redefine the value and index position of the combobox PRO set_cal_combobox  event  casename  date0     compile_opt strictarr  strictarrsubs      casename: Which widget shall we move:  day   month  or  year      wid_id   widget_info event handler  find_by_uname   casename    we get back the calendar    winfo_id   widget_info event handler  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   caldat  infowid calendar  monthcal  daycal  yearcal     and the current date   IF n_elements date0  EQ 0 then date0   get_cal_value event handler    year0   date0 10000L   month0    date0 MOD 10000L 100L   day0   date0 MOD 100L   index of days months years according to date0   case casename of      day :BEGIN    list of days corresponding to month0 and year0       index   where monthcal EQ month0 AND yearcal EQ year0        current   daycal index      END      month :BEGIN    list of months corresponding to year0       index   where yearcal EQ year0        current   monthcal index    keep only the uniq values       indexbis   uniq current        index   index indexbis        current   current indexbis      END      year :BEGIN    keep only the uniq years       index   uniq yearcal        current   yearcal index      END   ENDCASE   we update the uvalue of the widget   widget_control  wid_id  set_uvalue    name:casename    for event out   0  we store the previous position of the combobox to use   it as the default position    IF event out EQ 0 THEN widget_control  wid_id  get_value   oldselect   we redefine the new list   if casename EQ  month  then begin     widget_control  wid_id  set_value   string format    C CMoA  31 current 1    ENDIF ELSE BEGIN      widget_control  wid_id  set_value   strtrim current  1    ENDELSE   specify the index position within the new list of values    widget_control  wid_id  get_value   combobox   CASE event out OF    1: we put to the biggest position      1:selected   combobox combobox_number   1   0: same as the previous position is the best choice      0:selected   oldselect combobox_index    combobox combobox_number   1    1: we put to the smallest position     1:selected   0   2: a new date has been specified      2:BEGIN        case casename of          day :selected    where current EQ day0 0           month :selected    where current EQ month0 0           year :selected    where current EQ year0 0        ENDCASE     END   ENDCASE   widget_control  wid_id  set_value    combobox_select:selected    update the date    infowid date   get_cal_value event handler    widget_control  winfo_id  set_uvalue   infowid   return end     move cyclicly the calendar to the   value 0 if event out 1 or combobox_number 1 if event out 1 PRO move  event  casename     compile_opt strictarr  strictarrsubs       possiblecase    day   month   year   impossiblecase     id   widget_info event handler  find_by_uname   casename     widget_control  id  get_value   wvalue   we try to move but we are already at the beginning end of the combobox   wvalue combobox_index EQ  wvalue combobox_number 1  and event out EQ 1   wvalue combobox_index EQ 0 and event out EQ  1  move is not called when out eq 0     whichcase    where possiblecase EQ casename 0     if wvalue combobox_index EQ  wvalue combobox_number 1 event out EQ 1  THEN BEGIN       if widget_info event handler  find_by_uname   possiblecase whichcase 1  EQ 0 then begin   it is impossible to move the  next  combobox           widget_control  id  get_value   widvalue   we set to  widvalue combobox_number 1  when event out EQ  1   and to 0 when event out EQ 1          selected    widvalue combobox_number 1 event out EQ  1           widget_control  id  set_value    combobox_select:selected    we call move for the next combobox       ENDIF ELSE move  event  possiblecase whichcase 1    it is possible to move from   1    ENDIF ELSE widget_control  id  set_value    combobox_select:wvalue combobox_index event out     set_cal_combobox  event  possiblecase whichcase 1     return end   FUNCTION cw_calendar_event  event    cm_4cal   compile_opt strictarr  strictarrsubs      winfo_id   widget_info event handler  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   key_caltype   infowid caltype     widget_control  event id  get_uvalue   uval   high frequency calendar   IF uval name EQ  step  THEN BEGIN      infowid date   jul2date event index   infowid fakecal    ENDIF ELSE BEGIN       possiblecase    day   month   year   impossiblecase      whichcase    where possiblecase EQ uval name 0      if event out NE 0 then BEGIN   we use the   button and we want to go out of the combobox:   to index    1  event out 1  or to index   combobox_number  event out 1    we try to move the combobox just right  with name: possiblecase whichcase 1        if widget_info event handler  find_by_uname   possiblecase whichcase 1  EQ 0 then BEGIN   this widget do not exist we set cyclicly the current widget to the   value 0 if event out 1 or combobox_number 1 if event out 1         widget_control  event id  get_value   widvalue         selected    widvalue combobox_number 1 event out EQ  1          widget_control  event id  set_value    combobox_select:selected        ENDIF ELSE move  event  possiblecase whichcase 1      ENDIF   if we changed month year  we need to update the day  and month  list     if uval name NE  day  then begin       event out   0       for name   whichcase 1  0   1 do BEGIN         if widget_info event handler  find_by_uname   possiblecase name  NE 0 then              set_cal_combobox  event  possiblecase name        endfor     ENDIF   we update the date     infowid   get_cal_value event handler  winfo_id    ENDELSE      widget_control  winfo_id  set_uvalue   infowid   return   CW_CALENDAR  ID:event handler  TOP:event top  HANDLER:0L                VALUE:infowid date  FAKECAL: infowid fakecal  end          file_comments        categories         param PARENT  in required    The widget ID of the parent widget       param CALENDAR        param JDATE0         keyword CALTYPE          keyword FAKECAL         keyword UVALUE         keyword UNAME         keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: cw_calendar pro 150 2006 08 09 10:12:54Z navarro        todo   seb      FUNCTION cw_calendar  parent  calendar  jdate0  CALTYPE   CALTYPE  FAKECAL   fakecal  UVALUE   uvalue  UNAME   uname  _extra   ex    cm_4cal     compile_opt strictarr  strictarrsubs      if keyword_set caltype  then key_caltype   caltype   months days years found in the calendar   caldat  calendar  monthcal  daycal  yearcal  hourcal  mincal  scdcal   starting date   if n_elements jdate0  EQ 0 then jdate0   calendar 0    if  where calendar EQ jdate0 0  EQ  1 then jdate0   calendar 0      caldat  jdate0  month0  day0  year0   test the type of calendar   if n_elements calendar  GT 1 then BEGIN   each day have the same value     if n_elements uniq daycal  sort daycal  EQ 1 then monthly   1   each month and each day have the same value     if keyword_set monthly  AND n_elements uniq monthcal  sort monthcal  EQ 1 then yearly   1   endif     if NOT keyword_set uvalue  then uvalue    dummy:    if NOT keyword_set uname  then uname       base0   widget_base parent   ROW                           EVENT_FUNC    cw_calendar_event                            FUNC_GET_VALUE    cw_calendar_get_value                            PRO_SET_VALUE    cw_calendar_set_value                            UVALUE   uvalue  UNAME   uname  space   0  _extra   ex       if n_elements fakecal  eq 0 then fakecal   0   base   widget_base base0  space   0  uname    infocal                           uvalue    calendar:calendar  date:jul2date jdate0  fakecal:fakecal  caltype: key_caltype      IF keyword_set fakecal  THEN BEGIN      cmbbid   cw_combobox_pm base  UVALUE    name: step  UNAME    step                                  value   strtrim indgen n_elements calendar  1      widget_control  cmbbid  set_value    combobox_select: where calendar EQ jdate0 0    ENDIF ELSE BEGIN        vallen   widget_info base  string_size    m   day      if NOT keyword_set monthly   then begin       dayindex   where monthcal EQ month0 AND yearcal EQ year0        currentday   daycal dayindex        currentday   strtrim currentday  1        cmbbid   cw_combobox_pm base  UVALUE    name: day  UNAME    day  value   currentday        widget_control  cmbbid  set_value    combobox_select: where long currentday  EQ day0 0      endif  month      if NOT keyword_set yearly   then BEGIN       monthindex   where yearcal EQ year0        currentmonth   long monthcal monthindex    we suppress the repeted months       monthindexbis   uniq currentmonth  sort currentmonth        monthindex   monthindex monthindexbis        currentmonth   currentmonth monthindexbis        xoff    34   2 vallen 0 1 keyword_set monthly        cmbbid   cw_combobox_pm base  UVALUE    name: month  UNAME    month  value   string format    C CMoA  31 currentmonth 1  xoffset   xoff        widget_control  cmbbid  set_value    combobox_select: where long currentmonth  EQ month0 0      endif  year      yearindex   uniq yearcal  sort yearcal      currentyear   strtrim yearcal yearindex  1      xoff    34   2 vallen 0 1 keyword_set monthly     33   3 vallen 0 1 keyword_set yearly      cmbbid   cw_combobox_pm base  UVALUE    name: year  UNAME    year  value   currentyear  xoffset   xoff      widget_control  cmbbid  set_value    combobox_select: where long currentyear  EQ year0 0      ENDELSE     return  base end"); 
    361 a[359] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html", "cw_combobox_pm.pro", "", "  testwid  value strtrim indgen 10 2    PRO testwid_event  event       help  event   STRUCT      ComboboxId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          dynamic_resize :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value    dynamic_resize:value          END          combobox_select :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value    combobox_select:value          END          value :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value   value         END          get :BEGIN             widget_control  ComboboxId  get_value   value            help   value   struct         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_combobox_pm base  _extra   ex  uname    c est lui  uvalue    c est lui    print   cw_combobox_pm ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    0  uvalue    dynamic_resize   editable       nothing   widget_text base  value    10  uvalue    combobox_select   editable       nothing   widget_text base  value    5  uvalue    value   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end   PRO cw_combobox_pm_set_value  id  value     compile_opt idl2  strictarrsubs      ComboboxId   widget_info id find_by_uname    Combobox     if size value   type  eq 8 then BEGIN   this is a structure       tagnames   tag_names value        for tag   0  n_tags value 1 do begin          case strtrim strlowcase tagnames tag  2  of              dynamic_resize :widget_control  ComboboxId  dynamic_resize   value dynamic_resize   for compatibility              droplist_select :widget_control  ComboboxId  set_combobox_select   value droplist_select              combobox_select :widget_control  ComboboxId  set_combobox_select   value combobox_select              value :widget_control  ComboboxId  set_value   value value             ELSE:ras   report wrong tag name in argument  value  of cw_combobox_pm_set_value           endcase       endfor    ENDIF ELSE widget_control  ComboboxId  set_value   value    return end   FUNCTION cw_combobox_pm_get_value  id     compile_opt idl2  strictarrsubs      ComboboxId   widget_info id find_by_uname    Combobox     widget_control  ComboboxId  get_value   cmbbval    cmbbtxt   widget_info ComboboxId   combobox_gettext     cmbbnumb   widget_info ComboboxId   combobox_number     index    where cmbbval EQ cmbbtxt 0     return   combobox_number:cmbbnumb  combobox_gettext:cmbbtxt                 combobox_index:index  combobox_value:cmbbval                 dynamic_resize:widget_info ComboboxId   dynamic_resize  end   FUNCTION cw_combobox_pm_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval      if uval EQ  Combobox  then       return   CW_COMBOBOX_PM  ID:event handler  TOP:event top  HANDLER:0L                  INDEX:event index  STR:event str  OUT:0       ComboboxId   widget_info event handler find_by_uname    Combobox     widget_control  ComboboxId  get_value   cmbbval    cmbbtxt   widget_info ComboboxId   combobox_gettext     cmbbnumb   widget_info ComboboxId   combobox_number     index    where cmbbval EQ cmbbtxt 0     out   0    case uval OF        plus :BEGIN          if index LT  cmbbnumb   1  then BEGIN             index   index   1            widget_control  ComboboxId  set_combobox_select   index          ENDIF ELSE out   1       END        minus :BEGIN          if index GT 0 then BEGIN             index   index   1            widget_control  ComboboxId  set_combobox_select   index          ENDIF ELSE out    1       END    endcase    return   CW_COMBOBOX_PM  ID:event handler  TOP:event top  HANDLER:0L                       INDEX:index  STR:cmbbtxt  OUT:out  end              file_comments   Like WIDGET_COMBOBOX but here  their are 2 buttons   and   to move the widget from   1      categories   compound widget       param PARENT  in required    The widget ID of the parent widget       keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword VALUE        keyword _EXTRA   Used to pass your keywords      returns   The returned value of this function is the widget ID of the   newly created animation widget       restrictions         Widget Events Returned by Combobox Widgets       Pressing the mouse button while the mouse cursor is over an     element of a combobox widget causes the widget to change the label     on the combobox button and to generate an event  The appearance of     any previously selected element is restored to normal at the same     time  The event structure returned by the WIDGET_EVENT function is     defined by the following statement:         CW_COMBOBOX_PM  ID:0L  TOP:0L  HANDLER:0L  INDEX:0L  OUT:0         The first three fields are the standard fields found in every     widget event      INDEX returns the index of the selected item  This can be used to     index the array of names originally used to set the widget s     value     OUT:It is an integer which can take 3 values:          1 : If we press   when the index is already at the max         Comment: In this case  the index stay at the max          1: If we press   when the index is already at the min         Comment: In this case  the index stay at the min         0 : In other cases       Keywords to WIDGET_CONTROL       A number of keywords to the WIDGET_CONTROL procedure affect the     behavior of cw_slider_pm widget: GET_VALUE and SET_VALUE          1  GET_VALUE     widget_control wid_id get_value resultat     Send back  in the result variable  a structure of 3 elements whose      names are inspired by keywords we can pass at widget_control when     we use WIDGET_COMBOBOX:              COMBOBOX_NUMBER: the number of elements currently              contained in the specified combobox widget               COMBOBOX_SELECT: the zero based number of the              currently selected element  i e  the currently displayed              element  in the specified combobox widget               DYNAMIC_RESIZE: a True value  1  if the widget specified              by Widget_ID is a button  combobox  or label widget that              has had its DYNAMIC_RESIZE attribute set  Otherwise               False  0  is returned          2  SET_VALUE     widget_control wid_id set_value impose     Allows to modify the state of the combobox like we can do it for      WIDGET_COMBOBOX  May impose:          a  The contents of the list widget  string or string array          b  A structure which can have for elements  from 1 to 3 :               DYNAMIC_RESIZE:Set this keyword to activate  if set to 1               or deactivate  if set to 0  dynamic resizing of the              specified CW_COMBOBOX_PM widget  see the documentation              for the DYNAMIC_RESIZE keyword to WIDGET_COMBOBOX              procedure for more information about dynamic widget              resizing               COMBOBOX_SELECT:Set this keyword to return the zero based              number of the currently selected element  i e  the              currently displayed element  in the specified combobox              widget               VALUE: The contents of the list widget  string or string              array       examples   See the program provided above  testwid and the associated procedure  testwid_event       history   Sebastien Masson  smasson lodyc jussieu fr                         6 9 1999      version    Id: cw_combobox_pm pro 150 2006 08 09 10:12:54Z navarro             FUNCTION cw_combobox_pm  parent  VALUE   value  UVALUE   uvalue  UNAME   uname  ROW   row  COLUMN   column  _extra   ex     compile_opt idl2  strictarrsubs       IF  N_PARAMS  NE 1  THEN MESSAGE   Incorrect number of arguments     ON_ERROR  2                   return to caller   cheking for row and column keywords    row   keyword_set row 1 keyword_set column      column   keyword_set column 1 keyword_set row keyword_set column  EQ row      if NOT keyword_set uvalue  then uvalue        if NOT keyword_set uname  then uname          base   widget_base parent  space   0                           EVENT_FUNC    cw_combobox_pm_event                            FUNC_GET_VALUE cw_combobox_pm_get_value                            PRO_SET_VALUE cw_combobox_pm_set_value                            UVALUE   uvalue  UNAME   uname  _extra   ex          vallen   widget_info base  string_size    m     vallen   35    vallen 0 1 max strlen value     if keyword_set row  THEN BEGIN       nothing   widget_button base  value     uvalue    minus  xoffset   0                                  yoffset   5  xsize   15  ysize   15       nothing   widget_combobox base  VALUE   value  UVALUE    Combobox  UNAME    Combobox                                     xoffset   13  yoffset   0  xsize   vallen       nothing   widget_button base  value     uvalue    plus                                   xoffset   vallen 11  yoffset   5                                  xsize   15  ysize   15     ENDIF ELSE BEGIN       nothing   widget_combobox base  VALUE   value  UVALUE    Combobox  UNAME    Combobox                                     xoffset   0  yoffset   0  xsize   vallen       nothing   widget_button base  value     uvalue    minus                                   xoffset   vallen 2 15                                  yoffset   24  xsize   15  ysize   15       nothing   widget_button base  value     uvalue    plus                                   xoffset   vallen 2                                  yoffset   24  xsize   15  ysize   15     ENDELSE        widget_control base realize      return  base end"); 
    362 a[360] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html", "cw_domain.pro", "", "  IDL  testwid   PRO testwid_event  event     help   event   struct      Id   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          set :BEGIN            widget_control  event id  get_value   value   value   value 0             nothing   execute boxzoom  value             widget_control  Id  set_value   boxzoom         END          get :BEGIN             widget_control  Id  get_value   value            print   value         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN       print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_domain base _extra   ex  uname    c est lui  uvalue    c est lui       print   cw_domain ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    40  100   10  10  uvalue    set   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end       pro cw_domain_set_value  id  value     compile_opt idl2  strictarrsubs    cm_4mesh      topid   findtopid id     widget_control  topid  get_uvalue   top_uvalue     make sure that we have the good grid stored in the cm_4mesh common parameters     currentfile   extractatt top_uvalue   currentfile     currentgrid    extractatt top_uvalue   meshparameters currentfile     change   changegrid currentgrid      What is the type of boxzoom      currentplot    extractatt top_uvalue   smallin 2 1    options   extractatt top_uvalue   options        flags   extractatt top_uvalue   optionsflag     flags   flags  currentplot     IF  flags where options EQ  Longitude   x index 0  EQ 0 THEN       xtype    geographic  ELSE xtype    index     IF  flags where options EQ  Latitude   y index 0  EQ 0 THEN       ytype    geographic  ELSE ytype    index      How to complete the boxzoom      IF xtype EQ   geographic  then begin       lonn1   lon1       lonn2   lon2       xtitle    lon     ENDIF ELSE BEGIN       lonn1   firstxt       lonn2   lastxt       xtitle    x ind     ENDELSE    IF ytype EQ   geographic  then begin       latt1   lat1       latt2   lat2       ytitle    lat     ENDIF ELSE BEGIN       latt1   firstyt       latt2   lastyt       ytitle    y ind     ENDELSE      vertf1   floor min gdepw 0  gdept 0     vertf2   ceil max gdepw 0  gdept 0       Case N_Elements Value  OF       0:boxzoom    lonn1  lonn2  latt1  latt2  vertf1  vertf2        1:BEGIN           if value EQ  1 then boxzoom    lonn1  lonn2  latt1  latt2  vertf1  vertf2             ELSE boxzoom lonn1  lonn2  latt1  latt2  0 value 0        END       2:boxzoom lonn1  lonn2  latt1  latt2  value 0 value 1        4:boxzoom Value        5:boxzoom Value 0:3  0  Value 4        6:boxzoom   Value       Else:BEGIN           rien   report Wrong Definition of Boxzoom        END    ENDCASE      boxzoom 0    floor boxzoom 0     boxzoom 1    ceil boxzoom 1     boxzoom 2    floor boxzoom 2     boxzoom 3    ceil boxzoom 3     if n_elements boxzoom GE 5  then begin       boxzoom 4    floor boxzoom 4        boxzoom 5    ceil boxzoom 5     endif        widget_control widget_info id find_by_uname    lon1  get_uvalue   uvalue    strict   uvalue strict     Longitudes     Possible min and max    if xtype EQ  geographic  then BEGIN       min   floor min glamt glamf  max   max        max   ceil max     ENDIF ELSE BEGIN        min   0       max   jpi 1    ENDELSE   widgets s id    lon1id   widget_info id find_by_uname    lon1     lon2id   widget_info id find_by_uname    lon2    Do we have to change the type of x axis: longitude index    lonbase   widget_info id find_by_uname    lonbase     widget_control  lonbase   get_uvalue   lonbase_uvalue    if lonbase_uvalue name NE xtype then BEGIN       widget_control  lonbase  update   0   We break everything       widget_control  lon1id   destroy       widget_control  lon2id   destroy   We reconstruct       lon1id   cw_slider_pm lonbase value min   boxzoom 0   boxzoom 0 keyword_set strict    boxzoom 1   boxzoom 0 keyword_set strict        widget_control  lonbase  set_uvalue    name:xtype        widget_control  lonbase  update   1    ENDIF ELSE BEGIN   The new value  they will have       cursorvalue1   min   boxzoom 0   boxzoom 0 strict    boxzoom 1   boxzoom 2   boxzoom 2 keyword_set strict    boxzoom 3   boxzoom 2 keyword_set strict        widget_control  latbase  set_uvalue    name:ytype        widget_control  latbase  update   1    ENDIF ELSE BEGIN       cursorvalue1   min   boxzoom 2   boxzoom 2 strict    boxzoom 3    indice2 1       if indice1 EQ indice2 then BEGIN       if  where gdep1 GE boxzoom 4  AND gdep2 LE boxzoom 5 0   EQ  1 then begin          indice1   0    indice1 dthlv1_uval grid_t EQ 1           indice2   indice1       endif       boxzoom 4    gdep1 indice1        boxzoom 5    boxzoom 4 1    endif   Now  values and indexes are proprely defined    So we can apply them    widget_control  dthlv1id  set_value    combobox_select:indice1     widget_control  dthlv2id  set_value    combobox_select:indice2    control mins and maxs of sliders     if indice1 EQ 0 then min1   0 ELSE min1   gdep2 indice1 1     max1    min1 1    gdep1 indice2     widget_control  depth1id  set_value    slider_min:min1  slider_max:max1  value:boxzoom 4     min2   gdep2 indice1     if indice2 EQ jpk 1 then BEGIN        max2   max gdept  gdepw        max2   strtrim string max2 format e8 0  1        max2   float 1 strmid max2  1 float max2     ENDIF ELSE max2   gdep1 indice2 1     widget_control  depth2id  set_value    slider_min:min2  slider_max:max2  value:boxzoom 5       return end   FUNCTION cw_domain_get_value  id     compile_opt idl2  strictarrsubs      box   lonarr 6     possiblecase    lon1   lon2   lat1   lat2   depth1   depth2     for i   0  5 do begin       widget_control  widget_info id  find_by_uname   possiblecase i             get_value   value       box i    value value    endfor    return  box end   FUNCTION cw_domain_event  event     compile_opt idl2  strictarrsubs    common   help    struct  event    if  where tag_names event  EQ  OUT 0  NE  1 then if event out NE 0 then return    1    widget_control  event id  get_uvalue   uval    case uval name of        lon1 :widget_control widget_info event handler find_by_uname    lon2             set_value    slider_min:event value uval strict         lon2 :widget_control widget_info event handler find_by_uname    lon1             set_value    slider_max:event value uval strict         lat1 :widget_control widget_info event handler find_by_uname    lat2             set_value    slider_min:event value uval strict         lat2 :widget_control widget_info event handler find_by_uname    lat1             set_value    slider_max:event value uval strict         unzoom :BEGIN          id   widget_info event handler find_by_uname    lon1           widget_control  id  get_value   value          widget_control  id  set_value    slider_min:value slider_min_max 0           widget_control  id  set_value   value slider_min_max 0           id   widget_info event handler find_by_uname    lat1           widget_control  id  get_value   value          widget_control  id  set_value    slider_min:value slider_min_max 0           widget_control  id  set_value   value slider_min_max 0           id   widget_info event handler find_by_uname    lon2           widget_control  id  get_value   value          widget_control  id  set_value    slider_max:value slider_min_max 1           widget_control  id  set_value   value slider_min_max 1           id   widget_info event handler find_by_uname    lat2           widget_control  id  get_value   value          widget_control  id  set_value    slider_max:value slider_min_max 1           widget_control  id  set_value   value slider_min_max 1        END        dthlv1 :BEGIN   ids           depth1id   widget_info event handler find_by_uname    depth1           depth2id   widget_info event handler find_by_uname    depth2           dthlv2id   widget_info event handler find_by_uname    dthlv2    Do we have to change dthlv2            widget_control  event id  get_value   dthlv1_value          gdep1   fix dthlv1_value combobox_value           widget_control  dthlv2id  get_value   dthlv2_value          gdep2   fix dthlv2_value combobox_value           if dthlv2_value combobox_index LT event index then BEGIN   We redefine the dthlv2id s value             widget_control  dthlv2id  set_value    combobox_select:event index    So we redefine the value and the max of the slider 2             if event index EQ jpk 1 then BEGIN                 max   max gdept  gdepw                 max   strtrim string max format e8 0  1                 max   float 1 strmid max  1 float max              ENDIF ELSE max   gdep2 event index 1 1             widget_control  depth2id                  set_value    slider_max:max  value:gdep2 event index    So we redefine the max of the slider 1             widget_control  depth1id  set_value    slider_max:gdep1 event index           END    We redefine the value and the min of the slider depth1           if event index EQ 0 then min   0 ELSE min   gdep1 event index 1 1          widget_control  depth1id  set_value    slider_min:min  value:gdep1 event index    S we change the value of the min of the slider depth 2          widget_control  depth2id  set_value    slider_min:gdep1 event index 1        END        dthlv2 :BEGIN   ids           depth1id   widget_info event handler find_by_uname    depth1           depth2id   widget_info event handler find_by_uname    depth2           dthlv1id   widget_info event handler find_by_uname    dthlv1    Do we have to change dthlv1            widget_control  dthlv1id  get_value   dthlv1_value          gdep1   fix dthlv1_value combobox_value           widget_control  event id  get_value   dthlv2_value          gdep2   fix dthlv2_value combobox_value           if dthlv1_value combobox_index GT event index then BEGIN   We redfine the value of dthlv1id             widget_control  dthlv1id  set_value    combobox_select:event index    So we redefine the value and the min of the slider 1             if event index EQ 0 then min   0 ELSE min   gdep2 event index 1              widget_control  depth1id                  set_value    slider_min:min  value:gdep1 event index    Se we redefine the min of the slider 2             widget_control  depth2id  set_value    slider_min:gdep2 event index           END    We redefine the value and the max of the slider depth 2          if event index EQ jpk 1 then BEGIN              max   max gdept  gdepw              max   strtrim string max format e8 0  1              max   float 1 strmid max  1 float max           ENDIF ELSE max   gdep2 event index 1 1          widget_control  depth2id  set_value    slider_max:max  value:gdep2 event index    So we change the value of the max of the slider depth 1          widget_control  depth1id  set_value    slider_max:gdep2 event index 1        END        depth1 :BEGIN   ids           depth2id   widget_info event handler find_by_uname    depth2           dthlv1id   widget_info event handler find_by_uname    dthlv1    Do we have to change dthlv1            widget_control  dthlv1id  get_value   dthlv1_value          gdep1   fix dthlv1_value combobox_value           rien   where gdep1 LT event value  indice           indice   indice   indice 1           if indice NE dthlv2_value combobox_index then begin   We change the min of depth1             widget_control  depth1id  set_value    slider_max:gdep2 indice 1    We redefine the value of dthlv2id             widget_control  dthlv2id  set_value    combobox_select:indice    So we redefine the min of the slider 2             if indice EQ jpk 1 then BEGIN                 max   max gdept  gdepw                 max   strtrim string max format e8 0  1                 max   float 1 strmid max  1 float max              ENDIF ELSE max   gdep2 indice 1 1             widget_control  event id  set_value    slider_max:max           endif       END       ELSE:    ENDCASE      slidesliceid   widget_info event top  find_by_uname    slide_slice       if slidesliceid NE 0 then widget_control  slidesliceid  set_value   1    return ID:event handler  TOP:event top  HANDLER:0L                BOX:cw_domain_get_value event handler  end        file_comments        categories         param PARENT  in required    The widget ID of the parent widget        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword STRICT        keyword UNZOOM        keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: cw_domain pro 150 2006 08 09 10:12:54Z navarro        todo   seb: Documenter      FUNCTION cw_domain  parent  BOXZOOM   boxzoom  STRICT   strict  UVALUE   uvalue  UNAME   uname  UNZOOM   unzoom  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data     Definition of the boxzoom   Case N_Elements Boxzoom  OF     0:boxzoom    lon1  lon2  lat1  lat2                      min gdepw 0  gdept 0  max gdepw 0  gdept 0        1:boxzoom    lon1  lon2  lat1  lat2  0  boxzoom 0      2:boxzoom    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1      4:boxzoom    Boxzoom  vert1  vert2      5:boxzoom    Boxzoom 0:3  0  Boxzoom 4      6:     Else: return  report Mauvaise Definition de Boxzoom    ENDCASE   IF total Boxzoom  EQ 0 THEN        boxzoom    lon1  lon2  lat1  lat2  min gdepw 0  gdept 0  max gdepw 0  gdept 0      boxzoom 0    floor boxzoom 0    boxzoom 1    ceil boxzoom 1    boxzoom 2    floor boxzoom 2    boxzoom 3    ceil boxzoom 3    boxzoom 4    floor boxzoom 4    boxzoom 5    ceil boxzoom 5      if NOT keyword_set uvalue  then uvalue       if NOT keyword_set uname  then uname       base   widget_base parent  row   2  space   0                          EVENT_FUNC    cw_domain_event                           FUNC_GET_VALUE    cw_domain_get_value                           PRO_SET_VALUE    cw_domain_set_value                           UVALUE   uvalue  UNAME   uname  _extra   ex         baseh   widget_base base  column   1 keyword_set unzoom  space   0      baseh1   widget_base baseh  row   2  space   0   longitude    min   floor min glamt  glamf  max   max    max   ceil max    IF max min GT 360 AND keyword_set key_periodic  THEN max   min 360   lonbase   widget_base baseh1  column   2  space   0  uname    lonbase  uvalue    name: geographic    lon1id   cw_slider_pm lonbase  value   min   boxzoom 0   boxzoom 0 keyword_set strict    boxzoom 1   boxzoom 0 keyword_set strict   latitude    min   floor min gphit  gphif  max   max    max   ceil max    latbase   widget_base baseh1  column   2  space   0  uname    latbase  uvalue    name: geographic    lat1id   cw_slider_pm latbase  value   min   boxzoom 2   boxzoom 2 keyword_set strict    boxzoom 3   boxzoom 2 keyword_set strict   unzoom    if keyword_set unzoom  then rien   widget_button baseh  value    unzoom  uvalue    name: unzoom  xsize   60  ysize   110   depth    basez   widget_base base  column   3  space   0   base_align_center      basezdrp   widget_base basez  row   2  space   0      if strupcase vargrid  EQ  W  then gdep   gdepw ELSE gdep   gdept   gdep1   floor gdep    gdep2   ceil gdep    same   where gdep2 gdep1 EQ 0    if same 0  NE  1 then gdep2 same    gdep2 same   1   sgdep1   strtrim gdep1  1    sgdep2   strtrim gdep2  1      dephtid   cw_combobox_pm basezdrp  value    sgdep1  uvalue    name: dthlv1  grid_t:strupcase vargrid  NE  W  uname    dthlv1    rien   where gdep1 LT boxzoom 4  indice1    indice1   indice1   indice2 1    widget_control  dephtid  set_value    combobox_select:indice2          basedepthslid   widget_base base  column   2  space   0    strminlen   max strlen strtrim round gdept  gdepw  1      if indice1 EQ 0 then min1   0 ELSE min1   gdep2 indice1 1    max1    min1 1    gdep1 indice2    rien   cw_slider_pm basez  value   min1   boxzoom 4   boxzoom 4    boxzoom 5    max2                           uvalue    name: depth2  minimum   min2  maximum    max2                           uname    depth2  title    z2  strminlen   strminlen        return  base end"); 
    363 a[361] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html", "cw_droplist_pm.pro", "", "  PRO testwid_event  event       help  event   STRUCT      DroplistId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          dynamic_resize :BEGIN             widget_control  event id  get_value   value            widget_control  DroplistId  set_value    dynamic_resize:value          END          droplist_select :BEGIN             widget_control  event id  get_value   value            widget_control  DroplistId  set_value    droplist_select:value          END          value :BEGIN             widget_control  event id  get_value   value            widget_control  DroplistId  set_value   value         END          get :BEGIN             widget_control  DroplistId  get_value   value            help   value   struct         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_droplist_pm base  _extra   ex  uname    c est lui  uvalue    c est lui    print   cw_droplist_pm ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    0  uvalue    dynamic_resize   editable       nothing   widget_text base  value    10  uvalue    droplist_select   editable       nothing   widget_text base  value    5  uvalue    value   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end   PRO cw_droplist_pm_set_value  id  value     compile_opt idl2  strictarrsubs      DroplistId   widget_info id find_by_uname    Droplist     if size value   type  eq 8 then BEGIN   this is a structure       tagnames   tag_names value        for tag   0  n_tags value 1 do begin          case strtrim strlowcase tagnames tag  2  of              dynamic_resize :widget_control  DroplistId  dynamic_resize   value dynamic_resize              droplist_select :widget_control  DroplistId  set_droplist_select   value droplist_select              value :widget_control  DroplistId  set_value   value value             ELSE:ras   report mauvais nom de l argument de la structure ds cw_droplist_pm_set_value           endcase       endfor    ENDIF ELSE widget_control  DroplistId  set_value   value    return end   FUNCTION cw_droplist_pm_get_value  id     compile_opt idl2  strictarrsubs      DroplistId   widget_info id find_by_uname    Droplist     return   droplist_number:widget_info DroplistId   droplist_number                  droplist_select:widget_info DroplistId   droplist_select                  dynamic_resize:widget_info DroplistId   dynamic_resize  end   FUNCTION cw_droplist_pm_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval      if uval EQ  Droplist  then       return   CW_DROPLIST_PM  ID:event handler  TOP:event top  HANDLER:0L                  INDEX:event index  OUT:0       DroplistId   widget_info event handler find_by_uname    Droplist     index   widget_info DroplistId   droplist_select     case uval OF        plus :BEGIN          indexmax   widget_info DroplistId   droplist_number 1          if index NE indexmax then widget_control  DroplistId set_droplist_select   index 1          return   CW_DROPLIST_PM  ID:event handler  TOP:event top  HANDLER:0L                       INDEX: index 1    index 1  OUT: long index EQ 0        END    endcase end                file_comments   Like WIDGET_DROPLIST but here  their are 2 buttons   and   to move the widget from   1      categories   compound widget       param PARENT  in required    The widget ID of the parent widget       keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword _EXTRA   Used to pass your keywords      returns   The returned value of this function is the widget ID of the   newly created animation widget       restrictions         Widget Events Returned by Droplist Widgets       Pressing the mouse button while the mouse cursor is over an     element of a droplist widget causes the widget to change the label     on the droplist button and to generate an event  The appearance of     any previously selected element is restored to normal at the same     time  The event structure returned by the WIDGET_EVENT function is     defined by the following statement:         CW_DROPLIST_PM  ID:0L  TOP:0L  HANDLER:0L  INDEX:0L  OUT:0         The first three fields are the standard fields found in every     widget event      INDEX returns the index of the selected item  This can be used to     index the array of names originally used to set the widget s     value     OUT:It is an integer which can take 3 values:          1 : If we press   when the index is already at the max         Comment: In this case  the index stay at the max          1: If we press   when the index is already at the min         Comment: In this case  the index stay at the min         0 : In other cases       Keywords to WIDGET_CONTROL       A number of keywords to the WIDGET_CONTROL procedure affect the     behavior of cw_slider_pm widget: GET_VALUE and SET_VALUE          1  GET_VALUE     widget_control wid_id get_value resultat     Send back  in the result variable  a structure of 3 elements whose      names are inspired by keywords we can pass at widget_control when     we use WIDGET_COMBOBOX:              DROPLIST_NUMBER: the number of elements currently              contained in the specified droplist widget               DROPLIST_SELECT: the zero based number of the              currently selected element  i e  the currently displayed              element  in the specified droplist widget               DYNAMIC_RESIZE: a True value  1  if the widget specified              by Widget_ID is a button  droplist  or label widget that              has had its DYNAMIC_RESIZE attribute set  Otherwise               False  0  is returned          2  SET_VALUE     widget_control wid_id set_value impose     permet de modifier l etat de la droplist comme on peut le faire     pour WIDGET_DROPLIST Impose peut etre:         a  The contents of the list widget  string or string array          b  A structure which can have for elements  from 1 to 3 :               DYNAMIC_RESIZE:Set this keyword to activate  if set to 1               or deactivate  if set to 0  dynamic resizing of the              specified CW_DROPLIST_PM widget  see the documentation              for the DYNAMIC_RESIZE keyword to WIDGET_DROPLIST              procedure for more information about dynamic widget              resizing               DROPLIST_SELECT:Set this keyword to return the zero based              number of the currently selected element  i e  the              currently displayed element  in the specified droplist              widget               VALUE: The contents of the list widget  string or string              array       examples   See the program provided above  testwid and the associated procedure  testwid_event       history   Sebastien Masson  smasson lodyc jussieu fr                         6 9 1999      version    Id: cw_droplist_pm pro 150 2006 08 09 10:12:54Z navarro             FUNCTION cw_droplist_pm  parent UVALUE   uvalue  UNAME   uname  ROW   row  COLUMN   column  _extra   ex     compile_opt idl2  strictarrsubs       IF  N_PARAMS  NE 1  THEN MESSAGE   Incorrect number of arguments     ON_ERROR  2                   return to caller   cheking for row and column keywords    row   keyword_set row 1 keyword_set column      column   keyword_set column 1 keyword_set row keyword_set column  EQ row      if NOT keyword_set uvalue  then uvalue        if NOT keyword_set uname  then uname          base   widget_base parent  space   1  xpad   1  ypad   1  ROW   row  COLUMN   column                            EVENT_FUNC    cw_droplist_pm_event                            FUNC_GET_VALUE cw_droplist_pm_get_value                            PRO_SET_VALUE cw_droplist_pm_set_value                            UVALUE   uvalue  UNAME   uname  _extra   ex          if keyword_set row  THEN nothing   widget_button base value    uvalue   minus     nothing   widget_droplist base  UVALUE    Droplist  UNAME    Droplist  _extra   ex     if keyword_set column  then begin       base1   widget_base base   row   align_center  space   1  xpad   1  ypad   1        nothing   widget_button base1 value    uvalue   minus  xsize   20  ysize   20        nothing   widget_button base1 value    uvalue   plus  xsize   20  ysize   20     ENDIF ELSE nothing   widget_button base value    uvalue   plus        widget_control base realize      return  base end"); 
    364 a[362] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html", "cw_pagelayout.pro", "", "    FUNCTION cw_pagelayout_event  event     compile_opt idl2  strictarrsubs       widget_control  event id  get_uvalue uval    widget_control  event top  get_uvalue top_uvalue      smallin   extractatt top_uvalue   smallin     numdessinin   smallin 2 1    smallout   extractatt top_uvalue   smallout       if uval name EQ  undo  then begin       return ID:event handler  TOP:event top  HANDLER:0L     ENDIF ELSE BEGIN     common   If we do not change the number of columns  we send       if uval name EQ  column  then          if event index 1 EQ smallin 0  THEN          return ID:event handler  TOP:event top  HANDLER:0L    If we do not change the number of lines  we send       if uval name EQ  row  then          if event index 1 EQ smallin 1  THEN          return ID:event handler  TOP:event top  HANDLER:0L      We erase the page        graphid   widget_info event top find_by_uname    graph        graphid   extractatt top_uvalue   graphid        widget_control graphid get_value win       wset  win       erase  255       case uval name of           clear :           column :BEGIN              smallin    event index 1  smallin 1  1              smallout    event index 1  smallout 1  1           END           row :BEGIN             smallin    smallin 0  event index 1  1              smallout    smallout 0  event index 1  1           END       endcase       nbredessin   smallin 0 smallin 1               We put all back to 0 for postscripts       createhistory  event top  smallin                  options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        flag   flags  numdessinin               update and reset all values of the top_uvalue           top_uvalue 1  findline top_uvalue   smallin    smallin        top_uvalue 1  findline top_uvalue   smallout    smallout          top_uvalue 1  findline top_uvalue   penvs    replicate p  nbredessin         top_uvalue 1  findline top_uvalue   xenvs    replicate x  nbredessin         top_uvalue 1  findline top_uvalue   yenvs    replicate y  nbredessin           top_uvalue 1  findline top_uvalue   nameprocedures    strarr nbredessin         top_uvalue 1  findline top_uvalue   types    strarr nbredessin         top_uvalue 1  findline top_uvalue   varinfo    strarr 2  nbredessin         top_uvalue 1  findline top_uvalue   domaines    fltarr 6  nbredessin         top_uvalue 1  findline top_uvalue   dates    lonarr 2  nbredessin         top_uvalue 1  findline top_uvalue   txtcmd    strarr nbredessin         top_uvalue 1  findline top_uvalue   optionsflag    flag replicate 1  nbredessin          ptr_free  extractatt top_uvalue   exextra         top_uvalue 1  findline top_uvalue   exextra    ptrarr nbredessin   allocate_heap          top_uvalue 1  findline top_uvalue            ENDELSE      return ID:event handler  TOP:event top  HANDLER:0L  end        file_comments        categories         param PARENT  in required    The widget ID of the parent widget       param SMALL         keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget       keyword _EXTRA   Used to pass your keywords            returns          uses          restrictions          examples          history          version    Id: cw_pagelayout pro 150 2006 08 09 10:12:54Z navarro          todo    seb: documenter      FUNCTION cw_pagelayout  parent  small  UVALUE   uvalue  UNAME   uname  UNZOOM   unzoom  COLUMN   column  ROW   row  _extra   ex       compile_opt idl2  strictarrsubs     row   keyword_set row 1 keyword_set column      if NOT keyword_set uvalue  then uvalue       if NOT keyword_set uname  then uname       base   widget_base parent                          EVENT_FUNC    cw_pagelayout_event                           FUNC_GET_VALUE    cw_pagelayout_get_value                           PRO_SET_VALUE    cw_pagelayout_set_value                           UVALUE   uvalue  UNAME   uname  space   0  _extra   ex         IF n_elements small  eq 0 then small    1  1  1      dummy   widget_label base  value    cln  yoffset   3    id   widget_combobox base  value   strtrim indgen 9 1  1  uvalue    name: column                             uname    column  xoffset   20  xsize   40    widget_control  id  set_combobox_select   small 0 1     IF keyword_set row  THEN BEGIN      xoff   60     yoff   0   ENDIF ELSE BEGIN      xoff   0     yoff   20   ENDELSE    dummy   widget_label base  value    row  xoffset   xoff  yoffset   yoff 3    id   widget_combobox base  value   strtrim indgen 9 1  1  uvalue    name: row                             uname    row  xoffset   xoff 20  xsize   40  yoffset   yoff    widget_control  id  set_combobox_select   small 1 1       return  base end  "); 
    365 a[363] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html", "cw_slide_slice.pro", "", "pro cw_slide_slice_set_value  id  value     compile_opt idl2  strictarrsubs    common    topid   findtopid id     domainid   widget_info topid  find_by_uname    domain     widget_control  domainid  get_value   boxzoom    if boxzoom 1 boxzoom 0  LT boxzoom 3 boxzoom 2  then type    y  ELSE type    x     thickid    widget_info topid  find_by_uname    thickness     widget_control  thickid  get_uvalue   thicknessuval    widget_control  thickid  get_value   thickness    thickness   thicknessuval choix thickness droplist_select     sliderid   widget_info topid  find_by_uname    slider     if type EQ  y  then BEGIN       mini   floor min glamt  glamf  max   maxi        maxi   ceil maxi thickness       widget_control  sliderid  set_value    slider_min:mini  slider_max:maxi  value:boxzoom 0  maxi                               value   mini   boxzoom 0   maxi                               value   mini   boxzoom 2    maxi   column  uname    slider                                uvalue    name: slider     ENDELSE    index   where thicknessval EQ thickness    index   index 0     if index EQ  1 then BEGIN        index   20       thicknessval 20    strtrim thickness  1        widget_control  droplistid  set_value   thicknessval       widget_control  droplistid  set_uvalue  name: thickness  choix:thicknessval     endif    widget_control  droplistid  set_value    droplist_select:index          if type EQ  xt  then begin         mini   floor min glamt glamf  max   maxi          maxi   ceil maxi       ENDIF ELSE BEGIN          mini   floor min gphit gphif  max   maxi          maxi   ceil maxi       ENDELSE          return  base end"); 
    366 a[364] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html", "cw_slider_pm.pro", "", "  PRO testwid_event  event       help  event   STRUCT      SliderBarId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          slider_min :BEGIN             widget_control  event id  get_value   value            widget_control  SliderBarId  set_value    slider_min:value          END          slider_max :BEGIN             widget_control  event id  get_value   value            widget_control  SliderBarId  set_value    slider_max:value          END          slider_value :BEGIN             widget_control  event id  get_value   value            widget_control  SliderBarId  set_value   value         END          get :BEGIN             widget_control  SliderBarId  get_value   value            help   value   struct            print  value slider_min_max         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_slider_pm base  _extra   ex  uname    c est lui  uvalue    c est lui    print   cw_slider_pm ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    0  uvalue    slider_min   editable       nothing   widget_text base  value    10  uvalue    slider_max   editable       nothing   widget_text base  value    5  uvalue    slider_value   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end   FUNCTION decvalue  value     compile_opt idl2  strictarrsubs     a   float value 0    return  strtrim string floor a    0 1 indgen 10  format    f15 1  2  end   FUNCTION decind  value     compile_opt idl2  strictarrsubs     a   float value 0    return  round 10 a   floor a      computation accuracy end   PRO cw_slider_pm_set_value  id  value     compile_opt idl2  strictarrsubs     sbid   widget_info id  find_by_uname    SliderBar    dcid   widget_info id  find_by_uname    decimal    minmax   widget_info sbid   SLIDER_MIN_MAX    if size value   type  eq 8 then BEGIN   this is a structure     tagnames   tag_names value      for tag   0  n_tags value 1 do begin       case strtrim strlowcase tagnames tag  2  of          slider_min :BEGIN            IF float value slider_min 0  LT minmax 1  THEN BEGIN              minmax 0    value slider_min 0              widget_control  sbid  set_slider_min   floor float value slider_min 0              valuedc   float widget_info dcid   combobox_gettext              IF valuedc LT value slider_min THEN BEGIN               widget_control  sbid  set_value   floor float value slider_min 0                widget_control  dcid  set_value   decvalue value slider_min                widget_control  dcid  set_combobox_select   decind value slider_min              ENDIF             ENDIF          end          slider_max :BEGIN            IF float value slider_max 0  GT minmax 0  THEN BEGIN              minmax 1    value slider_max 0              widget_control  sbid  set_slider_max   ceil float value slider_max 0              valuedc   float widget_info dcid   combobox_gettext              IF valuedc GT value slider_max THEN BEGIN               widget_control  sbid  set_value   ceil float value slider_max 0                widget_control  dcid  set_value   decvalue value slider_max                widget_control  dcid  set_combobox_select   decind value slider_max              ENDIF             ENDIF          end          value :IF float value value 0  GE minmax 0              AND float value value 0  LE minmax 1  THEN value2   float value value 0          ELSE:ras   report wrong tag name in argument  value  of cw_slider_pm_set_value        endcase     endfor   ENDIF ELSE BEGIN      IF float value 0  GE minmax 0          AND float value 0  LE minmax 1  THEN value2   float value 0    ENDELSE   IF n_elements value2  NE 0 THEN BEGIN      widget_control  sbid  set_value   fix value2      widget_control  dcid  set_value   decvalue value2      widget_control  dcid  set_combobox_select   decind value2    ENDIF    return end   FUNCTION cw_slider_pm_get_value  id     compile_opt idl2  strictarrsubs     sbid   widget_info id  find_by_uname    SliderBar    dcid   widget_info id  find_by_uname    decimal    minmax   widget_info sbid   SLIDER_MIN_MAX    value   float widget_info dcid   combobox_gettext     return   value:value  slider_min_max:minmax  end   FUNCTION cw_slider_pm_event  event     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uval     sbid   widget_info event handler  find_by_uname    SliderBar    dcid   widget_info event handler  find_by_uname    decimal    minmax   widget_info sbid   SLIDER_MIN_MAX    IF uval EQ  decimal  THEN value   float event str      ELSE value   float widget_info dcid   combobox_gettext    out   0   defaut case   case uval OF      plus : if  value   1  LE minmax 1  then value2   value   1 ELSE out   1      minus :if  value   1  GE minmax 0  then value2   value   1 ELSE out    1      SliderBar :if  event value   value   floor value  LE minmax 1  THEN value2   event value   value   floor value       decimal :BEGIN        CASE 1 OF         value GT minmax 1 : value2   minmax 1          value LT minmax 0 : value2   minmax 0          ELSE:       ENDCASE     END     ELSE:   ENDCASE   IF n_elements value2  NE 0  THEN BEGIN     value   value2     widget_control  sbid  set_value   floor value      widget_control  dcid  set_value   decvalue value      widget_control  dcid  set_combobox_select   decind value    ENDIF   return   CW_SLIDER_PM  ID:event handler  TOP:event top  HANDLER:0L                VALUE:value  OUT:OUT  end                file_comments   Like WIDGET_SLIDER but here  their are 2 buttons   and   to move the widget from   1      categories   compound widget       param PARENT  in required    The widget ID of the parent widget       keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword VALUE        keyword MAXIMUM          keyword MINIMUM         keyword STRMINLEN        keyword _EXTRA   Used to pass your keywords      returns   The returned value of this function is the widget ID of the   newly created animation widget       restrictions      Widget Events Returned by the CW_SLIDER_PM Widget      Slider widgets generate events when the mouse is used to change    their value  The event structure returned by the WIDGET_EVENT    function is defined by the following statement:       CW_SLIDER_PM  ID:0L  TOP:0L  HANDLER:0L  VALUE:0L  DRAG:0  OUT:0       ID is the widget ID of the button generating the event  TOP is the    widget ID of the top level widget containing ID     HANDLER contains the widget ID of the widget associated with the    handler routine     VALUE returns the new value of the slider     DRAG returns integer 1 if the slider event was generated as part of    a drag operation  or zero if the event was generated when the user    had finished positioning the slider  Note that the slider widget    only generates events during the drag operation if the DRAG keyword    is set  and if the application is running under Motif  When the    DRAG keyword is set  the DRAG field can be used to avoid    computationally expensive operations until the user releases the    slider     OUT:It is an integer which can take 3 values:          1 : If we press   when the index is already at the max         Comment: In this case  the index stay at the max          1: If we press   when the index is already at the min         Comment: In this case  the index stay at the min         0 : In other cases       Keywords to WIDGET_CONTROL       A number of keywords to the WIDGET_CONTROL procedure affect the     behavior of cw_slider_pm widget: GET_VALUE and SET_VALUE          1  GET_VALUE     widget_control wid_id get_value resultat     retourne ds la variable resultat une structure de 2 elements dont     les noms sont inspires des mots cles que l on peut passer a     widget_control qd on utilise WIDGET_SLIDER:              VALUE:the value setting of the widget              SLIDER_MIN_MAX: a 2 elements array: The minimum and the              maximum value of the range encompassed by the slider         2  SET_VALUE     widget_control wid_id set_value impose     Allows to modify the state of the combobox like we can do it for      WIDGET_COMBOBOX  May impose:          a  un entier: donne la nouvelle  position of the slider          b  A structure which can have for elements  from 1 to 3 :               VALUE: an integer which give the new position of the slider              SLIDER_MIN:Set to a new minimum value for the specified              slider widget               SLIDER_MAX:Set to a new minimum value for the specified              slider widget         examples   See the program provided above  testwid and the associated procedure  testwid_event       history   Sebastien Masson  smasson lodyc jussieu fr                         5 9 1999      version    Id: cw_slider_pm pro 150 2006 08 09 10:12:54Z navarro        todo   seb: documenter           FUNCTION cw_slider_pm  parent  MAXIMUM   maximum  MINIMUM   minimum                            STRMINLEN   strminlen  VALUE   value  UVALUE   uvalue                            UNAME   uname  title   title  _extra   ex     compile_opt idl2  strictarrsubs      IF  N_PARAMS  NE 1  THEN MESSAGE   Incorrect number of arguments    ON_ERROR  2                    return to caller     if n_elements minimum  NE 0 then minimum   floor minimum  ELSE minimum   0   if n_elements maximum  NE 0 then maximum   ceil maximum  ELSE maximum   100   if NOT keyword_set title  then title              cheking exclusive keywords   column    keyword_set column 1 keyword_set row keyword_set vertical   xsize   lenstr   max strlen strtrim minimum  maximum  1    if keyword_set strminlen  then lenstr   strminlen   lenstr    xsize   35   mlen lenstr 1 3 lenstr lt 4    xsize   35   mlen lenstr 2    dummyid   widget_combobox base  value   decvalue minimum                                  UVALUE    decimal  UNAME    decimal                                  xoffset   xoff  yoffset   2  xsize   xsize     dummyid   widget_slider base  MAXIMUM   maximum  MINIMUM   minimum  UVALUE    SliderBar                                UNAME    SliderBar   suppress_value   drag                               yoffset   30  xsize   xoff   xsize      if keyword_set value  then cw_slider_pm_set_value  base  value     return  base end"); 
    367 a[365] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html", "cw_specifie.pro", "", "    PRO cw_specifie_set_value  id  value     compile_opt idl2  strictarrsubs    cm_general    if size value   type  NE 8 then return    widget_control  widget_info id find_by_uname min  set_value   strtrim value min  2     widget_control  widget_info id find_by_uname max  set_value   strtrim value max  2     widget_control  widget_info id find_by_uname int  set_value   strtrim value inter  2     widget_control  widget_info id find_by_uname palnum  set_value   strtrim value lct  2     autres   extractstru value   min   max   inter   lct   nothing   xindex   yindex     if size autres   type  EQ 8 then BEGIN        autresid   widget_info id find_by_uname autres        widget_control  widget_info id  find_by_uname    autres  get_value   autresautres       autresautres   autresautres 0        if strtrim autresautres  2  NE   then begin         autresautres   createfunc get_extra    autresautres                                           filename   myuniquetmpdir  for_createfunc pro          autres   mixstru autres  autresautres        endif       autres   strkeywd autres        widget_control  widget_info id find_by_uname autres  set_value   autres    endif    return end     FUNCTION cw_specifie_get_value  id     compile_opt idl2  strictarrsubs    cm_general    widget_control  widget_info id find_by_uname min  get_value   min    min   float min 0     widget_control  widget_info id find_by_uname max  get_value   max    max   float max 0     widget_control  widget_info id find_by_uname int  get_value   int    int   float int 0     widget_control  widget_info id find_by_uname palnum  get_value   palnum    palnum   long palnum 0     widget_control  widget_info id find_by_uname autres  get_value   autres    autres   autres 0       exextra    min:min  max:max  inter:int  lct:palnum     if strtrim autres  2  NE   then         exextra   createfunc get_extra autres  _extra   exextra                                 kwdlist    exextra   exextra  exextra   exextra                                filename   myuniquetmpdir  for_createfunc pro       return  exextra end     FUNCTION cw_specifie_event  event     on recuper les ID des differents widgets          compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uval   widget_control  event top  get_uvalue   top_uvalue   smallin   extractatt top_uvalue   smallin    numdessinin   smallin 2 1   smallout   extractatt top_uvalue   smallout    numdessinout   smallout 2 1     case uval of      default :BEGIN      We find the name of the variable:        vlstid   widget_info event top  find_by_uname    varlist        fieldname   widget_info vlstid   combobox_gettext          exextra   definedefaultextra fieldname        widget_control  widget_info event handler  find_by_uname    min  set_value   strtrim exextra min  1        widget_control  widget_info event handler  find_by_uname    max  set_value   strtrim exextra max  1        widget_control  widget_info event handler  find_by_uname    int  set_value   strtrim exextra inter  1        widget_control  widget_info event handler  find_by_uname    palnum  set_value   strtrim exextra lct  1        widget_control  widget_info event handler  find_by_uname    autres  set_value         END      palcol :BEGIN        ind   fix strmid event value  0  strpos event value          widget_control  widget_info event handler  find_by_uname    palnum  set_value   strtrim ind  1      END     ELSE:   endcase   return   ID:event handler  TOP:event top  HANDLER:0L  OK:uval EQ  ok  end          file_comments        categories         param PARENT  in required    The widget ID of the parent widget       keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget       keyword FRAME        keyword FORXXX         keyword _EXTRA   Used to pass your keywords         returns          uses          restrictions          examples          history          version     ID       todo   seb: documenter      FUNCTION cw_specifie  parent  ROW   row  COLUMN   column  UVALUE   uvalue  UNAME   uname  FRAME   frame  FORXXX   forxxx  _extra   ex   cheking exclusive keywords     compile_opt idl2  strictarrsubs      column   keyword_set column 1 keyword_set row     row   keyword_set row 1 keyword_set column   keyword_set row  EQ column        if NOT keyword_set uvalue  then uvalue        if NOT keyword_set uname  then uname        base   widget_base parent  space   0   frame                           EVENT_FUNC    cw_specifie_event                            FUNC_GET_VALUE cw_specifie_get_value                            PRO_SET_VALUE cw_specifie_set_value                            UVALUE   uvalue  UNAME   uname  _extra   ex       base1     base1   widget_base base     rien   widget_label base1  value    Min  xoffset    85  yoffset   15     rien   widget_label base1  value    Max  xoffset   145  yoffset   15     rien   widget_label base1  value    Int  xoffset   210  yoffset   15       lct  get_name   nomcouleur    nbrligne   30    nbrlist   n_elements nomcouleur nbrligne    nomcouleur   strtrim sindgen n_elements nomcouleur  1   nomcouleur    nomcouleur    0 nomcouleur    nomcouleur    1 Color  nomcouleur     if nbrlist GT 1 then for i   1 nbrlist do       nomcouleur    nomcouleur 0:nbrligne i 1 i   1    nomcouleur nbrligne i i:n_elements nomcouleur 1     rien   cw_pdmenu base1  nomcouleur   RETURN_NAME   uvalue    palcol  uname    palcol  xoffset   250  yoffset   0    base2    base2   widget_base base  column   4 keyword_set forxxx  yoffset   30     if keyword_set forxxx  then rien   widget_button base2 value Default  uvalue    default   frame  tooltip    see  find definedefaultextra 0     rien   widget_text base2  value      editable  xsize   7  uname    min  uvalue    min     rien   widget_text base2  value      editable  xsize   7  uname    max  uvalue    max     rien   widget_text base2  value      editable  xsize   7  uname    int  uvalue    int     if keyword_set forxxx  then colvalue     ELSE colvalue    39     rien   widget_text base2  value   colvalue   editable  xsize   2  uname    palnum  uvalue    palnum       widget text containig other keywords pass into top_uvalue exextra   Does it remain some  If yes  we have to put them as string        rien   widget_text base  value         editable  uname    autres  uvalue    autres  xsize   54  ysize   3  yoffset   65   wrap   no_newline       if keyword_set forxxx  then cw_specifie_set_value  base  definedefaultextra rien_du_tout        return  base end "); 
    368 a[366] = new Array("./ToBeReviewed/WIDGET/findtopid.html", "findtopid.pro", "", "             file_comments   Find  from an Id of widget  the Id of the widget which is     the top level base   i e  it has no parent      categories   widget       param WIDGET_ID   This argument should be the widget ID of the   widget for which information is desired       returns   The Id of the widget which is  the top level base       history   Sebastien Masson  smasson lodyc jussieu fr                         22 9 1999      version    Id: findtopid pro 150 2006 08 09 10:12:54Z navarro             FUNCTION findtopid   WIDGET_ID     compile_opt idl2  strictarrsubs      id   long WIDGET_ID       exist   widget_info id   managed       if exist EQ 0 then return    1    topid   id    topid2   id    while topid2 NE 0 do begin       topid   topid2       topid2   widget_info topid2   parent     endwhile    return   long topid  end"); 
    369 a[367] = new Array("./ToBeReviewed/WIDGET/slec.html", "slec.pro", "", "     file_comments        categories         param NAME        param DEBUT        param FIN        param NOMEXP         keyword PARENT  in required    The widget ID of the parent widget       keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword _EXTRA   Used to pass your keywords          returns          uses          restrictions          examples          history          version     Id: slec pro 150 2006 08 09 10:12:54Z navarro        todo   Seb: documenter     FUNCTION slec name debut fin  nomexp  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex     include common     compile_opt idl2  strictarrsubs    cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       case n_params  of       1:tab   nlec name  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex        2:tab   nlec name debut  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex        3:tab   nlec name debut fin  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex        4:tab   nlec name debut fin  nomexp  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex     endcase      return   tab:tab  grille:vargrid  unite:varunit  experience:varexp  nom:varname  end"); 
    370 a[368] = new Array("./ToBeReviewed/WIDGET/xnotice.html", "xnotice.pro", "", "             file_comments   Create a widget with some text at the middle of the window      categories   Information       param TEXT  in required    it is a string or a vector of string  If it is a scalar  we    look for the line separator  C to create a text with several lines       keyword CHKWIDGET   Force to verify that they are some active widget to create a widget     otherwise print at the prompt      returns   The identity of the created widget      restrictions    It do not call xmanager   It do not create any event     We have to delete this widget manuelly:   widget_control  widgetid   destroy      examples      IDL  id xnotice ca marche  C ou pas       IDL  widget_control  id   destroy      history   Sebastien Masson  smasson lodyc jussieu fr                         2000 3 17      version    Id: xnotice pro 150 2006 08 09 10:12:54Z navarro             FUNCTION xnotice  text  CHKWIDGET   chkwidget     We separate the text in different lines  separated by  C  if it is not done yet    n est pas deja fait      compile_opt idl2  strictarrsubs      if n_elements text  EQ 1 then text   str_sep text   C   trim       if keyword_set chkwidget  then makewid    widget_info managed 0 ELSE makewid   1      if makewid EQ 0 then BEGIN       for i   0   n_elements text 1 do print  text i        noticebase   0    endif      noticebase   widget_base column  title    information   align_center     screensize   get_screen_size     widget_control  noticebase  tlb_set_xoffset   screensize 0 2 2  tlb_set_yoffset   screensize 1 2 2    nothing   widget_label noticebase  value          for i   0   n_elements text 1 do nothing   widget_label noticebase  value   text i     nothing   widget_label noticebase  value          widget_control noticebase realize      return  noticebase end"); 
    371 a[369] = new Array("./ToBeReviewed/WIDGET/xquestion.html", "xquestion.pro", "", "  pro xquestion_event  event     compile_opt idl2  strictarrsubs     we get the answer    widget_control  widget_info event top  find_by_uname    text          get_value   answer   answer   answer 0    now we give the answer to xquestion pro by using the pointer uvalue    widget_control  event top  get_uvalue   ptranswer     ptranswer   answer   we destroy the widget    widget_control  event top   destroy    return end                file_comments   A small widget who ask a question and give an answer      WARNING: For a binary question with yes no answer use     DIALOG_MESSAGE       categories   widget      param QUESTION   A scalar string or a array of string  If this   argument is set to :          an array of strings: each array element is          displayed as a separate line of text           a scalar string: we are looking for the  separate line          character   C       param PROPOSEDANSWER   A string proposing a answer        keyword CHKWIDGET   Active this keyword if you whant that xquestion   check if managed widget are present  If not  xquestion do not   open a widget but print the question in the IDL window        keyword _EXTRA   Used to pass your keywords       returns   answer: a string      restrictions   The function does not return to its caller until the user   press  Enter  key in the widget       examples   IDL  help  xquestion Postscript name        STRING       toto ps       history   Sebastien Masson  smasson lodyc jussieu fr                         13 10 1999      version    Id: xquestion pro 150 2006 08 09 10:12:54Z navarro             FUNCTION xquestion  question  proposedanswer  CHKWIDGET   chkwidget  _extra   ex       compile_opt idl2  strictarrsubs     is separate line a scalar  we must cut it into pieces      if n_elements question  EQ 1 then question   str_sep question   C   trim    is a widget necessary     if keyword_set chkwidget  then BEGIN       if  widget_info managed 0  EQ 0 then BEGIN          if n_elements proposedanswer  EQ 0 then BEGIN              proposedanswer                 answer                 complete              ENDIF ELSE BEGIN              answer   proposedanswer             complete    default answer is  proposedanswer             ENDELSE          if n_elements question  GT 1 THEN             for i   0  n_elements question 2 do print question i            read  question n_elements question 1   complete   answer          if keyword_set answer  EQ 0 then answer   proposedanswer          return  answer       endif    endif   definition of the widget    BaseId   widget_base column  title    Question  _extra   ex     screensize   get_screen_size     widget_control  BaseId  tlb_set_xoffset   screensize 0 2 2  tlb_set_yoffset   screensize 1 2 2    for i   0   n_elements question 1 DO trash   widget_label BaseId  value   question i   align_left     if n_elements proposedanswer  EQ 0 then answer     ELSE answer   proposedanswer    trash   widget_text BaseId  value   answer   editable  _extra   ex  uname    text     trash   widget_button BaseId  value    ok     ptranswer   ptr_new allocate_heap     widget_control  BaseId  set_uvalue   ptranswer   we realize the widget and wait for an answer    widget_control BaseId realize    xmanager xquestion BaseId   we get the answer    answer    ptranswer   we freeing the pointer    ptr_free  ptranswer      return  answer end"); 
    372 a[370] = new Array("./ToBeReviewed/WIDGET/xx.html", "xx.pro", "", "     file_comments        categories         keyword JOUR          keyword MESHFILENAME          keyword LISTVAR          keyword LISTGRID          keyword FUNCLEC_NAME           keyword CALENDAR          keyword _EXTRA   Used to pass your keywords          uses          restrictions          examples          history          version     Id: xx pro 150 2006 08 09 10:12:54Z navarro        todo   seb documenter       PRO xx   JOUR   jour  MESHFILENAME   meshfilename   LISTVAR   listvar  LISTGRID   listgrid  FUNCLEC_NAME   funclec_name  CALENDAR   calendar  _extra   ex     compile_opt idl2  strictarrsubs    common        Name of the part to be changed       Name of the reading function    if NOT keyword_set funclec_name  then funclec_name    slec     varexp    INF    list of variables    if NOT keyword_set listvar  then listvar    tn sn un vn   taux   tauy hdep20 hdep28 hdep15 hturb hpycn htoth emp qn qs   smltot11   smltot12   smltot13   smltot14   smltot15   smltot16   tmltot11   tmltot12   tmltot13   tmltot14   tmltot15   tmltot16    list of grids to which variables refer to     if NOT keyword_set listgrid  then BEGIN        listgrid   replicate T  n_elements listvar        listgrid 2  4     U        listgrid 3  5     V     ENDIF   calendar to be used  in IDL julian days          if NOT keyword_set calendar  then BEGIN          if keyword_set jour  then calendar   calendriertotem julian_day  ELSE calendar   calendriertotem julian_day   mensuel       ENDIF   Name of the file refering to the mask    if NOT keyword_set meshfilename  then meshfilename    usr1 com smasson IDL INIT inittotem pro      meshparameters   whichgrid meshfilename    parameters specifing how the field must be read    readparameters   funclec_name: funclec_name                         jpidta: jpidta  jpjdta: jpjdta  jpkdta: jpkdta                         ixmindta: ixmindta  ixmaxdta: ixmaxdta                         iymindta: iymindta  iymaxdta: iymaxdta                         izmindta: izmindta  izmaxdta: izmaxdta           End of the part to be change            fileparameters    filename:  many                            time_counter: calendar                          listvar: listvar                          listgrid: strupcase listgrid       multistructure    fileparameters: temporary fileparameters                    readparameters: temporary readparameters                    meshparameters: temporary meshparameters       xxx  multistructure   temporary multistructure  _extra   ex     return end"); 
    373 a[371] = new Array("./ToBeReviewed/WIDGET/xxx.html", "xxx.pro", "", " PRO xxx_event  event       compile_opt idl2  strictarrsubs    common          widget_info event top find_by_uname       What is the type of evenment       if event id EQ 622 then help   event    struct    widget_control  event id  get_uvalue uval    if  tag_names event   structure_name 0  EQ  WIDGET_TRACKING  then uval    name: ActiverFenetre     if keyword_set uval  EQ 0 then return  help   event   struct  help  uval    struct   case on the type of evenment    widget_control  event top  get_uvalue   top_uvalue   If we activate the keyword separate at the call of xxx    if size top_uvalue   type  EQ 3 then begin       event top   top_uvalue       widget_control  event top  get_uvalue   top_uvalue    endif   we delete the small widget created by notice pro if it exists    noticebase   extractatt top_uvalue   noticebase     if noticebase NE 0 then BEGIN       widget_control  noticebase   destroy        top_uvalue 1  findline top_uvalue   noticebase    0l    endif      options   extractatt top_uvalue   options     case uval name OF        menubar :xxxmenubar_event  event        ok :nouveaudessin   1        specifie :        action :        calendar1 :BEGIN          date2id   widget_info event top  find_by_uname    calendar2           widget_control  date2id  get_value   date2          if event value GT date2 then widget_control  date2id  set_value   event value       END        calendar2 :BEGIN          date1id   widget_info event top  find_by_uname    calendar1           widget_control  date1id  get_value   date1          if event value LT date1 then widget_control  date1id  set_value   event value       END        domain :        varlist :BEGIN          currentfile    extractatt top_uvalue   currentfile           listvar    extractatt top_uvalue   fileparameters currentfile listvar          name   listvar event index           changefield  event top  name       END        txtcmd :        filelist :BEGIN          changefile  event top  event index       END        ActiverFenetre :BEGIN          if event enter EQ 1 AND  d name NE  PS  then BEGIN              graphid   widget_info event top find_by_uname    graph              graphid   extractatt top_uvalue   graphid              widget_control graphid get_value win             wset  win             widget_control event top get_uvalue top_uvalue             numdessinin    extractatt top_uvalue   smallin 2 1              p    extractatt top_uvalue   penvs numdessinin               x    extractatt top_uvalue   xenvs numdessinin               y    extractatt top_uvalue   yenvs numdessinin           endif       END        graph :BEGIN          quelclick   identifyclick event           case quelclick type of              inutile :return              long :longclickaction  event              single :singleclickaction  event              double :doubleclickaction  event          endcase       END    endcase    if keyword_set nouveaudessin  then letsdraw  event top    return end                    file_comments   A maximum of possibilities with a minimum of clics      categories   widget       param DATAFILENAME        param IDLFILE        param ARGSPRO        keyword SEPARATE   To separate the button part and the drawing part in 2 windows    Useful for small screens  but be careful to do not saturate the    video memory of some antiquated Tx       keyword RESTORE    toto dat  or toto dat is a file created at the time of a precedent    use of xxx thanks to the command  Widget  of the menu  save as        keyword _EXTRA   Used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: xxx pro 150 2006 08 09 10:12:54Z navarro        todo   seb: documenter le reste des keywords                 PRO xxx  datafilename  idlfile  argspro  CALLERWIDID   CallerWidId              REDRAW   redraw  SEPARATE   separate  UVALUE   uvalue              RESTORE   restore  _EXTRA   ex       compile_opt idl2  strictarrsubs    all_cm     reinitialize the  p   x   y   z variables     reinitplt     we get back the uvalue of the widget that called xxx to create a new widget   if keyword_set restore  then BEGIN     restore   isafile filename   restore  iodir   homedir  _extra   ex      if size restore   type  NE 7 then restore   0 ELSE BEGIN        restore  isafile file   restore  iodir   homedir  _extra   ex        newgrid    extractatt uvalue   meshparameters 0        change   changegrid newgrid      ENDELSE    endif   if n_elements CallerWidId  NE 0 THEN        widget_control  CallerWidId  get_uvalue   uvalue ELSE CallerWidId   0       list of files we want to look at     if keyword_set uvalue  then BEGIN      currentfile   extractatt uvalue   currentfile      filelist   extractatt uvalue   filelist      fileparameters   extractatt uvalue   fileparameters      readparameters   extractatt uvalue   readparameters      meshparameters   extractatt uvalue   meshparameters    ENDIF ELSE BEGIN     newfile   selectfile datafilename  idlfile  argspro  _extra   ex      if size newfile   type  NE 8 then return     fileparameters   ptrarr 1   allocate_heap       fileparameters 0    newfile fileparameters     readparameters   ptrarr 1   allocate_heap       readparameters 0    newfile readparameters     meshparameters   ptrarr 1   allocate_heap       meshparameters 0    newfile meshparameters     currentfile   0     filelist   newfile fileparameters filename   ENDELSE     if keyword_set uvalue  THEN BEGIN      smallin   extractatt uvalue   smallin      smallout   extractatt uvalue   smallout    ENDIF ELSE BEGIN      smallin    1  1  1      smallout    1  1  1    ENDELSE    nbredessin   smallin 0 smallin 1    numdessinin   smallin 2 1   warning flg definition must be consistent with cw_pdmenu argument   see also flag definition in cw_pagelayout   if keyword_set uvalue  then BEGIN      flag   extractatt uvalue   optionsflag      key_portrait   flag 0  numdessinin    ENDIF ELSE flag    key_portrait  0  0  0  0 replicate 1  nbredessin         We start the widget definition         widget and screen size   scrsize   get_screen_size 0 95   windsize   givewindowsize    xxxsize    windsize 0     1 keyword_set separate    350  windsize 1        The top base     IF xxxsize 0  LE scrsize 0  AND xxxsize 1  LE scrsize 1  THEN BEGIN      base   widget_base title    xxx  GROUP_LEADER   group   tracking_events                            uname    base  space   0    ENDIF ELSE BEGIN      base   widget_base title    xxx  GROUP_LEADER   group   tracking_events                            uname    base  space   0                            xsize   xxxsize 0  ysize   xxxsize 1                             x_scroll_size    xxxsize 0   selectact    ENDIF ELSE selectfile   0      menu options     xoff   xoff   110   if keyword_set uvalue  then begin     options   extractatt uvalue   options    ENDIF ELSE options    Portrait Landscape   Overlay   Vecteur                               Longitude   x index   Latitude   y index      desc      1 File                 0 Open                   0 New xxx                   2 Quit                 1 Save as                   0 PostScript                   0 Animated gif                   0 Gif                   0 IDL procedure                 0 RESTORE kwd of xxx                 2 Print to prompt                 1 Flag options     descsuite   options    if n_elements descsuite  GE 2 then       descsuite 0:n_elements descsuite 2     0 descsuite 0:n_elements descsuite 2     descsuite n_elements descsuite 1     2 descsuite n_elements descsuite 1     desc    desc  descsuite       menu   cw_pdmenu base  desc   RETURN_NAME  uname    menubar  uvalue    name: menubar                          xoffset   xoff  yoffset   yoff       Ok button     yoff   yoff   37   xoff   5   boutton  OK    baseok   widget_button base  value     OK   uvalue    name: ok  uname    ok button                                frame  xoffset   xoff  yoffset   yoff       Page Layout     page layout   xoff   xoff   65   dummyid   cw_pagelayout base  smallin   row   frame  xoffset   xoff  yoffset   yoff        List of Variables     xoff   xoff   140   currentlistvar    fileparameters currentfile listvar   vlstid   widget_combobox base  value   currentlistvar  uvalue    name: varlist                                 uname    varlist  xoffset   xoff  yoffset   yoff 1    if keyword_set uvalue  then BEGIN     selectvar    extractatt uvalue   varinfo 1  numdessinin      selectvar    where currentlistvar EQ selectvar 0      widget_control  vlstid  set_combobox_select   0   selectvar    ENDIF ELSE selectvar   0     List of files     yoff   yoff   35   flstid   widget_combobox base  value   file_basename filelist  uname    filelist                                 xsize   345  yoffset   yoff  uvalue    name: filelist    if keyword_set uvalue  then BEGIN     selectfile    extractatt uvalue   varinfo 0  numdessinin      selectfile    where file_basename filelist  EQ selectfile 0      widget_control  flstid  set_combobox_select   0   selectfile    ENDIF ELSE selectfile   0     Text for computation     yoff   yoff   32   computation done on the files    if keyword_set uvalue  then txtvalue    extractatt uvalue   txtcmd numdessinin      ELSE txtvalue   varexp   dummyid   widget_text base  value   txtvalue  uvalue    name: txtcmd  uname    txtcmd                               editable  yoffset   yoff  xsize   54   frame      Calendar     yoff   yoff   40   currentcalendar    fileparameters currentfile time_counter   key_caltype    fileparameters currentfile caltype   fakecal    fileparameters currentfile fakecal   if keyword_set uvalue  then begin     dates    extractatt uvalue   dates  numdessinin      date1   date2jul dates 0      date2   date2jul dates 1    ENDIF   basecalid   widget_base base  column   2  space   0  yoffset   yoff  uname    basecal    dummyid   cw_calendar basecalid  currentcalendar  date1  FAKECAL   fakecal  uname    calendar1  uvalue    name: calendar1   frame    dummyid   cw_calendar basecalid  currentcalendar  date2  FAKECAL   fakecal  uname    calendar2  uvalue    name: calendar2   frame      Domain      yoff   yoff   60   vargrid   strupcase fileparameters currentfile listgrid selectvar    IF vargrid EQ  W  then zgrid    W  ELSE zgrid    T    if keyword_set uvalue  then boxzoom    extractatt uvalue   domaines  numdessinin    dummyid   cw_domain base  uname    domain  uvalue    name: domain   unzoom   frame                           boxzoom   boxzoom  yoffset   yoff  xoffset   15      Plots specifications     yoff   yoff   230   speid   cw_specifie base  uname    specifie  uvalue    name: specifie   frame   column                            forxxx  yoffset   yoff    if keyword_set uvalue  then BEGIN     exextra    extractatt uvalue   exextra numdessinin      IF n_elements exextra  NE 0 THEN widget_control  speid  set_value   exextra   ENDIF     drawing part     if keyword_set separate  then        basegraph   widget_base title    xxx window   group_leader   base  uvalue   base      ELSE basegraph   base      graphid   widget_draw basegraph  uname    graph   button_events  retain   2                             uvalue    name: graph  press:0  click:0  x: 0  0  y: 0  0                              xoffset   350 1 keyword_set separate                              xsize   windsize 0  ysize   windsize 1    tooltip    toto      realize the widget     widget_control  base   realize   if keyword_set separate  then begin     widget_control  basegraph   realize     xmanager   xxx  basegraph   no_block   endif      if keyword_set uvalue  then BEGIN     We recopy the pointer uvalue in top_uvalue    Beware  we have to redefine completely top_value from variables    pointed by uvalue  Otherwise  if we simply do top_value   uvalue     when we delete by uvalue and variables on which it point  we    also delete variables on which point top_value      case 1 of       keyword_set redraw :BEGIN         top_uvalue   uvalue         widget_control  base  set_uvalue   top_uvalue   we find homedir         homedir   isadirectory io   homedir  title    Bad definition of homedir    We recuperae the list of instructions         globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program         createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                         KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript                         PORTRAIT   portrait  LANDSCAPE   landscape                          noerase       END       keyword_set restore :begin         top_uvalue   uvalue         widget_control  base  set_uvalue   top_uvalue         widget_control  graphid  get_value   win         wshow  win         wset  win         tv  image   true   widgets s state         updatewidget  base          END       ELSE:BEGIN         top_uvalue   ptrarr 2  29   allocate_heap          FOR i    0  28 do  top_uvalue 0  i     uvalue 0  i          FOR i    0  14 do  top_uvalue 1  i     uvalue 1  i          FOR i   18  27 do  top_uvalue 1  i     uvalue 1  i          numfile   n_elements extractatt uvalue   filelist            top_uvalue 1  15    ptrarr numfile   allocate_heap           top_uvalue 1  16    ptrarr numfile   allocate_heap           top_uvalue 1  17    ptrarr numfile   allocate_heap          for i   0  numfile 1 do begin            top_uvalue 1  15 i     uvalue 1  15 i              top_uvalue 1  16 i     uvalue 1  16 i              top_uvalue 1  17 i     uvalue 1  17 i           endfor          top_uvalue 1  28    ptrarr nbredessin   allocate_heap          for i   0  nbredessin 1 do  top_uvalue 1  28 i     uvalue 1  28 i           widget_control  base  set_uvalue   top_uvalue   Copy the screen of the widget of uvalue in top_value s one         if keyword_set CallerWidId   then begin           widget_control  extractatt uvalue   graphid  get_value   win           wshow  win           wset  win           image   tvrd true            widget_control  graphid  get_value   win           wshow  win           wset  win           tv  image   true         ENDIF       END     endcase      top_uvalue 1  findline top_uvalue   graphid    graphid   ENDIF ELSE BEGIN   Otherwise we will define all elements we will hook at the widget    thanks to the top_value which is a pointer array with 2    columns: names and variables     We initialize all these elements    Variables concerning the widget in its generality      if NOT keyword_set ex   then ex    nothing:0    variables se rapportant aux differents fichiers que l on peut lire   variables specifiques a chaque dessin                creation of the pointer we will hook at the widget      top_uvalue   ptrarr 2  29   allocate_heap    variables refering to the widget      top_uvalue 0  0     options     top_uvalue 1  0    options      top_uvalue 0  1     smallin     top_uvalue 1  1    smallin      top_uvalue 0  2     smallout     top_uvalue 1  2    smallout      top_uvalue 0  3     graphid     top_uvalue 1  3    graphid      top_uvalue 0  4     alreadyvector     top_uvalue 1  4     1      top_uvalue 0  5     alreadyover     top_uvalue 1  5     1      top_uvalue 0  6     alreadyread     top_uvalue 1  6     1      top_uvalue 0  7     currentreadcmd     top_uvalue 1  7           top_uvalue 0  8     globalcommand     top_uvalue 1  8           top_uvalue 0  9     globaloldcommand     top_uvalue 1  9           top_uvalue 0  10     no more used     top_uvalue 1  10    9999      top_uvalue 0  11     noticebase     top_uvalue 1  11    0l      top_uvalue 0  12     extra     top_uvalue 1  12    ex   variables refering to different files we can read      top_uvalue 0  13     currentfile     top_uvalue 1  13    currentfile      top_uvalue 0  14     filelist     top_uvalue 1  14    filelist      top_uvalue 0  15     fileparameters     top_uvalue 1  15    fileparameters      top_uvalue 0  16     readparameters     top_uvalue 1  16    readparameters      top_uvalue 0  17     meshparameters     top_uvalue 1  17    meshparameters   variables refering to different drawing we can do      top_uvalue 0  18     penvs     top_uvalue 1  18    replicate p  nbredessin       top_uvalue 0  19     xenvs     top_uvalue 1  19    replicate x  nbredessin       top_uvalue 0  20     yenvs     top_uvalue 1  20    replicate y  nbredessin       top_uvalue 0  21     nameprocedures     top_uvalue 1  21    strarr nbredessin       top_uvalue 0  22     types     top_uvalue 1  22    strarr nbredessin       top_uvalue 0  23     varinfo     top_uvalue 1  23    strarr 2  nbredessin           top_uvalue 0  24     domaines     top_uvalue 1  24    fltarr 6  nbredessin       top_uvalue 0  25     dates     top_uvalue 1  25    lonarr 2  nbredessin       top_uvalue 0  26     txtcmd     top_uvalue 1  26    strarr nbredessin       top_uvalue 0  27     optionsflag     top_uvalue 1  27    flag      top_uvalue 0  28     exextra     top_uvalue 1  28    ptrarr nbredessin   allocate_heap        widget_control  base  set_uvalue   top_uvalue     createhistory  base  smallin     ENDELSE      xmanager   xxx  base   no_block        return end"); 
    374 a[372] = new Array("./Utilities/createfunc.html", "createfunc.pro", "", "           file_comments   write an IDL function  compile it and execute it    useful to avoid the use of execute      param command  in required     a scalar string defining the result to be given back by the function      see examples       keyword FILENAMEIN  in   default for_createfunc pro    name of the function to be created       keyword KWDLIST  in     a vector string  to specify a list of keywords that must be included in the    function definition     Warning: the string must start with a      for example: KWDLIST     TOTO   toto       keyword _EXTRA    used to pass your keywords to the created function       restrictions     arguments can be given only through keywords      ends the function name with  pro  if needed       examples   IDL  print  createfunc 3 2  filename test    IDL  print  createfunc 3 two  filename    test      IDL                             kwdlist  two   two  two   2       history Sebastien Masson  smasson lodyc jussieu fr                         May 2005      version  Id: createfunc pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION createfunc  command  FILENAMEIN   filenamein                    KWDLIST   kwdlist  _EXTRA   ex     compile_opt idl2  hidden  strictarrsubs     IF n_elements command  NE 1 THEN stop   define filename if needed   if NOT keyword_set filenamein  then filename    for_createfunc pro      ELSE filename   filenamein   get the name of the function  not the name of the file containing the function     shortfilename    file_basename filename   pro    check if the directory exists    dirname   isadirectory file_dirname filename                                title    Redefine  shortfilename pro directory     IF size dirname   type  NE 7 THEN return   1      filename   dirname   shortfilename    pro    create the file    if NOT keyword_set kwdlist  then kwdlist        kwdlist   kwdlist     _EXTRA   ex     IF strmid kwdlist  0  1  NE   THEN kwdlist          kwdlist    putfile  filename   function     shortfilename   kwdlist                             compile_opt idl2  hidden  strictarrsubs                              res       command                             return  res                              end    go in dirname directory    cd  dirname  current   old_dir   compile it    resolve_routine  shortfilename   is_function    cd  old_dir   execute it    res   call_function shortfilename  _EXTRA   ex       return  res end"); 
    375 a[373] = new Array("./Utilities/createpro.html", "createpro.pro", "", "           file_comments   write an idl procedure  compile it and execute it       param command  in required     a string array defining the procedure to be created     each element will be a line of the created procedure       keyword FILENAMEIN  in   default for_createpro pro    name of the procedure to be created       keyword KWDLIST  in     a vector string     to specify a list of keywords that must be included in the procedure    definition     Warning: the string must start with a      for example: KWDLIST     TOTO   toto       keyword KWDUSED    obsolete  please pass directly your keywords through _EXTRA      keyword _EXTRA    used to pass your keywords to the created procedure       restrictions     is not working with functions  use createfunc instead      arguments can be given only through keywords      ends the procedure name with  pro  if needed       examples   IDL  createpro   print OK  filename test    IDL  createpro   if keyword_set ok  then print OK  else print   No      IDL      filename    test  kwdlist   ok   ok    IDL  createpro   if keyword_set ok  then print OK  else print   No      IDL      filename    test  kwdlist     ok   ok   ok      history Sebastien Masson  smasson lodyc jussieu fr    cleaning   new keywords: October 2005   Feb  2006: supress keyword  kwdused  and use call_procedure instead of execute      version  Id: createpro pro 136 2006 07 10 15:20:19Z pinsard           PRO createpro  command  FILENAMEIN   filenamein                    KWDLIST   kwdlist  KWDUSED   kwdused  _EXTRA   ex     compile_opt idl2  hidden  strictarrsubs     IF keyword_set kwdused  THEN BEGIN     dummy   report keyword KWDUSED has been suppressed                           please pass directly your keywords through _extra                           see examples in createpro header      return   ENDIF   define filename if needed   if NOT keyword_set filenamein  then filename    for_createpro pro      ELSE filename   filenamein   get the name of the procedure  not the name of the file containing the procedure     shortfilename    file_basename filename   pro    check if the directory exists    dirname   isadirectory file_dirname filename                                title    Redefine  shortfilename pro directory     IF size dirname   type  NE 7 THEN return      filename   dirname   shortfilename    pro    create the file    if NOT keyword_set kwdlist  then kwdlist        kwdlist   kwdlist     _extra   ex     kwdlist   strtrim kwdlist  2     IF strmid kwdlist  0  1  NE   THEN kwdlist          kwdlist    for i   0  n_elements command 1 do print  command i     putfile  filename   pro     shortfilename   kwdlist                             compile_opt idl2  hidden  strictarrsubs  command   return   end    go in dirname directory    cd  dirname  current   old_dir   compile it    resolve_routine  shortfilename    cd  old_dir   execute it    call_procedure  shortfilename  _extra   ex      return end"); 
    376 a[374] = new Array("./Utilities/def_myuniquetmpdir.html", "def_myuniquetmpdir.pro", "", "     file_comments   if needed  define and create myuniquetmpdir    common variable from cm_general  and add it to  path      categories utilities      examples   IDL  def_myuniquetmpdir      uses cm_general      history Sebastien Masson  smasson lodyc jussieu fr                         June 2005      version  Id: def_myuniquetmpdir pro 128 2006 07 06 14:32:02Z pinsard       PRO def_myuniquetmpdir     compile_opt idl2  strictarrsubs    cm_general    IF n_elements myuniquetmpdir  EQ 0 THEN BEGIN   define a new and unique directory in getenv IDL_TMPDIR  by using systime 1    look for the login if we use  unix  system     IF  d name EQ  X  THEN spawn   whoami  login   noshell ELSE login    idl      myuniquetmpdir   file_search getenv IDL_TMPDIR   mark_directory      myuniquetmpdir   myuniquetmpdir 0    login 0                            strtrim long systime 1  1        create it     file_mkdir  myuniquetmpdir   add it to  path      path    path   :    expand_path myuniquetmpdir    ENDIF      return end"); 
    377 a[375] = new Array("./Utilities/demomode_compatibility.html", "demomode_compatibility.pro", "", "     categories utilities    uses cm_general    version  Id: demomode_compatibility pro 128 2006 07 06 14:32:02Z pinsard     PRO demomode_compatibility     compile_opt idl2  strictarrsubs       cm_general     1  remove all cm_demomode_used pro found in  path   to_rm   find cm_demomode_used    IF to_rm 0  NE  NOT FOUND  THEN file_delete  to_rm     2  copy oldcm_full _empty  to myuniquetmpdir oldcm_used pro    select which file should be copied to oldcm_used pro   IF lmgr demo  EQ 1 THEN BEGIN      democm   find cm_demomode       file_copy  democm  myuniquetmpdir    cm_demomode_used pro   overwrite   ENDIF ELSE BEGIN   create an empty file    close the journal if already open     IF  journal NE 0 THEN journal   open a new one     journal  myuniquetmpdir    cm_demomode_used pro    close it   it will be empty      journal   ENDELSE    return END"); 
    378 a[376] = new Array("./Utilities/find.html", "find.pro", "", "           file_comments   based on file_search  but it is possible to specify   a set of possibles names and a different set of   possibles directories names    By default look for files included in  path     all file_search keywords can be used       categories find a file      param filein  in required     A scalar or array variable of string type  containing   file names to match  Input names specifications may contain   wildcard characters  enabling them to match multiple files    see file_search for more informations  By default and if   necessary  find is looking for filename and also for filename   completed with  pro       keyword FIRSTFOUND    activate this keyword to stop looking for the file as soon as we found one       keyword IODIRECTORY  default path     A scalar or array variable of string type  containing   directories names where we are looking for the file    Different directories can be separated by   path_sep search_path   :  on unix type machine  as it is done   to define  path    Note that if filename s dirname is different from   this   keyword is not taken into account       keyword LOOKALLDIR    activate to look for the file with a recursive search   in iodir  homedir   path   the DATA:TestsData directory if it exists       keyword NOPRO    activate to avoid the automatic search of filename completed with  pro       keyword ONLYPRO    force to look only at file ending with  pro      keyword ONLYNC    force to look only at file ending with  nc      keyword RECURSIVE    performs recursive searching of directory hierarchies    In a recursive search  find looks recursively for any and all   subdirectories in the file hierarchy rooted at the IODIRECTORY argument       keyword REPERTOIRE    obsolete  keep for compatibility  use directory keyword      keyword UNIQUE    activate to make sure that each element of the output vector is unique       keyword _EXTRA    used to pass your keywords      returns    A scalar or array variable of string type  containing the   name  with the full path of the matching files  If no files   exist with names matching the input arguments  find returns   the scalar string :  NOT FOUND       examples     IDL  print  find loadct       usr local rsi idl_6 0 lib utilities xloadct pro      usr local rsi idl_6 0 lib loadct pro   IDL  print  find loadct  iodir dir recursive       usr local rsi idl_6 0 lib loadct pro      usr local rsi idl_6 0 lib utilities xloadct pro   IDL  print  find loadct pro       usr local rsi idl_6 0 lib utilities xloadct pro      usr local rsi idl_6 0 lib loadct pro   IDL  print  find loadct nopro      NOT FOUND   IDL  print  find loadct  iodir    usr local rsi idl_6 0 lib       usr local rsi idl_6 0 lib loadct pro   IDL  print  find loadct  iodir    usr local rsi idl_6 0 lib   test_write      NOT FOUND   IDL  print  find loadct  iodir    usr local rsi idl_6 0 lib   recursive       usr local rsi idl_6 0 lib loadct pro      usr local rsi idl_6 0 lib utilities xloadct pro   IDL  print  find mesh  iodirectory    iodir   path       Users sebastie DATA ORCA2 meshmaskORCA2closea nc      Users sebastie IDL meshmaskclosesea pro      Users sebastie IDL meshmaskclosesea pro       Users sebastie SAXO_RD Obsolete meshlec pro      usr local rsi idl_6 0 lib mesh_obj pro      history Sebastien Masson  smasson lodyc jussieu fr                          28 4 1999                         6 7 1999: compatibility mac and windows   June 2005: Sebastien Masson: cleaning  use for file_  functions      version  Id: find pro 136 2006 07 10 15:20:19Z pinsard           FUNCTION find  filein  IODIRECTORY   iodirectory  RECURSIVE   recursive                    REPERTOIRE   repertoire  NOPRO   nopro  ONLYPRO   onlypro                    ONLYNC   onlync  UNIQUE   unique  FIRSTFOUND   firstfound                    LOOKALLDIR   LOOKALLDIR  _extra   ex   define where we look for the file     compile_opt idl2  strictarrsubs     CASE 1 OF     keyword_set lookalldir :BEGIN  cm_general       dirnames    iodir  homedir   path        tstdtadir  file_dirname find find   onlypro   mark_directory        tstdtadir    file_search tstdtadir DATA TestsData 0        IF tstdtadir NE   THEN dirnames    tstdtadir  dirnames      END     keyword_set iodirectory : dirnames   iodirectory     keyword_set repertoire : dirnames   repertoire     ELSE: dirnames    path   ENDCASE   tmp   dirnames   dirnames    dummy    FOR i   0  n_elements tmp 1 DO       dirnames    dirnames  strsplit tmp i  path_sep search_path   extract    dirnames   dirnames 1:      fileout    dummy    FOR i   0  n_elements filein 1 DO BEGIN     dir   file_dirname filein i      base   file_basename filein i    try to complete the file name with  pro or  nc if needed      CASE 1 OF       keyword_set onlypro :BEGIN         promiss   strpos base   pro   reverse_search          promiss   promiss    strlen base    4          bad   where promiss NE 0 OR strlen base  LE 4  cnt          IF cnt NE 0 THEN base bad    base bad     pro        end       keyword_set onlync :BEGIN         ncmiss   strpos base   nc   reverse_search          ncmiss   ncmiss    strlen base    3          bad   where ncmiss NE 0 OR strlen base  LE 3  cnt          IF cnt NE 0 THEN base bad    base bad     nc        END       ELSE:if strmid base  0  1   reverse_offset  NE             AND NOT keyword_set nopro  THEN base   base    pro      ENDCASE   use dirnames only if dir eq       IF dir EQ    THEN BEGIN       if keyword_set recursive  THEN           found   file_search dirnames  base  _extra   ex            ELSE found   file_search dirnames       base  _extra   ex      ENDIF ELSE found   file_search dir       base  _extra   ex      IF found 0  NE   THEN BEGIN       IF keyword_set firstfound  THEN BEGIN         IF keyword_set unique  THEN return  found uniq found  sort found            ELSE return  found       ENDIF       fileout    fileout  found      ENDIF   ENDFOR   IF n_elements fileout  EQ 1 THEN fileout    NOT FOUND      ELSE fileout   fileout 1:      IF n_elements fileout  GT 1 THEN BEGIN     IF keyword_set unique  THEN fileout   fileout uniq fileout  sort fileout    ENDIF ELSE fileout   fileout 0      RETURN  fileout END"); 
    379 a[377] = new Array("./Utilities/fitintobox.html", "fitintobox.pro", "", "             file_comments    Check that the input array has size and dimensions   compatible with the domain that was defined with the previous call   of domdef       categories domain compatibility       param sz  in required         param nx  in required       param ny  in required       param nz  in required       param jpi  in required       param jpj  in required       param jpk  in required        param jpt  in required       returns  1      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000             June 2005: S  Masson rewrite all       version  Id: fitintobox pro 136 2006 07 10 15:20:19Z pinsard        hidden           FUNCTION err_mess  sz  jpi  nx  jpj  ny  jpk  nz  jpt     compile_opt idl2  strictarrsubs     IF n_elements sz EQ 1  THEN       RETURN  report Error:                          the vector size     tostr sz      is incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple    RETURN  report Error:                          the array dimensions     tostr sz      are incompatible                         with the the domain dimensions                                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END          categories domain compatibility      param field  in required  an array or a structure that can be read by the function                       litchamp pro       param nx  in optional default define by grille pro       param ny  in optional default define by grille pro       param nz  in optional default define by grille pro       param firstx  in optional default define by grille pro       param firsty  in optional default define by grille pro       param firstz  in optional default define by grille pro       param lastx  in optional default define by grille pro       param lasty  in optional default define by grille pro       param lastz  in optional default define by grille pro       keyword WDEPTH    To specify that we are at W level      returns    an array with dimensions matching the domain   or  1 if there is an error       uses cm_4mesh    uses cm_4cal      examples    IDL  help  fitintobox findgen jpi jpj        FLOAT       Array 41  3    IDL  help  fitintobox findgen jpi jpj 78    Error:    the array dimensions  180 148 78  are incompatible   with the the domain dimensions     jpi nx  jpj ny  jpk nz  jpt     180 41  148 3  31 31  1        INT                1      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000             June 2005: S  Masson rewrite all       version  Id: fitintobox pro 136 2006 07 10 15:20:19Z pinsard       FUNCTION fitintobox  field  nx  ny  nz  firstx  firsty                          firstz  lastx  lasty  lastz  WDEPTH   wdepth     include commons     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     arr   litchamp field    IF n_params  EQ 1 THEN grille   1   1   1   1  nx  ny  nz         firstx  firsty  firstz  lastx  lasty  lastz  WDEPTH   wdepth       case according the number of dimensions of the array       sz   size arr    case sz 0  of       0:BEGIN                       scalar         return  report Error: scalar value       strtrim arr  1   simple      END       1:BEGIN                       1D arrays         CASE 1 OF   x arrays         sz 1  EQ jpi                                                   :arr    temporary arr firstx:lastx                                          sz 1  EQ  nx                                                   :                                                         y arrays         sz 1  EQ jpj                                                   :arr    temporary arr               firsty:lasty                            sz 1  EQ  ny                                                   :                                                         z arrays         sz 1  EQ jpk                                                   :arr    temporary arr                             firstz:lastz              sz 1  EQ  nz                                                   :                                                         t arrays         sz 1  EQ jpt                                                   :         ELSE:return  err_mess sz 1  jpi  nx  jpj  ny  jpk  nz  jpt         ENDCASE     END       2:BEGIN                       2D arrays         CASE 1 OF   xy arrays         sz 1  EQ jpi AND sz 2  EQ jpj                                  :arr    temporary arr firstx:lastx  firsty:lasty                            sz 1  EQ jpi AND sz 2  EQ  ny                                  :arr    temporary arr firstx:lastx                                         sz 1  EQ  nx AND sz 2  EQ jpj                                  :arr    temporary arr              firsty:lasty                           sz 1  EQ  nx AND sz 2  EQ  ny                                  :arr    temporary arr                                               x y z arrays         sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ jpk                 :arr    temporary arr firstx:lastx  firstz:lastz              sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ  nz                 :arr    temporary arr firstx:lastx                           sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ jpk                 :arr    temporary arr              firstz:lastz             sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ  nz                 :    x yz arrays         nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ jpk                 :arr    temporary arr               firsty:lasty  firstz:lastz              nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ  nz                 :arr    temporary arr               firsty:lasty                           nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ jpk                 :arr    temporary arr                            firstz:lastz             nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ  nz                 :   xt arrays         sz 1  EQ jpi                                   AND sz 2  EQ jpt:arr    temporary arr firstx:lastx                                         sz 1  EQ  nx                                   AND sz 2  EQ jpt:   yt arrays                          sz 1  EQ jpj                  AND sz 2  EQ jpt:arr    temporary arr               firsty:lasty                                           sz 1  EQ  ny                  AND sz 2  EQ jpt:   zt arrays                                           sz 1  EQ jpk AND sz 2  EQ jpt:arr    temporary arr                             firstz:lastz                                               sz 1  EQ  nz AND sz 2  EQ jpt:         ELSE:return  err_mess sz 1:2  jpi  nx  jpj  ny  jpk  nz  jpt        ENDCASE     END       3:BEGIN                       3D arrays         CASE 1 OF   xyz arrays         sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ jpk                 :arr    temporary arr firstx:lastx  firsty:lasty  firstz:lastz              sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ jpk                 :arr    temporary arr firstx:lastx               firstz:lastz             sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ jpk                 :arr    temporary arr              firsty:lasty  firstz:lastz             sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ jpk                 :arr    temporary arr                           firstz:lastz             sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ  nz                 :arr    temporary arr firstx:lastx  firsty:lasty                            sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ  nz                 :arr    temporary arr firstx:lastx                                        sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ  nz                 :arr    temporary arr              firsty:lasty                           sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ  nz                 :   xyt arrays         sz 1  EQ jpi AND sz 2  EQ jpj                  AND sz 3  EQ jpt:arr    temporary arr firstx:lastx  firsty:lasty                           sz 1  EQ jpi AND sz 2  EQ  ny                  AND sz 3  EQ jpt:arr    temporary arr firstx:lastx                                       sz 1  EQ  nx AND sz 2  EQ jpj                  AND sz 3  EQ jpt:arr    temporary arr              firsty:lasty                          sz 1  EQ  nx AND sz 2  EQ  ny                  AND sz 3  EQ jpt:    x yzt arrays         nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr               firsty:lasty  firstz:lastz             nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ  nz AND sz 3  EQ jpt:arr    temporary arr               firsty:lasty                         nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr                            firstz:lastz            nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ  nz AND sz 3  EQ jpt:   x y zt arrays         sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr firstx:lastx                firstz:lastz             sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ  nz AND sz 3  EQ jpt:arr    temporary arr firstx:lastx                                       sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr                            firstz:lastz            sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ  nz AND sz 3  EQ jpt:         ELSE:return  err_mess sz 1:3  jpi  nx  jpj  ny  jpk  nz  jpt        ENDCASE     END       4:BEGIN                       4D arrays         CASE 1 OF   xyzt arrays         sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr firstx:lastx  firsty:lasty  firstz:lastz             sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr firstx:lastx               firstz:lastz            sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr              firsty:lasty  firstz:lastz            sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr                           firstz:lastz            sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ  nz AND sz 4  EQ jpt:arr    temporary arr firstx:lastx  firsty:lasty                          sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ  nz AND sz 4  EQ jpt:arr    temporary arr firstx:lastx                                      sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ  nz AND sz 4  EQ jpt:arr    temporary arr              firsty:lasty                         sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ  nz AND sz 4  EQ jpt:         ELSE:return  err_mess sz 1:4  jpi  nx  jpj  ny  jpk  nz  jpt        ENDCASE     END     ELSE:return  report Error: fitintobox is managing arrays with a maximum of 4 dimensions   simple    ENDCASE    return  arr end"); 
    380 a[378] = new Array("./Utilities/isadirectory.html", "isadirectory.pro", "", "           file_comments   check if a directory exists and make sure that it ends   with the directory separator mark       categories io      param directoryin  in optional     a proposed directory  If neither dirname   input parameter of IODIRECTORY keyword are defined    the ask the user to choose a directory       keyword IODIRECTORY    a proposed directory      keyword TITLE    the title of the window      keyword _EXTRA    used to pass your keywords      file_comments    all dialog_pickfile keywords  like filter  can be used       returns    the directory name      examples     IDL  print   dir       usr local rsi idl_6 0   IDL  print  isadirectory dir        usr local rsi idl_6 0    IDL  print  isadirectory dir notgood       history Sebastien Masson  smasson lodyc jussieu fr                         June 28  2000   June 2005: Sebastien Masson: cleaning  use for file_  functions      version  Id: isadirectory pro 136 2006 07 10 15:20:19Z pinsard           FUNCTION isadirectory  directoryin  TITLE   title  IODIRECTORY   iodirectory  _extra   ex       compile_opt idl2  strictarrsubs     CASE 1 OF      size directoryin   type 0  EQ 7:directory   directoryin     keyword_set iodirectory :directory   iodirectory     ELSE:directory    directory that is not existing    ENDCASE   testfile   file_test directory   directory    if directory doesn t exist  we ask the user to provide a directory name   IF total testfile  NE n_elements directory  THEN BEGIN     IF NOT keyword_set title  THEN title    choose a directory      FOR i   0  n_elements directory 1 DO BEGIN       IF testfile i  EQ 0 THEN BEGIN         directory i    dialog_pickfile directory  title   title                                             must_exist  _extra   ex          if directory i  EQ   THEN RETURN  report check find directory canceled        ENDIF     ENDFOR   ENDIF     directory   file_search directory   mark_directory    IF n_elements directory  EQ 1 THEN RETURN  directory 0      ELSE RETURN  directory   END"); 
    381 a[379] = new Array("./Utilities/isafile.html", "isafile.pro", "", "           file_comments   same as find pro except that as long as the file is  NOT FOUND    isafile calls dialog_pickfile  to ask the user to select a file       categories io      param filein  in optional     a proposed name  If neither filein input parameter of filename keyword are    defined  the ask the user to choose a file       keyword FILENAME    a proposed filename       keyword IODIRECTORY    a directory where we look for the file  this   keyword is taken into account only if the dirname   of filein or filename is        keyword NEW    to specify that filename is a new file and that we should check only its    path      keyword ONLYPRO    force to look only at file ending with  pro      keyword ONLYNC    force to look only at file ending with  nc      keyword RECURSIVE    performs recursive searching of directory hierarchies    In a recursive search  find looks recursively for any and all   subdirectories in the file hierarchy rooted at the IODIRECTORY argument       keyword _EXTRA    used to pass your keywords      file_comments    all find  file_search and dialog_pickfile keywords  like title  can be used      returns    the filename with its path      examples     IDL  print  isafile Users sebastie SAXO_RD Commons cm_4mesh pro      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir    Users sebastie SAXO_RD Commons      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir    path      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir    Users sebastie SAXO_RD   recursive      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir   getenv HOME   recursive      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile fake_file pro       history Sebastien Masson  smasson lodyc jussieu fr                         11 2 2000   June 2005: Sebastien Masson: cleaning  use for file_  functions      version  Id: isafile pro 136 2006 07 10 15:20:19Z pinsard           FUNCTION isafile  filein  FILENAME   filename  IODIRECTORY   iodirectory                       NEW   new  RECURSIVE   RECURSIVE  ONLYPRO   onlypro                       ONLYNC   onlync  _extra   ex       compile_opt idl2  strictarrsubs     CASE 1 OF      size filein   type 0  EQ 7:fileout   filein     keyword_set filename :fileout   filename 0      ELSE:fileout    file that is not existing    ENDCASE   if size fileout   type  NE 7 THEN return   1     CASE 1 OF     keyword_set onlypro : filter    pro      keyword_set onlync : filter    nc      else: filter       ENDCASE     basename   file_basename fileout    dirname   file_dirname fileout    should we redefine dirname    if keyword_set iodirectory  AND dirname EQ   then dirname   iodirectory     if keyword_set new  then return  dirname   path_sep    basename     fileout   find basename  iodirectory   dirname                      recursive   recursive   unique   firstfound  ONLYPRO   onlypro                      ONLYNC   onlync  _extra   ex    WHILE fileout 0  EQ  NOT FOUND  DO BEGIN     fileout   dialog_pickfile path   dirname 0  filter   filter  _extra   ex      if fileout EQ   THEN RETURN  report check find file canceled    check again everything      basename   file_basename fileout      dirname   file_dirname fileout    check if the name of the dirname is ok     dirname   isadirectory dirname  title    choose a directory for the file                                  basename    if we cancel the check     IF size dirname   type  NE 7 THEN return  report check find file canceled      fileout   find basename  iodirectory   dirname                        recursive   recursive   unique   firstfound  ONLYPRO   onlypro                        ONLYNC   onlync  _extra   ex    ENDWHILE     RETURN  fileout END"); 
    382 a[380] = new Array("./Utilities/linearequation.html", "linearequation.pro", "", "             file_comments    Calculate a linear equation of the type ax by c 0   thanks to coordinates of 2 points    comment: we can have a table with pairs of points       categories utilities       param point1  in required     This is the first point of the  straight line s  whose we want to calculate    equation s       param point2  in required     This is the second point of the  straight line s  whose we want to calculate   equation s      There is 2 possibilities:        1  point is a complex or a table of complex  where each element is the coordinates of the point         2  point is a table of real of dimension 2 number_of_straight_line            For each row of the table  we have coordinates of the point       returns    abc is a table of dimension 3  number_of_straight_line     where for each line of the table we obtain the 3 parameters   a  b and c of the linear equation ax by c 0      examples    IDL  abc linearequation complex 1 2 3 4    IDL  print  abc 0 1 abc 1 2 abc 2    0 00000      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000      version  Id: linearequation pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION linearequation  point1  point2     compile_opt idl2  strictarrsubs       if size point1   type  EQ 6 OR size point1   type  EQ 9 then begin       x1   float point1        y1   imaginary point1     ENDIF ELSE BEGIN       x1   float reform point1 0          y1   float reform point1 1       ENDELSE     if size point2   type  EQ 6 OR size point2   type  EQ 9 then begin       x2   float point2        y2   imaginary point2     ENDIF ELSE BEGIN       x2   float reform point2 0          y2   float reform point2 1       ENDELSE     vertical   where x1 EQ x2     novertical   where x1 NE x2     abc   fltarr 3  n_elements x1       IF novertical 0  NE  1 then BEGIN   y mx p       nele   n_elements novertical         m    y2 novertical y1 novertical x2 novertical x1 novertical        p    x2 novertical y1 novertical y2 novertical x1 novertical x2 novertical x1 novertical        abc  novertical     reform m  1  nele  replicate 1  1  nele  reform p  1  nele     ENDIF    IF vertical 0  NE  1 then BEGIN   x ny p       nele   n_elements vertical         n    x2 vertical x1 vertical y2 vertical y1 vertical        p    y2 vertical x1 vertical x2 vertical y1 vertical y2 vertical y1 vertical        abc  vertical     replicate 1  1  nele  reform n  1  nele  reform p  1  nele     ENDIF     return  abc end"); 
    383 a[381] = new Array("./Utilities/lineintersection.html", "lineintersection.pro", "", "             file_comments    Calculate coordinates of the intersection between 2 straight lines    or of a succession of 2 straight lines       categories utilities       param abc1  in required     is the first table of dimension 3  number_of_pairs_of_straight_lines     whose each line contain the 3 parameters a b and c of the first linear    equation of the type ax by c 0      param abc2  in required     is second table of dimension 3  number_of_pairs_of_straight_lines     whose each line contain the 3 parameters a b and c of the second linear    equation of the type ax by c 0      keyword FLOAT    To return the output as a table of real numbers instead of vectors of    complex  by default       returns    2 possibilities:        1  by default: it is a vector of complex whose each element is the coordinates                        of the intersection point of a pair of straight lines         2  if FLOAT is activated  it is a table of reals of dimension 2             number_of_pairs_of_straight_lines whose each row is the coordinates            of the intersection point of a pair of straight line       restrictions    If the 2 straight line are parallel  we return coordinates     values f_nan values f_nan       restrictions    Beware of the precision of the machine which make    that calculated coordinates may not exactly verify    equations of the pair of straight lines       examples    IDL  abc1 linearequation complex 1 2 3 4    IDL  abc2 linearequation complex 1 2 8 15    IDL  print  lineintersection abc1  abc2           1 00000       2 00000    IDL  print  lineintersection abc1  abc2 float    1 00000      2 00000      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000      version  Id: lineintersection pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION lineintersection  abc1  abc2  FLOAT   float       compile_opt idl2  strictarrsubs      a1   float reform abc1 0       b1   float reform abc1 1       c1   float reform abc1 2       a2   float reform abc2 0       b2   float reform abc2 1       c2   float reform abc2 2         determinant   a1 b2 a2 b1    nan   where determinant EQ 0     if nan 0  NE  1 THEN determinant    values f_nan      x    b1 c2 c1 b2 determinant    y    c1 a2 a1 c2 determinant      if keyword_set float  then begin       npts   n_elements x         res    reform x  1  npts   over  reform y  1  npts   over     ENDIF ELSE res   complex x  y     return  res end"); 
    384 a[382] = new Array("./Utilities/protype.html", "protype.pro", "", "           file_comments   test is a  pro  file corresponds to an IDL procedure  function or batch file       categories utilities      param file  in     A scalar of string type  the name of the  pro  file to be tested   if necessary  the input name is completed with  pro    and its path found in  path      returns    A scalar of string type:  proc   func  or  batch       examples     IDL  print  protype protype         func   IDL  print  protype protype pro         func   IDL  print  protype init         batch   IDL  print  protype plt         proc      history Sebastien Masson  smasson lodyc jussieu fr                          Feb 2006      version  Id: protype pro 136 2006 07 10 15:20:19Z pinsard           FUNCTION protype  file       compile_opt idl2  strictarrsubs     filepro    find file 0   onlypro   firstfound 0    if filepro EQ  NOT FOUND  then return   1   name   file_basename filepro   pro      allines   getfile filepro    CASE 1 OF   this is a procedure     max stregex allines     pro     name   fold_case   boolean :RETURN   proc    this is a function     max stregex allines     function     name   fold_case   boolean :RETURN   func    this is an IDL batch file     ELSE:RETURN   batch    ENDCASE     RETURN   1 END"); 
    385 a[383] = new Array("./Utilities/pwd.html", "pwd.pro", "", "             file_comments    print the current directory      categories like unix function       history Sebastien Masson  smasson lodyc jussieu fr       version  Id: pwd pro 136 2006 07 10 15:20:19Z pinsard             PRO pwd     compile_opt idl2  strictarrsubs      cd  current   pwd    print  pwd    return end"); 
    386 a[384] = new Array("./Utilities/report.html", "report.pro", "", "             file_comments    Like dialog_message pro if there is already some widget    active or like message pro if there is not any widget active     To ask a question whose answer is not yes no use xquestion       param text  in required     one string or one vector of string  Si le string ne   comporte qu un element  on cherche les eventuels characteres de   retour a la ligne:  C  If text is set to an array of strings  each   array element is displayed as a separate line of text       keyword SIMPLE    activate to print only the message without the name   and the line of the routine  defined by calling routine_name       keyword _extra    used to pass keywords from dialog_message pro and message pro      keyword PARENT    same as DIALOG_PARENT de dialog_message pro      keyword QUESTION  default Warning    Set this keyword to create a  Question  dialog       keyword DEFAULT_NO  default Yes    Set this keyword to make the  No  button the default selection for     Question  dialog        keyword SIMPLE    Activate to print the error message without printing  the routine name with    its full path       returns     1 if the keyword QUESTION is not activated   If the keyword is activated  return 1 for yes and 0 for no        examples    If there is not any widget activated:     IDL  help  report toto tata       MAIN : toto tata       INT                1   IDL  help  report does it works  question    does it works   y n  default answer is y        BYTE           1   IDL  help  report question1:  C does it works  question    question1:   does it works   y n  default answer is y        BYTE           1     If widgets are already activated  it is the same thing but with widgets       history Sebastien Masson  smasson lodyc jussieu fr                         21 10 1999      version  Id: report pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION report  text  DEFAULT_NO   default_no  PARENT   parent  QUESTION   question  SIMPLE   simple  _extra   ex     compile_opt idl2  strictarrsubs     res    1                          we separate the text in different lines  separated by  C  if it is not already done     if n_elements text  EQ 1 then text   str_sep text   C   trim    there is some widgets activated  it is easy  we call dialog_massage    if  widget_info managed 0  NE 0 then BEGIN       res   dialog_message text  dialog_parent   parent  QUESTION   question                                title   routine_name 1  DEFAULT_NO   default_no  _extra   ex        if keyword_set question  THEN res   res EQ  Yes  ELSE res    1    ENDIF ELSE BEGIN   there is not any widget activated   do we ask a question         if keyword_set question  then BEGIN   what i sthe answer by default            if keyword_set default_no  then answer    n  ELSE answer    y           default_answer   answer          if n_elements text  GT 1 THEN             for i   0  n_elements text 2 do print text i            read  text n_elements text 1  y n  default answer is  default_answer    answer          answer   strlowcase answer      if the answer is not appropriated          while answer NE   and answer NE  y  and answer NE  n  do begin             read  text n_elements text 1  y n  default answer is  default_answer    answer             answer   strlowcase answer           ENDWHILE                   we adjust res in function of th answer          case answer of              :res   default_answer EQ  y               y :res   1              n :res   0          endcase       endif ELSE BEGIN   If we do not ask any question  we just make a print         IF keyword_set simple  THEN prefix     ELSE prefix      routine_name 1 :            if n_elements text  GT 1 THEN             for i   0  n_elements text 2 do print  prefix text i            print  prefix text n_elements text 1        ENDELSE    ENDELSE     return   res end"); 
    387 a[385] = new Array("./Utilities/routine_name.html", "routine_name.pro", "", "             file_comments   Give us the name of the routine  procedure or function  where we are       categories utilities      param pilingnum  in optional    A whole number which give us how many level we have to reascend   in the piling up of routines and subroutines to find the looked for routine         returns   a string giving either the full name of the routine  with the path  or    MAIN       restrictions   This function use the keyword OUTPUT in help pro and it is specified   in the online help that the return syntax of this word can change in   function of the version of the code  This version works with IDL 5 2       examples   IDL  print  routine_name      usr1 com smasson IDL_RD UTILITAIRE report pro    IDL  print  routine_name 1      usr1 com smasson IDL_RD PLOTS DIVERS determineminmax pro    IDL  print  routine_name 2      usr1 com smasson IDL_RD PLOTS DESSINE plt pro    IDL  print  routine_name 3      MAIN     IDL  print  routine_name 4      MAIN       history Sebastien Masson  smasson lodyc jussieu fr                         21 10 1999      version  Id: routine_name pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION routine_name   pilingnum       compile_opt idl2  strictarrsubs     help    traceback  output   name   name   strtrim name  1          we remove blanks at the beginning of lines and                                 we put elements of the vector stuck ones with                                 each others to make an unique string    allnames       for i   0  n_elements name 1 do allnames   allnames name i      name   str_sep allnames      we cut it out again    name   strtrim name  2        we remouve blanks in front of and behind   name   strcompress name         we compress blanks   we do not hold back the two first elements who are a blanck  and the line concerning   routine_name    name   name 2: n_elements name 1    we choose the line which concern us    if NOT keyword_set pilingnum  then pilingnum   0   if pilingnum GE n_elements name  then return    MAIN    name   name pilingnum    if strpos name   MAIN  NE  1 then return    MAIN    name   str_sep name        if n_elements name  LT 3  then name   name 0  ELSE name    L name 1   name 2      return  name end"); 
    388 a[386] = new Array("./Utilities/testvar.html", "testvar.pro", "", "             file_comments    A kind of keyword_set but when the value exist  it send it back      categories utlities      keyword var    any kind of      returns    0 if the variable does not exist       examples    IDL  print  testvar var toto    0   IDL  print  testvar var toto    toto      history Sebastien Masson  smasson lodyc jussieu fr                         14 12 1999      version  Id: testvar pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION testvar  var   var     compile_opt idl2  strictarrsubs      if keyword_set var  then return  var ELSE return   0 end"); 
    389 a[387] = new Array("./Utilities/text_box.html", "text_box.pro", "", "       file_comments    This procedure writes a short text message within a box shaped   area in a graphics window   The message may be split at word   boundaries into several lines  and the character size and   orientation may be adjusted for the text to fit within the box          param TEXT  in required     ASCII text string containing the message       keyword pos     4 element vector specifying the box position and size   pos 0 pos 1  specify the lower left corner coordinate   pos 2 pos 3  specify the upper right corner coordinate   data window normalized coordinates are use      keyword fg_color   color of box and legend titles  default 0       keyword bg_color    background color  Setting BG_COLOR erases the area                  covered by the text box  filling it with color BG_COLOR                  prior to writing the text   If both BG_COLOR and  p color                 are zero then the background color is reset to 255 to                 gaurantee a readability                      keyword right    if set  right justify text      keyword center    if set  center the text      keyword vert_space  default 1 5    vertical spacing of lines in units of character height      keyword _EXTRA    used to pass your keyword      keyword box    activate to show the box on graphics window       history  Paul Ricchiazzi                            7Jul93             Institute for Computational Earth System Science             University of California  Santa Barbara      version  Id: text_box pro 136 2006 07 10 15:20:19Z pinsard       PRO text_box text pos pos fg_color fg_color bg_color bg_color                 center center right right box box vert_space vert_space  _EXTRA   ex       compile_opt idl2  strictarrsubs           ON_ERROR  2      Check the number of parameters    justify 1 if keyword_set right  ne 0 then justify 1 if keyword_set center  ne 0 then justify 0 if keyword_set vert_space  eq 0 then vert_space  1 5 IF n_elements text  eq 0 then message   must specify text  nnx x window d x_vsize nny y window d y_vsize nnx 0  1 d x_vsize nny 0  1 d y_vsize   if n_elements pos  eq 0 then begin    box_cursor xx1 yy1 nx ny   xx2 xx1 nx   yy2 yy1 ny   pos xx1 nnx 0 nnx 1 nnx 0 yy1 nny 0 nny 1 nny 0          xx2 nnx 0 nnx 1 nnx 0 yy2 nny 0 nny 1 nny 0    posstring string form a 4 f5 2 a              pos pos 0 pos 1 pos 2 pos 3    print strcompress posstring remove_all       endif else begin      xx1   nnx 0 pos 0 nnx 1 nnx 0    xx2   nnx 0 pos 2 nnx 1 nnx 0    yy1   nny 0 pos 1 nny 1 nnx 0    yy2   nny 0 pos 3 nny 1 nnx 0   endelse      calculate the height and width of the box in characters      width     xx2   xx1     d x_ch_size   height    yy2   yy1     d y_ch_size      decompose the message into words      words   str_sep text      print f 20a words   nwords n_elements words    wordlen lenstr words d x_vsize   blanklen lenstr   d x_vsize   maxcharsize xx2 xx1 4 blanklen max wordlen    charsize 1     lpnt intarr nwords    nomore 0   ntries 0   repeat begin     ntries ntries 1     if ntries gt 20 then message Can not fit message into box      ychsiz vert_space d y_ch_size charsize     wlen wordlen charsize     blen blanklen charsize     n_lines fix yy2 yy1 ychsiz 1     sum 0     ilines 0     print f 8a8 charsz i ilines n_lines lpnt wlen sum xwdth      for i 0 nwords 1 do begin       sum sum wlen i blen       if sum 3 blen gt xx2 xx1 then begin         ilines ilines 1         sum wlen i blen       endif       lpnt i ilines                       print f f8 2 4i8 3f8 2 charsize i ilines n_lines lpnt i                    wlen i blen sum 3 blen xx2 xx1     endfor             case 1 of       ilines 1 lt n_lines: if charsize 1 1 gt maxcharsize then             vert_space yy2 yy1 n_lines 1 d y_ch_size charsize              else charsize charsize 1 1       ilines 1 eq n_lines: nomore 1       ilines 1 gt n_lines: charsize charsize 9     endcase endrep until nomore   lines strarr n_lines  maxlen 0  for i 0 n_lines 1 do begin   ii where lpnt eq i nc    maxlen total wlen ii nc blen maxlen   lines i string f 200a words ii      print i words ii    print i lines i  endfor      align 5 1 justify       case justify of      1:xx   xx1 5 xx2 xx1 maxlen       0:xx   0 5 xx1   xx2       1:xx   xx2 5 xx2 xx1 maxlen    endcase    dy d y_ch_size charsize vert_space   yy yy2 0 5 dy    xbox xx1 xx2 xx2 xx1 xx1    ybox yy1 yy1 yy2 yy2 yy1    if n_elements bg_color  ne 0 then begin     if  p color eq 0 and bg_color eq 0 then bgc 255 else bgc bg_color     polyfill xbox ybox color bgc device   endif    if n_elements fg_color  eq 0 then color   0 else color fg_color    for i_line   0 n_lines 1 do begin     yy   yy dy     print xx yy lines i_line charsize     xyouts  xx  yy  lines i_line   device  charsize charsize          alignment align  color color  font 1  _extra   ex   endfor   if keyword_set box  then plots xbox ybox color color device   return end "); 
    390 a[388] = new Array("./Utilities/undefine.html", "undefine.pro", "", "             file_comments    erase a variable   same thing that delvar but usable in a program and usable    for one variable simultaneously      categories utilities         param varname  in required     The name of the variable we want erase      examples   IDL  a 1   IDL  undefine a     Compiled module: UNDEFINE    IDL  help  a   A               UNDEFINED         history trouve sur la page web de D Fanning    http: www dfanning com :  QUESTION: How do I make an IDL variable have a type  undefined    ANSWER: At the main IDL level you can use the IDL procedure DELVAR to  delete an IDL variable and make it undefined  Inside of procedures  and functions  I use this little program named UNDEFINE that I got  from Andrew Cool at the DSTO High Frequency Radar Division in  Adelaide  Australia       version  Id: undefine pro 136 2006 07 10 15:20:19Z pinsard                PRO UNDEFINE  varname       compile_opt idl2  strictarrsubs      tempvar   SIZE TEMPORARY varname     END "); 
    391 a[389] = new Array("./Utilities/xfile.html", "xfile.pro", "", "             file_comments    display in a widget an ASCII file    It is the same thing that xdisplayfile but here  we use it    to display the content of a procedure or of a function     even if it is not in the current directory  thanks to the path       categories utilities      param filename  in required     It is the name of the procedure or of the function    we want to display  with or without  pro at the end       keyword _extra    used to pass your keywords      examples xfile plt       history Sebastien Masson  smasson lodyc jussieu fr                          7 1 99                         6 7 1999: compatibility mac and windows      version  Id: xfile pro 136 2006 07 10 15:20:19Z pinsard             PRO xfile  filename  _extra   ex     compile_opt idl2  strictarrsubs   pfile   strlowcase filename      we have to find the full name        if strpos pfile pro  lt 0 then pfile pfile pro      thisOS   strupcase strmid version os_family  0  3     CASE thisOS of        MAC :BEGIN   sep    :    pathsep       end        WIN :BEGIN   sep       pathsep       end       ELSE: BEGIN   sep       pathsep    :    end    ENDCASE    cd  current   current    if strpos pfile sep  lt 0 then BEGIN       if rstrpos current sep  NE strlen current 1 then current   current sep       multipath   str_sep path pathsep        if rstrpos multipath 0 sep  NE strlen multipath 0 1 then multipath   multipath  sep       pfile    current  multipath  pfile    ENDIF    i   0    repeat begin       res   findfile pfile i         i   i 1    endrep until res 0  NE   OR i EQ n_elements pfile      if res 0  NE    then BEGIN   we open the file in a widget    xdisplayfile  pfile i 1  _extra   ex    ENDIF ELSE ras   report le fichier demande n existe pas         return end"); 
    392 a[390] = new Array("./Utilities/xhelp.html", "xhelp.pro", "", "       file_comments    Display an IDL procedure header using widgets and the widget manager       categories Widgets       param Filename  in required     A scalar string that contains the filename of the file to display      If FILENAME does not include a complete path specification  xhelp will    search for the file in the current working directory and then each of the   directories listed in  PATH environment variable   The    pro  file suffix will be appended if it is not supplied       keyword _extra    used to pass your keywords      restrictions    Triggers the XMANAGER if it is not already in use       examples    Open a file and create a widget to display its contents       history Written By Steve Richards  December 1990  Graceful error recovery  DMS  Feb  1992          Modified to extract  pro documentation headers  PJR ESRG mar94         Paul Ricchiazzi                            jun93         Institute for Computational Earth System Science         University of California  Santa Barbara    7 1 99 : legeres mofification par Sebastien Masson : utilisation de    xdisplayfile  de findfile et de _extra     6 7 1999: compatibility mac and windows      version  Id: xhelp pro 141 2006 07 21 09:17:25Z theetten       PRO xhelp  filename  _extra ex     compile_opt idl2  strictarrsubs      Are we sure filename is a string     cquoidonc   size filename   type     if cquoidonc NE 7 then begin       ras   report Input parameter must be a string and not a  size filename   tname        return    endif   We have to find the full name     pfile FILENAME    if strpos pfile pro  lt 0 then pfile pfile pro      thisOS   strupcase strmid version os_family  0  3     CASE thisOS of        MAC :BEGIN   sep    :    pathsep       end        WIN :BEGIN   sep       pathsep       end       ELSE: BEGIN   sep       pathsep    :    end    ENDCASE    cd  current   current    if strpos pfile sep  lt 0 then BEGIN       if rstrpos current sep  NE strlen current 1 then current   current sep       multipath   str_sep path pathsep        if rstrpos multipath 0 sep  NE strlen multipath 0 1 then multipath   multipath  sep       pfile    current  multipath  pfile    ENDIF   We test each possible name to find where the file is     nfile n_elements pfile     n   0    repeat begin       res   findfile pfile n         n   n 1    endrep until res 0  NE   OR n EQ n_elements pfile      if res 0  NE   then BEGIN       openr  unit pfile n 1   get_lun   opening of the file   we select the heading piece            a   strarr 1000            Maximum   of lines       xsize 0       i   0       c           readon 0       while not eof unit  do begin          readf unit c          if strpos c  eq 0 then readon 0          if readon then BEGIN             dum where byte c  eq 9b ntab    count tab characters             xsize xsize    strlen c 8 ntab              a i    strmid c 1 200              i   i   1          endif          if strpos c  eq 0 then readon 1       endwhile       if i EQ 0 then            ras   report le programme a etait mal ecrit  il n y a pas d en tete  utiliser xfile pro  ELSE BEGIN           a   a 0:i 1    we wrote the a s content in a widget          xdisplayfile toto text   a title pfile n 1  _extra   ex       ENDELSE        FREE_LUN  unit          free the file unit     ENDIF ELSE ras   report le fichier demande n existe pas      return end "); 
    393 a[391] = new Array("./buildinit.html", "buildinit.pro", "", "    NAME:         PURPOSE:         CATEGORY:         CALLING SEQUENCE:         INPUTS:         OPTIONAL INPUTS:         KEYWORD PARAMETERS:         OUTPUTS:         OPTIONAL OUTPUTS:         COMMON BLOCKS:         SIDE EFFECTS:         RESTRICTIONS:         PROCEDURE:         EXAMPLE:         MODIFICATION HISTORY:               slightly mofified version of cw_field  FUNCTION CW_FIELD2  Parent  COLUMN Column  ROW Row        EVENT_FUNC   efun        FLOATING Float  INTEGER Int  LONG Long  STRING String        FONT LabelFont  FRAME Frame  TITLE Title  UVALUE UValue  VALUE TextValueIn        RETURN_EVENTS ReturnEvents  ALL_EVENTS AllUpdates        FIELDFONT FieldFont  NOEDIT NoEdit  TEXT_FRAME Text_Frame        XSIZE XSize  YSIZE YSize  UNAME uname     FLOOR vmin  CEILING vmax      compile_opt idl2  strictarrsubs     resolve_routine   cw_field   compile_full_file   is_function         Examine our keyword list and set default values         for keywords that are not explicitly set       Column        KEYWORD_SET Column      Row           1   Column     AllEvents         1   KEYWORD_SET NoEdit         Enum Update   None  All  CRonly       Update        0     IF KEYWORD_SET AllUpdates  THEN Update    1     IF KEYWORD_SET ReturnEvents  THEN Update      2      IF N_ELEMENTS efun  LE 0 THEN efun         IF N_ELEMENTS Title  EQ 0 THEN Title Input Field:      TextValue    N_ELEMENTS TextValueIn  gt 0    TextValueIn :         Convert non string values to strings      if  SIZE TextValue   TNAME  ne  STRING  then           TextValue   STRTRIM TextValue 2      IF N_ELEMENTS YSize  EQ 0 THEN YSize 1     IF N_ELEMENTS uname  EQ 0 THEN uname CW_FIELD_UNAME       Type      0   string is default     IF KEYWORD_SET Float  THEN  Type      1     IF KEYWORD_SET Int  THEN    Type      2     IF KEYWORD_SET Long  THEN   Type      3          Don t allow multiline non string widgets     if  Type ne 0  then           YSize 1     YSize   YSize   1          Build Widget      Base      WIDGET_BASE Parent  ROW Row  COLUMN Column  UVALUE UValue                EVENT_FUNC CW_FIELD_EVENT                PRO_SET_VALUE CW_FIELD_SET                FUNC_GET_VALUE CW_FIELD_GET                FRAME Frame  UNAME uname       FOR i   0  n_elements title 1 DO         Label     WIDGET_LABEL Base  VALUE   Title i  FONT   LabelFont                                 UNAME   uname _LABEL   align_left      Text      WIDGET_TEXT Base  VALUE   TextValue                XSIZE XSize  YSIZE YSize  FONT FieldFont                ALL_EVENTS AllEvents                EDITABLE AllEvents AND TYPE EQ 0                FRAME Text_Frame                 UNAME uname _TEXT                 NO_ECHO AllEvents AND  TYPE NE 0         Save our internal state in the first child widget     State                 efun: efun                TextId:Text               Title:Title               Update:Update             Type:Type                   WIDGET_CONTROL  WIDGET_INFO Base   CHILD  SET_UVALUE State   NO_COPY     RETURN  Base   END         PRO printerdef_event  event   get back the ids of the cw_field widgets     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   cwids   IF size cwids   n_dimensions  EQ 1 THEN cwids   reform cwids  3  1  help  cwids   dims   size cwids   dimensions  help   dims print   dims   results   strarr dims    FOR i   0  dims 1 1 DO BEGIN     widget_control  cwids 0  i  get_value   res   results 0  i    res     widget_control  cwids 1  i  get_value   res   results 1  i    res     widget_control  cwids 2  i  get_value   res   results 2  i    res   ENDFOR   nothing   where results EQ   count    IF count NE 0 THEN BEGIN     nothing   dialog_message Some of the text box are still empty  dialog_parent   event top   information      return   ENDIF   now we give the result to buildinit pro by using the pointer uvalue    widget_control  event top  get_uvalue   ptresult     ptresult   temporary results    we destroy the widget    widget_control  event top   destroy   RETURN END         PRO papsize_event  event   get back the ids of the cw_field widgets     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uvalue   IF uvalue 0  NE  ok  THEN return   idist   widget_info event top  find_by_uname    list    id   widget_info idist   list_select    widget_control  idist  get_uvalue   selected   selected   selected id    selected   strsplit selected   extract    now we give the result to buildinit pro by using the pointer uvalue    widget_control  event top  get_uvalue   ptresult     ptresult    float selected 3  float selected 4    we destroy the widget    widget_control  event top   destroy   RETURN END         PRO xask_event  event   now we give the answer to buildinit pro by using the pointer uvalue     compile_opt idl2  strictarrsubs      widget_control  event top  get_uvalue   ptranswer     ptranswer   event value   we destroy the widget    widget_control  event top   destroy   RETURN END         FUNCTION xask  _extra   ex     compile_opt idl2  strictarrsubs     base   widget_base     field   cw_field2 base   frame   return_events   column  _extra   ex     ptranswer   ptr_new allocate_heap    we realize the widget and wait for an answer   widget_control  base   realize  set_uvalue   ptranswer   xmanager   xask  base   we get the answer   answer    ptranswer   we freeing the pointer   ptr_free  ptranswer   RETURN  answer END         FUNCTION getdir  title   title  nomark   nomark  nowrite   nowrite     compile_opt idl2  strictarrsubs        REPEAT BEGIN     dir   dialog_pickfile directory   must_exist  title   title    make sure dir is ok  check read write access and directory separator mark     dir   file_search dir   test_directory   test_read                           test_write   1   keyword_set nowrite                            mark_directory   1   keyword_set nomark      dir   dir 0    ENDREP UNTIL dir NE      RETURN  dir END         PRO buildinit       compile_opt idl2  strictarrsubs     IF fix strmid version release  0  1  LT 6 THEN BEGIN      print                                print                        ERROR       print                                print   This version of SAXO needs at least IDL version 6 0      print                                print                        ERROR       print                                return   ENDIF   IF lmgr demo  EQ 1 THEN BEGIN     print   impossible to use buildinit in demo mode      return   ENDIF     init                     This is the initialisation file                  it defines the  path and the defaut values of some of the common variables                                  this is supposed to speed up IDL                                  a   fltarr 1000 1000 100                  a   0                                  path definition                      define  myIDL  directory   myIDL   getdir title    Select the home directory  my IDL   nomark    define  SAXO  directory   saxodir   getdir title    Select SAXO directory   nomark   nowrite    define the  path   init    init   path   expand_path     myIDL                            :    expand_path     saxodir                            :    expand_path     dir      should we keep the compatibility with the old version      yes   dialog_message shall we keep the compatibility                               with the old version    question   default_no    yes   strlowcase yes       init    init                                 compatibility with the old version                                 keep_compatibility      strtrim fix yes EQ  yes  2       define all the commons     init    init                                 define all the commons                                 all_cm      define default directories     init    init                                 define default directories                                 homedir   isadirectory myIDL  title    Select the default HOME directory    iodir   getdir title    Select the default IO directory    init    init                iodir   isadirectory iodir  title    Select the default IO directory    psdir   getdir title    Select the default postscripts directory    init    init                psdir   isadirectory psdir  title    Select the default postscripts directory    imagedir   getdir title    Select the default images directory    init    init                imagedir   isadirectory imagedir  title    Select the default images directory    animdir   getdir title    Select the default animations directory    init    init                animdir   isadirectory animdir  title    Select the default animations directory      number of printer     ptnumb   xask title    Number of accessible printers  value   0   long      define all the printer parameters      init    init                                 define printer parameters                        IF ptnumb NE 0 THEN BEGIN     base   widget_base column   frame       cwids   lonarr 3  ptnumb      FOR i   0  ptnumb 1 DO BEGIN       subbase   widget_base base   row        cwids 0  i    cw_field subbase   string                                  Title    printer_human_names strtrim i  2             cwids 1  i    cw_field subbase   string                                  Title    printer_machine_names strtrim i  2             cwids 2  i    cw_field subbase   string  value    lpr  P                                   Title    print_command strtrim i  2           ENDFOR     trash   widget_button base  value    ok  uvalue   cwids      ptresult   ptr_new allocate_heap    we realize the widget and wait for an answer     widget_control  base   realize  set_uvalue   ptresult     xmanager   printerdef  base       init    init                  printer_human_names   strarr strtrim ptnumb  2                   printer_machine_names   strarr strtrim ptnumb  2                   print_command   strarr strtrim ptnumb  2      FOR i   0  ptnumb 1 DO BEGIN       init    init                    printer_human_names strtrim i  2                         ptresult 0  i                     printer_machine_names strtrim i  2                         ptresult 1  i                     print_command strtrim i  2                         ptresult 2  i      ENDFOR   we freeing the pointer     ptr_free  ptresult   ENDIF ELSE BEGIN     init    init                  printer_human_names                      printer_machine_names                      print_command       ENDELSE      Colors     init    init                                 colors                                  device  decomposed   0                 device  retain   2      default color tables     loadct  get_names   names    ntables   40   title                                                                      Choose the default color table                                                                        the following lines come from loadct procedure    nlines    ntables   2    3  of lines to print   nend   nlines    nlines 3    ntables    for i   0  nend 1 do           Print each line     title    title                  string format    i2   a17  3x  i2   a17  3x  i2   a17                            i  names i  i nlines  names i nlines                            i 2 nlines  xask title   title  value   39   long   xask title   title  value   0   long    2   init    init                archive_ps    strtrim archive_ps  2                                                  end of the part that should be modified by the users                                                  if needed  keep compatibility with the old version                                 updateold                       filename   xask title    name of the init file   written in homedir:     myIDL     value    init pro   string    journal  myIDL       filename   FOR i   0  n_elements init 1 DO journal  init i    journal    RETURN END"); 
     254a[252] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltt.html", "pltt.pro", "", "         file_comments    Trace hovmoller graphs: xt yt zt t      categories Graphics      param TAB  in required     The field whose we want to make the hovmoller map can be 2 kind of thing:  1  An array which can be:              3d or 4d: array   xt yt zt t  The last component is the time  In this case  the array will               pass in grossemoyenne to be averaged and become an 1d or 2d array               2d: If the array is already 2d  it is not modified  beware  lands must               be masked at the value valmask  and nevertheless type must be specified               to we know of which trace it is about               To have a correct caption  respecify the  xctraction zone via BOXZOOM               1d: only for traces of the  t  type  Nevertheless  type must be specified               to we know of which trace it is about               To have a correct caption  respecify the  xctraction zone via BOXZOOM          2  a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contained in the structure             respecting criterions of case 1         PARAM:          MAX: valeur maximum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le max de tableau  sur les pts mer     MIN: valeur minimum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le min de tableau  sur les pts   mer            DATMIN: c est la borne inf de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd            DATMAX: c est la borne max de l axe temporel  c est un         longinteger de la forme yyyymmdd  ou bien yymmdd       keyword BOXZOOM   Vector indicating the geographique zone  3d  on which the extraction of the field must    be done to do the hovmoeller     If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  vert1  vert2    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 vert1 vert2 are global variables defined at the last domdef       keyword CONTINTERVALLE    When CONTOUR is activated  it is the value between 2 isolines    traced by a trait  So it can be different from the one specified by INTERVALLE which     in this case  does not control colored isolines in color anymore  If there is noone    specified min  we choose a contour min which goes well with the specified interval     If this keyword is not specified  we trace 20 isolines from the min to the max        keyword CONTLABEL    It is an integer n  When CONTOUR is actvated  if n   is different of 0  choose the label type corresponding to n cases for    the traced by a traitisolines  To specify the type of label of the    colored contour  use LABEL      keyword CONTMAX    When CONTOUR is activated  max value we want to consider in the isoline    traced by a trait s line  By default  we take the max  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTMIN    When CONTOUR is activated  min value we want to consider in the isoline    traced by a trait s line  By default  we take the min  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of pltt       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        keyword EXCHANGE_XY   Allows to invert axes        keyword FILTER   Apply a slippery average of width FILTER       keyword INTERVALLE    Value of an internal between to isoline  If there is none specified min     we choose a min contour which goes well with the specified interval  If this keyword is not    specified  we trace 20 isoline from the min to the max  Comment: When CONTOUR is activated     INTERVALLE only specify the interval between 2 colored isoline  To specify the interval    between 2 isolines traced by a trait  use CONTINTERVALLE       keyword INV    Invert the color vector used to color the graph                   without use the black  the white and the used palette        keyword LABEL    It is an integer n  If n different of 0  it choose the label s type    corresponding to cases n  cf label pro   Comment: When CONTOUR is activated  it only specify the label s type for colored isolines     For tese one traced by a trait  use CONTLABEL        keyword COL1d    OBSOLETE Color number when we make a trace 1d by default  0 It is better to use the    keyword COLOR used by plot       keyword MAXIN    to specify the max value we want to plot with a keyword instead of with the   input parameter max  If max is defined by both  parameter and keyword  the   keyword is retained       keyword MININ    to specify the min value we want to plot with a keyword instead of with the   input parameter min  If min is defined by both  parameter and keyword  the   keyword is retained       keyword NLEVEL    Number of contour to draw by default  20  active if   LABEL 0 or is not specified       keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword OV1D    Allows to overprint a 1d curve over a precedent 1d drawing       keyword OVERPLOT    To make a plot over an other one     Comment: Contrarily to the use of CONTOUR or VECTEUR  the use of this keyword    does not the caption and or the color bar       keyword STRICTFILL    Activate this keyword to that the filling of contours be    precisely done between the min and the max specified letting values inferior at the    specified min and values superior at the specified max in white       keyword STYLE    Contour s style to adopt to draw isolines by default  style 0  see style pro       keyword STY1D     OBSOLETE    Number of the style used when we make a 1d drawing  We should better use the    keyword LINESTYLE which is tho one of the plot  Beware  this keyword is still    useful if we want to d bars instead of curves  put sty1d bar       keyword TREND_TYPE   Modify field by calling trends pro      keyword TYPEIN   allows to specify the type of hovmoller we want to do                xt yt zt t      with help of a keyword rather than the argument type  If the argument andthe    keyword are specified in the same time  it is the value specified by the    keyword which is retained       uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr   27 5 98                         Jerome Vialard  adapting plt to hovmoller drawing                          2 7 98                         Sebastien Masson 14 8 98  continents barres                          15 1 98   Adaptation for arrays 3 and 4d to the average be done in pltt rather than during the reading                          Sebastien Masson 14 8 98                          7 1999                          Eric Guilyardi 29 7 99 FILTER  TREND_TYPE                          REPEAT_C                          Sebastien Masson 08 02 2000 checkfield and                         usetri keyword        version     Id: pltt pro 152 2006 08 10 07:01:35Z smasson        todo seb: L 24   36  L 426   427  L  492   493         pro pltt tab giventype givenmin givenmax datmin datmax BOXZOOM   boxzoom  CONTOUR contour             ENDPOINTS endpoints INTERVALLE intervalle INV inv              CONTINTERVALLE contintervalle LABEL label CONTLABEL contlabel             STYLE style  CONTMAX contmax             CONTMIN contmin NLEVEL nlevel CONTNLEVEL contnlevel             COL1D col1d STY1D sty1d  MININ   minin  MAXIN   maxin             OV1D ov1d  FILTER   filter  TREND_TYPE   trend_type             REPEAT_C   repeat_c  TYPEIN   typein  XT   XT  YT   YT  ZT   zt              TT   tt  STRICTFILL   strictfill  OVERPLOT   overplot              EXCHANGE_XY   exchange_xy              _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF        tempsun   systime 1            For key_performance     I2  reinitialization   p x y    Comment: we do not reinitializate when we call back plt in loop to use contour       if n_elements contour  ne 4 AND NOT keyword_set overplot        AND NOT keyword_set ov1d  then reinitplt     I1  Reading of the field       if  keyword_set boxzoom  OR keyword_set endpoints         AND n_elements contour  ne 4 THEN BEGIN      savedbox   1b      saveboxparam   boxparam4pltt dat     ENDIF    if n_elements giventype  NE 0 then type   giventype    if n_elements givenmin  NE 0 then min   givenmin    if n_elements givenmax  NE 0 then max   givenmax    if n_elements minin  NE 0 then min   minin    if n_elements maxin  NE 0 then max   maxin    if keyword_set typein  then BEGIN        if size type   type  NE 7 AND size type   type  NE 0 then begin          if n_elements min  NE 0 then max   min          min   type       endif       type   typein     ENDIF      checktypeminmax   pltt  TYPE   type  MIN   min  MAX   max          XT   XT  YT   YT  ZT   zt  TT   tt  ENDPOINTS   endpoints  _extra   ex      if keyword_set endpoints  then begin       section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type             BOXZOOM   boxzoom  DIREC   direc       nx   n_elements glam         ny   nx       if strupcase vargrid  EQ  W  then begin          z   gdepw firstzw:lastzw           nz   nzw       ENDIF ELSE BEGIN          z   gdept firstzt:lastzt           nz   nzt       ENDELSE    ENDIF ELSE BEGIN        z2d   checkfield tab   pltt  TYPE   type  BOXZOOM   boxzoom                            direc   direc  _extra   ex        if z2d 0  EQ  1 then BEGIN          IF keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat          return       endif       grille  mask  glam  gphi  gdep  nx  ny nz    ENDELSE     Calculation of trend anomaly following TREND_TYPE       IF NOT keyword_set trend_type  THEN trend_type   0     IF trend_type GT 0 THEN z2d   trends z2d  trend_type  type       Filtering of fields in the  t  case         IF type EQ  t  AND keyword_set filter  THEN BEGIN        print       Applying a running mean filter of width  string filter  format    I3        z2d   smooth z2d  filter        z2d 0:filter 2 1    0        z2d size z2d 1 filter 2 1: size z2d 1 1    0     ENDIF       Repetition of the temporal series       IF NOT keyword_set repeat_c  THEN repeat_c   1     temps   time 0:jpt 1     IF repeat_c GT 1 THEN BEGIN       taille size z2d        CASE taille 0  OF          1: z2d   reform z2d replicate 1  repeat_c  taille 1 repeat_c           2: BEGIN             z2d   z2d replicate 1  repeat_c              z2d   reform z2d  taille 1  taille 2 repeat_c   over           END           ELSE:        ENDCASE       temps    temps   lindgen jpt REPEAT_c 1 1 temps 1 temps 0 temps jpt 1     ENDIF       Selection of graphic s type        taille size z2d     case taille 0  of       2 : typdes 2d        1 : begin          z1d z2d          typdes 1d           if keyword_set OV1D  then begin             yy   z2d             if n_elements datmin  NE 0 then tempsmin   date2jul datmin                ELSE tempsmin   temps 0    on shift l axe du temps pour des questions de precision sur les   dates du calendier julien en long qui sont passes en float ds les axes             xx   temps tempsmin              x range x range tempsmin              x tickv x tickv tempsmin   We do a false plot to apply these changes              plot 0   0 noerase xstyle 5  ystyle   5  title     subtitle     ytitle     xtitle                 goto  trace1d          endif       end   endcase   We build the mask  For that  the table must be masked  automaticaly done at the    value valmask if we pass in moyenne or grossemoyenne     nan   total finite z2d nan   z2d  not very nice when xgridstyle 2    same if xticklen 0 5  not very nice in the middle    so we draw   the top  right  axis by hand using axis          if n_elements ex  NE 0 then BEGIN    pour avoir un cadre de la couleur noire         if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0       ENDIF         plot   0   0   nodata   noerase  _extra   ex             xstyle   1 4 keyword_set endpoints  AND type EQ  xt  AND lat1 NE lat2 8 type EQ  yt  OR type EQ  zt              ystyle   1 4 keyword_set endpoints  AND type EQ  yt 8 type EQ  xt    call axis for the missing axis        IF type EQ  xt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  YTICKNAME 0  NE  1 then             ex YTICKNAME   replicate    n_elements ex YTICKNAME          axis  yaxis   1  ystyle   1  yticklen   0               ytickname   replicate     y ticks 1  _extra   ex       ENDIF       IF  type EQ  yt  OR type EQ  zt  AND NOT keyword_set endpoints  THEN BEGIN         if n_elements ex  NE 0 then              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 then             ex XTICKNAME   replicate    n_elements ex XTICKNAME         axis  xaxis   1  xstyle   1  xticklen   0             xtickname   replicate     x ticks 1  _extra   ex       ENDIF   ajout d un axe ds le cas ou l on utilise endpoints       if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     color bar         colnumb   colnumb 0:ncontour 1 keyword_set strictfill        barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                         position   posbar  _extra   ex      endif     1d   trace1d:    if  typdes eq  1d  then begin       if  not keyword_set col1d  then col1d   0       if keyword_set sty1d  then BEGIN  if we want to make bars          IF strlowcase strtrim sty1d  EQ  bar  then begin              y range    y range 0 y range 1 y range 0 05 y range 1               bar_plot  yy  background    d n_colors 1   not very nice when xgridstyle 2  same if   xticklen 0 5  not very nice in the middle       so we draw the top axis by hand using axis           if n_elements ex  NE 0 then BEGIN    To have a black frame             if  where tag_names ex  EQ  COLOR 0  NE  1 then ex COLOR   0          ENDIF          plot   0   0   nodata   noerase                xstyle   1 8 1 keyword_set exchange_xy                 ystyle   1 8 keyword_set exchange_xy  _extra   ex   call axis for the missing axis           if n_elements ex  NE 0 then BEGIN    force tickname to blank array             if  where tag_names ex  EQ  YTICKNAME 0  NE  1 AND keyword_set exchange_xy  then ex YTICKNAME   replicate    n_elements ex YTICKNAME              if  where tag_names ex  EQ  XTICKNAME 0  NE  1 AND NOT keyword_set exchange_xy  then ex XTICKNAME   replicate    n_elements ex XTICKNAME           ENDIF          if keyword_set exchange_xy  then  axis  yaxis   1  ystyle   1                yticklen   0  ytickname   replicate     y ticks 1  _extra   ex            ELSE axis  xaxis   1  xstyle   1  xticklen   0                xtickname   replicate     x ticks 1  _extra   ex        ENDIF ELSE oplot  xx  yy  color   col1d  linestyle   sty1d  thick   2  _extra   ex    endif fini:     we reput time axis in IDL julian days and not in julian days count from tempsmin       if type EQ  xt  then BEGIN         y range y range tempsmin         y tickv y tickv tempsmin    ENDIF ELSE BEGIN         x range x range tempsmin        x tickv x tickv tempsmin    ENDELSE   We do a false plot to these values are considerated    plot   0   0   nodata   noerase  xstyle   5  ystyle   5          title     subtitle     ytitle     xtitle           3rd part: possible print        terminedessin  _extra   ex    if keyword_set savedbox  THEN restoreboxparam   boxparam4pltt dat       if n_elements key_performance  NE 0 then       IF key_performance EQ 1 THEN print   temps pltt  systime 1 tempsun           return end  "); 
     255a[253] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltv.html", "pltv.pro", "", "       file_comments   Draw 2d plots with TV procedure      categories find a file   graphic      param DATA  in required     The field we want to display can be:      1  an array  If the array is not a 2D array  its mean along         the z and t direction will be automatically performed          as it is done in plt       2  a structure respecting all criterions specified by         litchamp pro  cf  IDL  xhelp litchamp       param MIN  in optional default min of DATA  on non masked points        param MAX  in optional default max of DATA  on non masked points        keyword BOTTOM  default 0    The lowest color index of the colors to be used      keyword BOXZOOM    Vector indicating the geographic zone on which we want to cut the map      If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2  lat1  lat2 are global variables defined at the last domdef       keyword C_NAN  default d n_colors  1 e6  the test to find the masked value is ge   abs mask 10  This is necessary to avoid the rounding errors      keyword NCOLORS  default d n_colors  tvplus  dist 100       history   Aug 2006: Sebastien Masson  smasson lodyc jussieu fr       version    Id         PRO pltv  data  min  max  BOTTOM   bottom  BOXZOOM   boxzoom               C_MASK   c_mask  C_NAN   c_nan  MININ   minin  MAXIN   maxin               MASKVAL   maskval  NCOLORS   ncolors  NOINTERP   nointerp               _EXTRA   ex     compile_opt idl2  strictarrsubs      cm_general   for key_performance     tempsun   systime 1             for key_performance       I2  Reading of the field and checkup      IF n_elements minin  NE 0 THEN min   minin    IF n_elements maxin  NE 0 THEN max   maxin   IF size data   type  NE 8 THEN z2d   reform float data  ELSE z2d   data   IF size z2d   n_dimensions  NE 2 then BEGIN     if keyword_set boxzoom  then BEGIN       savedbox   1b       saveboxparam   boxparam4pltv dat      ENDIF     z2d   checkfield temporary z2d   plt  TYPE    xy  direc   direc  BOXZOOM   boxzoom       if z2d 0  EQ  1 then BEGIN        IF keyword_set savedbox  THEN restoreboxparam   boxparam4pltv dat        return     ENDIF   ENDIF   dtasize   size z2d   dimensions      def of ncolmax  bottom  topcol et ncolors     ncolmax    d n_colors  c_nan  c_mask    ncolmax   1  ELSE cmask    ncolmax  1      z2d maskind    cmask   ENDIF    z2d   round temporary z2d     use byte type to save memory   z2d   byte temporary z2d            if NOT keyword_set overplot  then reinitplt   z   invert   placedessin   plt  posplot  posbar  _extra   ex     3  Drawing       xsize    p position 2     p position 0     ysize    p position 3     p position 1     IF  d name EQ  X  THEN BEGIN       xsize   ceil xsize    d x_size       ysize   ceil ysize    d y_size       z2d   congrid z2d  xsize  ysize     ENDIF        tv  z2d   p position 0   p position 1             xsize   xsize  ysize   ysize             normal  _EXTRA   ex       caption   display of these       axe   pltv  dtasize  _EXTRA   ex    legende  truemin  truemax   plt  DIREC   direc                 INTERVALLE   float max min topcol bottom                  _extra   ex    plot   0   0   noerase   nodata  xstyle   1  ystyle   1     IF keyword_set masked  THEN tracemask  msk  indgen dtasize 0  indgen dtasize 1      color bar      barrecouleur  0  min   max  10  bottom   bottom  position   posbar  ncolors    topcol bottom 1  _extra   ex   4  End of drawing     terminedessin  _extra ex      if keyword_set savedbox  THEN restoreboxparam   boxparam4pltv dat    if keyword_set key_performance  NE 0 THEN print   time pltv  systime 1 tempsun       return end"); 
     256a[254] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltz.html", "pltz.pro", "", "             file_comments    Trace vertical graphs       categories    Graphics      param TAB    The field whose we want to make a vertical cut can be 2 kind of thing:           1  An 2d or 3d array             If the field is 2d  indicate  with the keyword BOXZOOM  geographic delineations of the boxzoom             If the field is 3d  we extract the section on we average possibly before to do the plot            2   a structure respecting all criterions specified by litchamp pro              See IDL  xhelp litchamp  The array contin in the structure must be 2 or 3d  See case 1      ces arguments ne sont pas obligatoires:      MAX: valeur maximum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le max de tab1  sur les pts mer     MIN: valeur minimum que l on veut prendre en compte dans le trace   des contours  Par defaut on prend le min de tab1  sur les pts mer       keyword BOXZOOM    Vector indicating the geographic zone on which we want to cut the map      If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword CONTINTERVALLE    When CONTOUR is activated  it is the value between 2 isolines    traced by a trait  So it can be different from the one specified by INTERVALLE which     in this case  does not control colored isolines in color anymore  If there is noone    specified min  we choose a contour min which goes well with the specified interval     If this keyword is not specified  we trace 20 isolines from the min to the max        keyword CONTLABEL    It is an integer n  When CONTOUR is actvated  if n   is different of 0  choose the label type corresponding to n cases for    the traced by a traitisolines  To specify the type of label of the    colored contour  use LABEL      keyword CONTMAX    When CONTOUR is activated  max value we want to consider in the isoline    traced by a trait s line  By default  we take the max  on ocean points  of the array    passed in the keyword CONTOUR       keyword CONTMIN    When CONTOUR is activated  min value we want to consider in the isoline    traced by a trait s line  By default  we take the min  on ocean points  of the array    passed in the keyword CONTOUR        keyword CONTNLEVEL    When  CONTOUR is activated  it is the numbre of contours   traced by a trait for drawing  active if   CONTLABEL 0  by default 20       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        keyword INTERVALLE    Value of an internal between to isoline  If there is none specified min     we choose a min contour which goes well with the specified interval  If this keyword is not    specified  we trace 20 isoline from the min to the max  Comment: When CONTOUR is activated     INTERVALLE only specify the interval between 2 colored isoline  To specify the interval    between 2 isolines traced by a trait  use CONTINTERVALLE       keyword INV    Invert the color vector used to color the graph                   without use the black  the white and the used palette       keyword ZRATIO   When the drawing has a zoomed part  it is the size rapport between the zoomed part     hz  zoom height  and the whole drawing  ht  total height  By default  2 3      keyword LABEL    It is an integer n  If n different of 0  it choose the label s type    corresponding to cases n  cf label pro   Comment: When CONTOUR is activated  it only specify the label s type for colored isolines     For tese one traced by a trait  use CONTLABEL        keyword MAXIN    to specify the max value we want to plot with a keyword instead of with the   input parameter max  If max is defined by both  parameter and keyword  the   keyword is retained       keyword MININ    to specify the min value we want to plot with a keyword instead of with the   input parameter min  If min is defined by both  parameter and keyword  the   keyword is retained       keyword NLEVEL    Number of contour to draw by default  20  active if   LABEL 0 or is not specified        keyword NOTRI    To force not to use the triangulation  Beware  in this case  the    drawing only works if the grid is undeformed  It means that each point of a longitude    give one latitude and each point of a latitude give one longitude  exept if we use    the keyword CELL_FILL 2     Comment: if the field contain points  values f_nan  then we even do a triangulation       keyword OVERPLOT    To make a plot over an other one     Comment: Contrarily to the use of CONTOUR or VECTEUR  the use of this keyword    does not the caption and or the color bar       keyword SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       keyword STRICTFILL    Activate this keyword to that the filling of contours be    precisely done between the min and the max specified letting values inferior at the    specified min and values superior at the specified max in white       keyword STYLE    Contour s style to adopt to draw isolines by default  style 0  see style pro       keyword WDEPTH    To specify that the field is at W depth instead of T    depth  automatically activated if vargrid eq  W       keyword XZ   Force to make a cut following xz      keyword YZ   Force to make a cut following yz      keyword ZOOM    Depth where i can make our maximum zoom  By default 200m or max depth if it is inferior at 200m      uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr    7 1999   Sebastien Masson 08 02 2000 checkfield and   notri keyword       version    Id: pltz pro 152 2006 08 10 07:01:35Z smasson        todo seb L 20   26  L 215   221           pro pltz  tab  giventype  givenmin  givenmax  BOXZOOM   boxzoom  CONTOUR   contour               ENDPOINTS   endpoints  INTERVALLE   intervalle  INV   inv  ZRATIO   zratio               CONTINTERVALLE   contintervalle  LABEL   label  CONTLABEL   contlabel               STYLE   style  CONTMAX   contmax  SIN   sin  TYPEIN   typein               CONTMIN   contmin  NLEVEL   nlevel  CONTNLEVEL   contnlevel               NOTRI   notri  USETRI   usetri  FILLXDIR   fillxdir               ZOOM   zoom  XZ   xz  YZ   yz  MININ   minin  MAXIN   maxin               STRICTFILL   strictfill  OVERPLOT   overplot  MASKFILL   maskfill               WDEPTH   wdepth  REALSECTION   realsection               _EXTRA   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     tempsun   systime 1             For key_performance       1st part: initialization small calculations      Comment: we do not reinitializate when we call back plt in loop to use contour    if n_elements contour  ne 4 AND NOT keyword_set overplot  then reinitplt     if n_elements contour  ne 4 THEN saveboxparam   boxparam4pltz dat       Reading of the field      if n_elements giventype  NE 0 then type   giventype   if n_elements givenmin  NE 0 then min   givenmin   if n_elements givenmax  NE 0 then max   givenmax   if n_elements minin  NE 0 then min   minin   if n_elements maxin  NE 0 then max   maxin   if n_elements realsection  EQ 0 then realsection   1   IF n_elements usetri  EQ 0 THEN BEGIN     IF n_elements notri  NE 0 THEN usetri   2 notri ELSE usetri   1   ENDIF   no need of triangulation   IF usetri EQ 1 AND keyword_set realsection  THEN usetri   0   did we specify the type     if keyword_set typein  then BEGIN      if size type   type  NE 7 AND size type   type  NE 0 then begin       if n_elements min  NE 0 then max   min       min   type     endif     type   typein   ENDIF      checktypeminmax   pltz  TYPE   type  MIN   min  MAX   max         XZ   xz  YZ   yz  ENDPOINTS   endpoints  _extra   ex     if keyword_set endpoints  then begin     section  tab  z2d  glam  gphi  ENDPOINTS   endpoints  TYPE   type          BOXZOOM   boxzoom  DIREC   direc  WDEPTH   wdepth  _extra   ex     if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     nx   n_elements glam       ny   nx     if strupcase vargrid  EQ  W  then begin       gdep   gdepw firstzw:lastzw        nz   nzw     ENDIF ELSE BEGIN       gdep   gdept firstzt:lastzt        nz   nzt     ENDELSE     mask   z2d LE valmask 10    ENDIF ELSE BEGIN     z2d   checkfield tab   pltz  TYPE   type  BOXZOOM   boxzoom                          DIREC   direc  WDEPTH   wdepth  _extra   ex      if z2d 0  EQ  1 AND n_elements contour  ne 4 then BEGIN        restoreboxparam   boxparam4pltz dat        return     ENDIF     IF realsection EQ 1 THEN grille  mask  glam  gphi  gdep  nx  ny  nz  ifpltz   type  WDEPTH   wdepth       ELSE grille  mask  glam  gphi  gdep  nx  ny  nz  WDEPTH   wdepth   ENDELSE   stop     profmax    y range 0    profmin    y range 1    if not keyword_set zoom  then zoom   200   zoom   zoom 0    IF zoom LT profmin THEN zoom   profmax   if zoom GE vert2 then zoom   profmax   construction of the mask and of the axis   axis4pltz  type  mask  glam  gphi  gdep  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   to draw from bottom to top  avoid using cell_fill    z2d   reverse z2d  2      Determination of the mi:min and of the ma:max of z2d in the same way    as max: max and min: min for the drawing      nan   total finite z2d   nan   z2d    max   if n_elements maskfill  NE 0 then BEGIN     z2d   z2d mask masknan     if maskfill NE 0 then z2d   temporary z2d    maskfill 1b mask masknan    ENDIF     check the mask and the triangulation according to the grid type and    nan values  find the coordinates of the mask        if  where mask EQ 0 0  EQ  1 AND NOT keyword_set nan  then notri   1     if keyword_set notri  then trifield    1       ELSE trifield   triangule mask basic    if  usetri GE 1 AND  vargrid EQ  T  OR vargrid EQ  W        OR  usetri EQ 2 AND  vargrid NE  T  AND vargrid NE  W  THEN       trifield   triangule mask   basic      IF NOT keyword_set endpoints   THEN BEGIN     if keyword_set nan  then trinan   triangule masknan   basic  coinmonte   coinmontenan  coindescend   coindescendnan      decoupeterre  mask  glammsk  gphimsk  gdepmsk  type   type  WDEPTH   wdepth  REALSECTION   realsection     axis4pltz  type  mask  glammsk  gphimsk  gdepmsk  XXAXIS   xmask  ZZAXIS   zmask  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex   ENDIF ELSE BEGIN     xmask   xxaxis     zmask   zzaxis   ENDELSE      if  usetri GE 1 AND  vargrid NE  T  AND vargrid NE  W  THEN BEGIN      IF keyword_set realsection  THEN trimsk   triangule mask   basic        ELSE trimsk   triangule mask   basic  coinmonte   coinmontemask                                 coindescend   coindescendmask    ENDIF          dessin en lui meme     pltbase  z2d  xxaxis  zzaxis  mask  xmask  zmask         level_z2d  colnumb  overplot   overplot         contour   contour  trichamp   trifield  trimsk   trimsk          c_linestyle   linestyle         c_labels   1 indgen n_elements level_z2d  MOD 2          c_thick   thick  unsur2   unsur2         masknan   masknan  trinan   trinan         coinmontenan   coinmontenan  coindescendnan   coindescendnan         coinmontemask   coinmontemask  coindescendmask   coindescendmask         REALSECTION   realsection  USETRI   usetri  _extra   ex     recall of pltz in loop when contour is activated     if n_elements contour  eq 4 then BEGIN   It is the second time I pass in pltt     contour    mietma: mi  ma  unit:varunit  inter:intervalle    I send back the min  the max and the unity     return   endif   if keyword_set contour  THEN BEGIN      pourlegende    1  1  1  1      oldattributs   saveatt      oldcolnumb   colnumb     pltz  contour  contmin  contmax  CONTOUR   pourlegende  ZRATIO   zratio           INTERVALLE   contintervalle  LABEL   contlabel  STYLE   style   noerase            NLEVEL   contnlevel  ZOOM   zoom  BOXZOOM   boxzoom  ENDPOINTS   endpoints           STRICTFILL   strictfill  REALSECTION   realsection  MASKFILL   maskfill           USETRI   usetri  WDEPTH   wdepth  _extra   ex     restoreatt  oldattributs     colnumb   oldcolnumb   ENDIF       3rd part: drawing of the frame  caption  colorbar      if keyword_set overplot  then BEGIN       y range     zoom  profmin    We get back on physic coordinates     plot   0   0   nodata   noerase  title     subtitle     xstyle   5  ystyle   5     GOTO  fini   endif     Caption   dysplay of them     legende  mi  ma  type  CONTOUR   pourlegende  INTERVALLE   intervalle  DIREC   direc  endpoints   endpoints  _EXTRA   ex   if type eq  yz  then xaxe    lataxe  else xaxe    lonaxe    if keyword_set sin  OR NOT key_onearth then xaxe       Frame applied by default   plot   xxaxis 0  xxaxis n_elements xxaxis 1   zratio   zratio   noerase         xstyle   1 4 keyword_set endpoints  AND  type EQ  xz  AND lat1 NE lat2  OR  type EQ  yz  AND lon1 NE lon2          xtickformat   xaxe  _extra   ex   Add of an axis in the case of we use endpoints   if keyword_set endpoints  then addaxe  endpoints  type  posfenetre  _EXTRA   ex     Y axis in 1 or 2 part     if n_elements ex  NE 0 then BEGIN    To do not put title anymore     if  where tag_names ex  EQ  TITLE 0  NE  1 then ex TITLE         To do not put subtitle anymore     if  where tag_names ex  EQ  SUBTITLE 0  NE  1 then ex SUBTITLE         To have just one ytitle     if  where tag_names ex  EQ  YTITLE 0  NE  1 then BEGIN        ytitle   ex YTITLE       ex YTITLE           endif   ENDIF   htotal   posfenetre 3 posfenetre 1    hzoom   1 zratio htotal   if zoom LT profmax then       plot   0   0   nodata   noerase  ystyle   1  yrange    profmax  zoom 0 001          position   posfenetre 0  0  0   hzoom  _extra   ex  title     subtitle     ytitle          y range     zoom  profmin      We get back in physic coordinates    plot   0   0   nodata   noerase  ystyle   1  _extra   ex         title     subtitle     ytitle     position   posfenetre 0  htotal hzoom  0  0      to write the ytitle      if  d name EQ  PS  then       xs    max page_size  min   mi 1 key_portrait    mi key_portrait d x_px_cm     ELSE xs    d x_size   if n_elements ytitle  NE 0 then  y title   ytitle   charsize   chkstru ex   ycharsize   extract    if charsize EQ  1 then charsize    p charsize   IF chkstru ex   charsize  THEN ex charsize   charsize   if chkstru ex   ytitle   extract  NE   then       decalage   string format    e10 3  profmax    decalage   float strmid decalage  strpos decalage   e 1    posy   posfenetre 1 1 htotal 2   posx   posfenetre 0 decalage 3 d x_ch_size charsize xs   xyouts  posx  posy   y title   normal  orientation   90  color   0  ALIGNMENT    5  charsize   charsize  _extra   ex      colorbar     colnumb   colnumb 0:ncontour 1 keyword_set strictfill    barrecouleur  colnumb  min   max   ncontour keyword_set strictfill 2                     position   posbar  _extra   ex       4th part: possible print     fini:   terminedessin  _extra   ex         sortie:   restoreboxparam   boxparam4pltz dat      if keyword_set key_performance  NE 0 THEN print   temps pltz  systime 1 tempsun    return end   "); 
     257a[255] = new Array("./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html", "sbar_plot.pro", "", "             file_comments    Same thing that bar_plot but compatible with the whole environnement  common pro inclued       categories graphics     INPUTS: cd IDL bar_plot      keyword COLORS    A vector  the same size as VALUES  containing the color index   to be used for each bar   If not specified  the colors are   selected based on spacing the color indices as widely as   possible within the available colors  specified by D N_COLORS       keyword COLORS    Is an integer giving color of all colorbars   contrarily to colors    which is a vector giving the color of each colorbar       keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt      keyword _EXTRA   used to pass your keyword      uses   common pro      restrictions    If NOREINITPLT is not activated  all environnement    variables  p   x   y   z are reinitializtedby the procedure reinitplt      examples        IDL  sbar_plot  indgen 10 small    2 2 2 rempli        IDL  sbar_plot  indgen 10 small    2 2 3 noerase        IDL   ps      history   Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999      version    Id: sbar_plot pro 142 2006 07 21 12:47:49Z navarro              PRO sbar_plot  Values  COLORS   colors  NOREINITPLT   noreinitplt  _extra   ex      compile_opt idl2  strictarrsubs    common   1  I reinitialize the graphic environment  variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  I place the drawing on the screen like on the postscript     IF chkstru ex   overplot EQ 0 THEN placedessin   autre  _extra   ex   3  Drawing     if n_elements COLORS  NE 0 then BEGIN       if n_elements COLORS  EQ n_elements Values  then col   colors          ELSE col   replicate colors 0  n_elements Values     ENDIF ELSE col   congrid indgen d n_colors   256  n_elements Values       bar_plot  Values  background    p background  colors   col                  xstyle   1  ystyle   1  _extra   ex   4  End of drawing     terminedessin  _extra ex      return end"); 
     258a[256] = new Array("./ToBeReviewed/PLOTS/DESSINE/scontour.html", "scontour.pro", "", "             File_comments   Same thing that contour but compatible with the whole environnement  common pro inclued       categories graphics     INPUTS:cd IDL contour      keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt       keyword _EXTRA   used to pass your keywords      uses   common pro      examples        IDL  z   dist 100          IDL  scontour  z  nlevels 10 small 1 2 1 xstyle 1 ystyle 1        IDL   ps      history Sebastien Masson  smasson lodyc jussieu fr                         10 10 1999       version    Id: scontour pro 142 2006 07 21 12:47:49Z navarro             PRO scontour  x  y  z  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  I reinitializate the graphic environment  variables  x   y et  p :    if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  i put the drawing on the screen like on the postcript    if ex contains norease and c_orientation keywords we force ex noerase   0   IF chkstru ex   overplot  EQ 0 THEN placedessin   autre  _extra   ex   fiddle when noerase is used with c_orentation    call contour with  nodata to get the graphic environment  then force   noerase   0 and overplot   1   IF size ex   type  EQ 8 THEN BEGIN   check if noerase is used with c_orentation     alltags   strlowcase tag_names ex      dummy   where alltags EQ  noerase  count1      dummy   where alltags EQ  c_orientation  count2      IF count1 count2 NE 0 THEN BEGIN        case n_params  OF         1:contour  x   nodata  _EXTRA   ex         2:contour  x  y   nodata  _EXTRA   ex         3:contour  x  y  z   nodata  _EXTRA   ex       endcase       ex noerase   0       ex   get_extra overplot  _extra   ex        noerase_orientation   1     ENDIF    ENDIF    3  je fais mon joli dessin    case n_params  OF     1:contour  x  xstyle   1  ystyle   1  _EXTRA   ex     2:contour  x  y  xstyle   1  ystyle   1  _EXTRA   ex     3:contour  x  y  z  xstyle   1  ystyle   1  _EXTRA   ex   ENDCASE   fiddle when noerase is used with c_orentation  draw the contour axis   IF keyword_set noerase_orientation   THEN BEGIN     ex noerase   1     ex overplot   0     case n_params  OF       1:contour  x  xstyle   1  ystyle   1   nodata  _EXTRA   ex       2:contour  x  y  xstyle   1  ystyle   1   nodata  _EXTRA   ex       3:contour  x  y  z  xstyle   1  ystyle   1   nodata  _EXTRA   ex     ENDCASE   ENDIF   4  End of drawing   terminedessin  _extra   ex     return end"); 
     259a[257] = new Array("./ToBeReviewed/PLOTS/DESSINE/splot.html", "splot.pro", "", "            file_comments    Same thing that plot but compatible with the whole environnement  common pro inclued       categories graphics      INPUTS:cd IDL   plot      keyword NOREINITPLT   We active it if we do not want environnement variables  p   x   y   z    to be reinitilalizted by the procedure reinitplt       keyword _EXTRA   used to pass your keywords      uses   common pro      restrictions    If NOREINITPLT is not activated  all environnement    variables  p   x   y   z are reinitializtedby the procedure reinitplt      examples        IDL  splot  indgen 10 ystyle 1 small 1 2 1 portrait        IDL  splot   indgen 10 ystyle 1 small 1 2 2 noerase        IDL   ps      history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999      version    Id: splot pro 142 2006 07 21 12:47:49Z navarro             PRO splot   x  y  NOREINITPLT   noreinitplt  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   1  I reinitializate the graphic environment  les variables  x   y et  p :     if NOT keyword_set NOREINITPLT  then reinitplt  _extra   ex    2  i put the drawing on the screen like on the postcript     placedessin   autre  _extra   ex   3  Drawing    if n_elements y  EQ 0 then plot   x  xstyle   1  ystyle   1  _EXTRA   ex      ELSE plot   x  y  xstyle   1  ystyle   1  _EXTRA   ex   4  End of drawing     terminedessin  _extra ex       return end"); 
     260a[258] = new Array("./ToBeReviewed/PLOTS/DESSINE/tvplus.html", "tvplus.pro", "", "             file_comments   Enhanced version of tvscl      categories quick exploration of 2D arrays      INPUTS:       param Z2D  in required    2D array to visualize      param CELLSIZE  in optiona    This is the size  in pixel  of the square   representing 1 array element  By default  this size is computed   automatically in order that the size of the plotting window do   not exceed the screen size  If the user specify a large value   of cellsize that forces tvplus to create a window larger than   the screen  a  scrolling window  will be displayed instead of a   regular window  Unfortunately the nice fonctionnalities of tvplus   are not coded for  scrolling window  case       keyword BOTTOM  default 1    The lowest color index of the colors to be used      keyword C_NAN  default d n_colors  1 e6  the test to find the masked value is ge   abs mask 10  This is necessary to avoid the rounding errors      keyword MIN   Scalar used to specify the min value to be drawn       keyword MAX   Scalar used to specify the max value to be drawn       keyword NCOLORS  default d n_colors  tvplus  dist 100       history   Sebastien Masson  smasson lodyc jussieu fr                          18 12 98   Aug 2005: quick cleaning   english      version    Id: tvplus pro 152 2006 08 10 07:01:35Z smasson             PRO tvplus  z2d  cellsize  BOTTOM   bottom  C_MASK   c_mask  C_NAN   c_nan  WINDOW   window                 MIN   min  MAX   max  MASK   mask  OFFSET   offset  NOUSEINFOS   NOUSEINFOS                 NCOLORS   ncolors  NOINTERP   nointerp  _EXTRA   ex       compile_opt idl2  strictarrsubs     IF n_elements z2d  EQ 0 THEN return   arr   reform float z2d      check the size of the input array      if  size arr 0  NE 2 then begin     ras   report Input array must have only 2 dimensions and not   strtrim size arr   n_dimensions  1      return   endif     def of ncolmax  bottom  topcol et ncolors     ncolmax    d n_colors  arr     truemin   min   ENDIF ELSE truemin   min arr    if n_elements max  NE 0 then BEGIN      arr   arr  floor x cellsize   floor y cellsize   floor x cellsize   floor y cellsize   floor x2 cellsize   floor y2 cellsize     size arr 2 cellsize 1          x     x  x2    x    x sort x          y     y  y2    y    y sort y          IF keyword_set OFFSET  THEN offset    x 0  y 0 offset ELSE offset    x 0  y 0          tvplus  z2d x 0 :x 1  y 0 :y 1    WINDOW   window  MIN   min  MAX   max                     MASK   mask  C_MASK   c_mask  C_NAN   c_nan   NOUSEINFOS  OFFSET   OFFSET                     NCOLORS   ncolors  NOINTERP   nointerp  BOTTOM   bottom  _EXTRA   ex         return       END       ELSE:     endcase   ENDWHILE      x   xenvsauve    y   yenvsauve    p   penvsauve    x range   1 0  nx cellsize 5 offset 0     y range   1 0  ny cellsize 5 offset 1      return end"); 
     261a[259] = new Array("./ToBeReviewed/PLOTS/DIVERS/addaxe.html", "addaxe.pro", "", "             file_comments   Add an axis when we do an oblique section in pltz  pltt   or plt1d      categories   graphic      param ENDPOINTS  in required    Coordonnees of extremities of the section       param TYPE  in required    A string of two characters specifying the type of plot we do      param POSFENETRE  in required    The vector  p position corresponding to the frame position of    the drawing part of the plot       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: addaxe pro 142 2006 07 21 12:47:49Z navarro             PRO addaxe  endpoints  type  posfenetre  _EXTRA   ex     compile_opt idl2  strictarrsubs    common      IF strpos type   x  NE  1 THEN BEGIN       IF endpoints 1  EQ endpoints 3  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lonaxe          formeaxe1    lataxe          titreaxe    latitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    j index        ENDELSE       range    endpoints 1  endpoints 3        if endpoints 2  LT endpoints 0  THEN range   reverse range     ENDIF ELSE BEGIN       IF endpoints 0  EQ endpoints 2  THEN return       IF key_onearth THEN BEGIN          formeaxe0    lataxe          formeaxe1    lonaxe          titreaxe    longitude        ENDIF ELSE BEGIN          formeaxe0             formeaxe1             titreaxe    i index        ENDELSE       range    endpoints 0  endpoints 2        if endpoints 3  LT endpoints 1  THEN range   reverse range     ENDELSE    if type EQ  yt  then BEGIN       axis yaxis 0 ytickformat formeaxe0 color 0 ystyle   1  _EXTRA   ex       axis yaxis 1 ytickformat formeaxe1 color 0 ystyle   1 ytitle titreaxe  yrange   range  _EXTRA   ex    ENDIF ELSE BEGIN       axis xaxis 0 xtickformat formeaxe0 color 0 xstyle   1 _EXTRA   ex       axis xaxis 1 xtickformat formeaxe1 color 0 xstyle   1 xtitle titreaxe  xrange   range  _EXTRA   ex    ENDELSE       return end"); 
     262a[260] = new Array("./ToBeReviewed/PLOTS/DIVERS/autoscale.html", "autoscale.pro", "", "             file_comments    We give a min and a max  and the procedure send back    the good contour interval and labels s value       categories    graphic      param MIN  in required    A reel number specifying above what value we want to trace a contour      param MAX  in required    A reel number specifying below what value we want to trace a contour      param CI   out    It is a reel number giving the contour interval  Use it in CONTOUR with the keyword LEVEL       restrictions   CI is a multiple of the unity in unity log of 10    It force the number of contour to be even       history   G  Roullet   aout 99  gr lodyc jussieu fr       version    Id: autoscale pro 142 2006 07 21 12:47:49Z navarro             PRO autoscale  min  max  ci      Estimation of a first CI  notice the presence of the floor  Inferior round    This CI is a multiple of the unity in unity log of 10        compile_opt idl2  strictarrsubs       ci    max min 20      ci   10 floor alog10 ci       n   0     ci0   ci       coef    2  2 5  5  10      We test differents CI  contour intervals  i e  1  2  2 5  5 and 10   until the number of contour is inferior to 30        WHILE ceil max min ci  GE 30 DO BEGIN            ci   ci0 coef n            n   n 1     ENDWHILE       min   floor min ci 2 ci 2     max   ceil max ci 2 ci 2          nlevels   round max min ci            We force the number of contour to be even       IF nlevels MOD 2 EQ 1 THEN BEGIN            nlevels   nlevels 1           max   max ci     END    END     "); 
     263a[261] = new Array("./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html", "axis4pltz.pro", "", "             file_comments   compute the mask and the axis for a vertical section      param MASK  in required     3d mask              param GLAM  in required    2d longitude        param GPHI  in required    2d latitude      param Z  in required    1d depth      keyword XXAXIS    to get the xaxis we need to use in pltbase            keyword ZZAXIS    to get the yaxis we need to use in pltbase      keyword SIN    Activate this keyword if we want the x axis to be traced in sinus of the    latitude when we make a drawing f y       keyword ZRATIO   When the drawing has a zoomed part  it is the size rapport between the zoomed part     hz  zoom height  and the whole drawing  ht  total height  By default  2 3      keyword _EXTRA   used to pass your keywords       Others: see pltz         history   Sebastien Masson  smasson lodyc jussieu fr                         June 24  2002      version    Id: axis4pltz pro 142 2006 07 21 12:47:49Z navarro              PRO axis4pltz  type  mask  glam  gphi  z  XXAXIS   xxaxis  ZZAXIS   zzaxis  SIN   sin  ZRATIO   zratio  ZOOM   zoom  PROFMAX   profmax  PROFMIN   profmin  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF        define the mask used for this section     if mask 0  NE  1 AND  size mask 0  NE 2 then begin     if type EQ  xz  then mask   total mask  2    1       ELSE mask   total mask  1    1   endif     define xxaxis and yyaxis the axis used for this section     nx    size glam 1    CASE  size gphi 0  OF     1:ny    size gphi 1      2:ny    size gphi 2    ENDCASE   CASE  size z 0  OF     1:nz    size z 1      2:nz    size z 2    ENDCASE     if type eq  yz  then BEGIN      IF  size gphi 0  EQ 1 then xxaxis   gphi ELSE BEGIN        IF keyword_set key_irregular  THEN BEGIN          cln    where gphi EQ max gphi 0          xxaxis   reform gphi cln MOD nx          ENDIF ELSE xxaxis   reform gphi 0        ENDELSE     if keyword_set sin  then xxaxis   sin pi 180 xxaxis      if  size z 0  EQ 1 THEN zzaxis   z ELSE zzaxis   z   ENDIF ELSE BEGIN     xxaxis   glam  0      if  size z 0  EQ 1 then zzaxis   z ELSE zzaxis   z   ENDELSE      We project the z axis in  0 1      if not keyword_set zratio  then zratio   2 3   if zoom ge profmax then zratio   1    if zoom LT profmax then begin     mp   projsegment profmin  zoom   0  zratio   mp      zzaxis where zzaxis LE zoom    mp 0 zzaxis where zzaxis LE zoom mp 1      mp   projsegment zoom  profmax   zratio  1   mp      zzaxis where zzaxis GE zoom    mp 0 zzaxis where zzaxis GE zoom mp 1    ENDIF ELSE BEGIN     mp   projsegment profmin  profmax   0  1   mp      zzaxis   mp 0 zzaxis mp 1    ENDELSE    to draw from bottom to top  avoid using cell_fill    CASE size zzaxis   n_dimensions  OF     1:zzaxis   reverse zzaxis       2:zzaxis   reverse zzaxis  2     ENDCASE   if mask 0  NE  1 then mask   reverse mask  2     return end"); 
     264a[262] = new Array("./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html", "barrecouleur.pro", "", "             file_comments   Overlayeur of colorbar      categories   utilities      restrictions pass all argument we want thanks to _extra      history   Sebastien Masson  smasson lodyc jussieu fr                          23 12 98      version    Id: barrecouleur pro 152 2006 08 10 07:01:35Z smasson        todo seb: mettre les keyword et les param         PRO barrecouleur  colnumb  clbinf  clbsup  clbdiv                       NOCOLORBAR   nocolorbar  CB_TITLE   cb_title                       NOFILL   nofill  COLOR_c   color_c                       MIN   min  MAX   max  divisions   divisions                       CB_SUBTITLE   cb_subtitle  POST   post  _extra   ex       compile_opt idl2  strictarrsubs    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     if keyword_set min  then clbinf   min   if keyword_set max  then clbsup   min   if keyword_set divisions  THEN  clbdiv   divisions   nocolorbar   keyword_set nocolorbar    keyword_set nofill                     keyword_set color_c          def_myuniquetmpdir     IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used        colorbarparam    colnumb:colnumb  clbinf:clbinf                           clbsup:clbsup  clbdiv:clbdiv     ENDIF ELSE BEGIN       save  colnumb  clbinf  clbsup  clbdiv               file   myuniquetmpdir    4colorbar dat     ENDELSE      if keyword_set nocolorbar  then return       ancienx    x    ancieny    y    ancienp    p    reinitplt     x style   1     y style   1        colorbar  cb_color   0  cb_charsize   ancienp charsize            pscolor   keyword_set post  division   clbdiv            min   clbinf  max   clbsup            cb_title   cb_title  discret   colnumb  _extra   ex       x  ancienx     y  ancieny     p  ancienp      return end"); 
     265a[263] = new Array("./ToBeReviewed/PLOTS/DIVERS/checkfield.html", "checkfield.pro", "", "FUNCTION err_1d  type  n1  name  n2     compile_opt idl2  strictarrsubs     return  report Error in     type     type plot with a 1D input array:                         the number of elements of the input vector  strtrim n1  1                           is not equal to     name      strtrim n2  1   simple  END   FUNCTION err_2d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 2D input array:                         the array dimensions     tostr sz 1:2      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END   FUNCTION err_3d  type  sz  nx  ny  nz     compile_opt idl2  strictarrsubs      cm_4mesh    cm_4cal   return  report Error in     type     type plot with a 3D input array:                         the array dimensions     tostr sz 1:3      are incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END              file_comments   In input of plt  pltz  pltt and plt1d  it check that the field give    a size compatible with the domain and  if needed  average to give us    a 2d array if we make a plot of the type:  xy   xz   xt   yz   yt       zt  or a 1d array if we make a plot of the type:  x   y   z   t       categories   graphic       param FIELD  in required    A field respecting litchamp pro s criterions  See IDL xhelp litchamp       keyword BOXZOOM    Vector indicating the geographic zone on which we want to cut the map      If BOXZOOM has :   1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0    2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1    4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw    5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4    6 elements: The extraction is made on Boxzoom     Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword WDEPTH   to specify that the field is at W depth instad of T    depth  automatically activated if vargrid eq  W        keyword VECTEUR   It is a structure composed by 2 elements containing the 2 fields U   and V of values of the zonal and meridian component of the vector of the fields   to draw  These fields can be an array or a structure          For example: vecteur matriceu:lec unsurface matricev:lec vnsurface          Comment: name of elements of vectors are inconsenquential          vecteur u:lec unsurface v:lec vnsurface  is also appropriated       keyword _EXTRA   used to pass your keywords      keyword DIREC         uses    common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         08 02 2000      version    Id: checkfield pro 142 2006 07 21 12:47:49Z navarro        todo seb: mettre les param              FUNCTION checkfield  field  procedure  TYPE   type  BOXZOOM   boxzoom  DIREC   direc  NOQUESTION   noquestion  VECTEUR   vecteur  WDEPTH   wdepth  _EXTRA   ex       compile_opt idl2  strictarrsubs     include commons  cm_4mesh  cm_4cal  cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF     I1  Reading of the field     if n_elements field  EQ 0 then return  report field undefined    arr   litchamp field    first check   IF n_elements arr  EQ 1 THEN BEGIN     if arr EQ  1 then         return  report Error: input array    1  Maybe the reading did ont perform well   simple        ELSE return  report Error: input array is a scalar   simple         ENDIF   nan   total finite arr   nan    firstzw 1        lastzw    lastzw 1    firstzt 1        lastzt    lastzt 1     jpk 1        nzt   lastzt   firstzt   1     ENDELSE      updateold   ENDIF   make the automatic definition of type for pltz if type is not specified    IF type EQ  z  AND procedure EQ  pltz  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz    make the automatic definition of type for pltt if type is not specified    IF type EQ  unkownpltt  AND procedure EQ  pltt  THEN       if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt      verification of the input array size and the value of the type     grille   1   1   1   1  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz  WDEPTH   wdepth     basic checks     CASE 1 OF     nx EQ 1: IF strpos type   x  NE  1 THEN return  report Error: impossible to make a     type     type plot with nx   1    simple      ny EQ 1: IF strpos type   y  NE  1 THEN return  report Error: impossible to make a     type     type plot with ny   1    simple      nz EQ 1: IF strpos type   z  NE  1 THEN return  report Error: impossible to make a     type     type plot with nz   1    simple      jpt EQ 1: IF strpos type   t  NE  1 THEN return  report Error: impossible to make a     type     type plot with jpt   1    simple      ELSE:   ENDCASE     is the size of the array compatible with teh domain      arr   fitintobox temporary arr  nx  ny  nz  firstx  firsty         firstz  lastx  lasty  lastz      sz   size arr    case sz 0  of       0:return  arr       1:BEGIN       nele   n_elements arr        case type of          t :if jpt NE nele THEN return  err_1d type  nele   jpt  jpt           x :IF  nx NE nele THEN return  err_1d type  nele    nx   nx           y :IF  ny NE nele THEN return  err_1d type  nele    ny   ny           z :IF  nz NE nele THEN return  err_1d type  nele    nz   nx          ELSE:return  report Error:                                    Impossible to make a  type  plot with a 1D array   simple        ENDCASE     END        2:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    y    xy array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    z    x y z array             sz 1  EQ nx AND sz 2  EQ jpt:direc    t    xt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         end          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny:direc    x    xy array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    z     x yz array             sz 1  EQ ny AND sz 2  EQ jpt:direc    t    yt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz:direc    x    x y z array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz:direc    y     x yz array             sz 1  EQ nz AND sz 2  EQ jpt:direc    t    zt array             ELSE:return  err_2d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ jpt:direc    x    xt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ jpt:direc    y     x yt array             nx EQ 1 AND ny EQ 1 AND sz 1  EQ nz AND sz 2  EQ jpt:direc    z     x y zt array             ELSE:return  err_2d type  sz  nx  ny  nz            ENDCASE         END          xy :IF sz 1  NE nx OR sz 2  ne  ny THEN return  err_2d type  sz  nx  ny  nz    xy array          xz :IF sz 1  NE nx OR sz 2  ne  nz THEN return  err_2d type  sz  nx  ny  nz    xz array          yz :IF sz 1  NE ny OR sz 2  NE  nz THEN return  err_2d type  sz  nx  ny  nz    yz array          xt :IF sz 1  NE nx OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    xt array          yt :IF sz 1  NE ny OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    yt array          zt :IF sz 1  NE nz OR sz 2  NE jpt THEN return  err_2d type  sz  nx  ny  nz    zt array       ENDCASE     END        3:BEGIN       case type of          x :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    yz    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt    x y zt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    yt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          y :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xz    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    zt     x yzt array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xt    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          z :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ nz:direc    xy    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yt     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xt    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          t :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    xy    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    yz     x yzt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    xz    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xy :BEGIN           case 1 OF             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    z    xyz array             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    t    xyt array             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          xz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    y    xyz array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t    x y zt             ELSE:return  err_3d type  sz  nx  ny  nz            endcase         END          yz :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ  nz:direc    x    xyz array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    t     x yzt             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          xt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    y    xyt array             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z    x y zt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          yt :BEGIN           case 1 of             sz 1  EQ nx AND sz 2  EQ ny AND sz 3  EQ jpt:direc    x    xyt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    z     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             endcase         END          zt :BEGIN           case 1 of             sz 1  EQ nx AND ny EQ 1 AND sz 2  EQ nz AND sz 3  EQ jpt:direc    x    x y zt array             nx EQ 1 AND sz 1  EQ ny AND sz 2  EQ nz AND sz 3  EQ jpt:direc    y     x yzt array             ELSE:return  err_3d type  sz  nx  ny  nz             ENDCASE         END        ENDCASE      END        4:BEGIN        CASE type OF          x :direc    yzt           y :direc    xzt           z :direc    xyt           t :direc    xyz           xy :direc    zt           xz :direc    yt           yz :direc    xt           xt :direc    yz           yt :direc    xz           zt :direc    xy        ENDCASE      END   ENDCASE     IF keyword_set direc  THEN BEGIN     IF strpos direc   t  NE  1 OR strpos type   t  NE  1 THEN         arr   grossemoyenne temporary arr  direc  boxzoom   localbox                               NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex        ELSE arr   moyenne temporary arr  direc  boxzoom   localbox                            NAN   nan   NODOMDEF  WDEPTH   wdepth  _extra   ex    ENDIF           RETURN  arr END"); 
     266a[264] = new Array("./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html", "checktypeminmax.pro", "", "          NAME:     PURPOSE:     CATEGORY:     CALLING SEQUENCE:      INPUTS:     KEYWORD PARAMETERS:     OUTPUTS:     COMMON BLOCKS:common pro     SIDE EFFECTS:     RESTRICTIONS:     EXAMPLE:     MODIFICATION HISTORY:Sebastien Masson  smasson lodyc jussieu fr       todo seb         PRO checktypeminmax  procedure  TYPE   type  MIN   min  MAX   max  XY   xy                          XZ   xz  YZ   yz  XT   XT  YT   YT  ZT   zt                          TT   tt  XX   xx  YY   yy  ZZ   zz                          XINDEX   xindex  YINDEX   yindex                          ENDPOINTS   endpoints  _extra   ex       compile_opt idl2  strictarrsubs    common      case size type   type  of       0:       7:       ELSE:BEGIN          vraimin   type          case size min   type  of             0:BEGIN                 min   vraimin                type   0             END             7:BEGIN                 type   min                min   vraimin             end             ELSE:BEGIN                case size max   type  of                   0:BEGIN                      max   min                      min   vraimin                      type   0                   END                   7:BEGIN                       type   max                      max   min                      min   vraimin                   end                   ELSE:BEGIN                      rien   report Probleme dans la definition des arguments en entree de                                         procedure   chkwidget                       return                   end                endcase             end          endcase       end    endcase      if keyword_set xy  then type    xy     if keyword_set xz  then type    xz     if keyword_set yz  then type    yz     if keyword_set xt  then type    xt     if keyword_set yt  then type    yt     if keyword_set zt  then type    zt     if keyword_set tt  then type    t     if keyword_set xx  then type    x     if keyword_set yy  then type    y     if keyword_set zz  then type    z       if keyword_set type  then begin      if type EQ  plt  then type          if type EQ  pltz  then type          if type EQ  pltt  then type          if type EQ  plt1d  then type        endif     determination du type de plot que l on veut faire      if NOT keyword_set type  then BEGIN       case procedure of          plt :type    xy           pltz :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    xz  else type    yz            ENDIF ELSE type    z          END          pltt :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              lat2   max endpoints 1  endpoints 3              if  lon2 lon1  gt  lat2 lat1  then type    xt  else type    yt            ENDIF ELSE type    unkownpltt          END          plt1d :BEGIN           if keyword_set endpoints  then BEGIN              lon1   min endpoints 0  endpoints 2  max   lon2              lat1   min endpoints 1  endpoints 3  max   lat2              if  lon2 lon1  gt  lat2 lat1  then type    x  else type    y            ENDIF ELSE BEGIN             type                 WHILE type NE  x  AND type NE  y  AND type NE  z  DO BEGIN               type   xquestion Quel type de plot 1D voulez vous faire  x y z ou t                                       chkwidget                type   strlowcase type              endwhile           ENDELSE         END       endcase     ENDIF      WHILE type NE  xy  AND type NE  xz  AND type NE  yz          AND type NE  xt  AND type NE  yt  AND type NE  zt          AND type NE  t  AND type NE  x  AND type NE  y          AND type NE  z  AND type NE  unkownpltt  DO BEGIN       type   xquestion What kind of plot do you want to do  xy xz yz xt yt zt t x y z                                 chkwidget        type   strlowcase type      ENDWHILE               return   end"); 
     267a[265] = new Array("./ToBeReviewed/PLOTS/DIVERS/determineminmax.html", "determineminmax.pro", "", "             file_comments   Determine the min and the max of a mask array      categories    Lightening of the writting of plt  pltz and pltt      param TAB  in required    The array whose we determine the min and the max      param MASK  in required    The mask array       keyword MININ    It is a scalar which  if it is not defined  take the value of VRAIMIN      keyword MAXIN    It is a scalar which  if it is not defined  take the value of VRAIMAX      keyword ZEROMIDDLE    Force the middle of the colorbar to be equal   to 0  force max max abs min max  and min max        keyword _EXTRA   used to pass your keywords      keyword USETRI   To force using triangulation        param VRAIMIN  out    The min of the array      param VRAIMAX  out    The max of the array      uses   Common pro      restrictions   Look if the field is constant on the sea      history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98      version    Id: determineminmax pro 142 2006 07 21 12:47:49Z navarro        todo seb: manque les param glam et gphi           PRO determineminmax  tab  mask  vraimin  vraimax  glam  gphi  MAXIN   maxin  MININ   minin  INTERVALLE   intervalle  usetri   usetri  ZEROMIDDLE   zeromiddle  _extra   ex     compile_opt idl2  strictarrsubs    common       Type o fthe vertical grid:   if vargrid EQ  W  then nz   nzw ELSE nz   nzt   liste des points mer   if  size mask 0  EQ 3 then mer   mask    0      ELSE mer   mask   If key_irregular eq 1  we mask also points which are not in the geographic    domain defined by lon1 lon2 lat1 lat2   if keyword_set key_irregular  AND n_elements glam  NE 0 AND n_elements gphi  NE 0 then begin     dom     where glam LT lon1 OR glam GT lon2 OR gphi LT lat1 OR gphi GT lat2      if dom 0  NE  1 then mer dom    0   endif     mer   where mer eq 1      if mer 0  eq  1 then begin     ras   report Il n y a que de la terre sur le dessin      vraimax   0     vraimin   0     maxin   vraimax 1     minin   vraimin 1     usetri   0     return   endif   ma and mi : max and min on ocean points   vraimax   max tab mer  min   vraimin  _extra   ex    sameminmax   testvar var   minin  EQ testvar var   maxin     if n_elements maxin  EQ 0 OR sameminmax then maxin   vraimax   if n_elements minin  EQ 0 OR sameminmax then BEGIN      if keyword_set intervalle  then minin   floor vraimin intervalle intervalle       ELSE minin   vraimin   endif   if vraimin eq vraimax then BEGIN     IF size vraimin   type  EQ 1 THEN vraimin   fix vraimin      question    Warning: constant filed  same value everywhere :     strtrim vraimin  2     Shall we make the plot      answer   report question   default_no   question      if answer then begin       maxin   vraimax 1       minin   vraimin 1     endif ELSE tab    1   ENDIF   IF keyword_set zeromiddle  THEN BEGIN       maxin   max abs minin  maxin        minin    maxin   ENDIF     return end"); 
     268a[266] = new Array("./ToBeReviewed/PLOTS/DIVERS/givewindowsize.html", "givewindowsize.pro", "", "       todo seb       FUNCTION givewindowsize       include commons     compile_opt idl2  strictarrsubs    cm_4ps IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew ENDIF        dimensions   get_screen_size RESOLUTION resolution     coef   floor 1 resolution 0     if NOT keyword_set windowsize_scale  then BEGIN      windowsize_scale   1       IF NOT keyword_set key_forgetold  THEN BEGIN       updateold      ENDIF     ENDIF     coef   windowsize_scale   coef       mipgsz   min page_size  max   mapgsz        xsize   coef    mipgsz key_portrait   mapgsz 1 key_portrait      ysize   coef    mipgsz 1 key_portrait    mapgsz key_portrait       return   xsize  ysize  end"); 
     269a[267] = new Array("./ToBeReviewed/PLOTS/DIVERS/meridienparallele.html", "meridienparallele.pro", "", "             file_comments   Trace some meridians or parallel      categories   graphic      param COUPE The type of drawing we treat      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98      version    Id: meridienparallele pro 142 2006 07 21 12:47:49Z navarro             PRO meridienparallele  coupe     compile_opt idl2  strictarrsubs    common      case coupe of        xy :BEGIN           if lon1 lt 180 and lon2 gt 180 then             plot   180 180 lat1 lat2 noerase color 0          if lon1 lt 0 and lon2 gt 0 then             plot   0 0 lat1 lat2 noerase color 0          if lon1 lt 360 and lon2 gt 360 then             plot   360 360 lat1 lat2 noerase color 0          if lat1 lt 0 and lat2 gt 0 then             plot   lon1 lon2 0 0 noerase color 0       END     endcase     return end"); 
     270a[268] = new Array("./ToBeReviewed/PLOTS/DIVERS/placecolor.html", "placecolor.pro", "", "             file_comments   allows to trace the independently from a graph   By default  trace a color bar of the same type tahn the one present in plt   and pltz  If max  min and divisions are not stipulated  then max sup min inf   and divisions div       categories   graphic      param POS   Vecteur composed by 4 elements giving coordinates of the left bottom    corner and of the right up one  in cm  in which we want to do the color bar      keyword _extra   used to pass your keywords      uses   common pro      restrictions   Only usable for POSTCRIPTs effectuated with plein2dessin      history   Sebastien Masson  smasson lodyc jussieu fr   7 5 98      version    Id: placecolor pro 142 2006 07 21 12:47:49Z navarro             pro placecolor  pos  _extra   ex     include commons     compile_opt idl2  strictarrsubs    cm_4ps    IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew    ENDIF        xsave    x    ysave    y    psave    p      reinitplt   z   invert    pos 1 pos    mipgsz   min page_size  max   mapgsz     if key_portrait eq 1 then begin       pos 0 pos 0 mipgsz         pos 1 pos 1 mapgsz           pos 2 pos 2 mipgsz        pos 3 pos 3 mapgsz        endif else begin       pos 0 pos 0 mapgsz           pos 1 pos 1 mipgsz           pos 2 pos 2 mapgsz           pos 3 pos 3 mipgsz        ENDELSE      def_myuniquetmpdir      IF lmgr demo  EQ 1 THEN BEGIN   if we are in demo mode  we cannot save the parameters in a temporary file   cm_demomode_used         colnumb   colorbarparam colnumb       clbinf   colorbarparam clbinf        clbsup   colorbarparam clbsup       clbdiv   colorbarparam clbdiv      ENDIF ELSE BEGIN       file   myuniquetmpdir    4colorbar dat        IF file_test file  THEN BEGIN          restore  file                  if size ex   type  EQ 8 then BEGIN              if  where tag_names ex  EQ  MIN 0  NE  1 then clbinf   ex MIN             if  where tag_names ex  EQ  MAX 0  NE  1 then clbsup   ex MAX             if  where tag_names ex  EQ  DIVISIONS 0  NE  1 then clbdiv   ex DIVISIONS          ENDIF            COLORBAR  COLOR   0  DIVISIONS   clbdiv  DISCRET   colnumb               cb_color   0  POSITION   pos  MAX   clbsup               MIN   clbinf  cb_charsize    p charsize               _extra   ex       ENDIF    ENDELSE       x   xsave     y   ysave     p   psave      return end"); 
     271a[269] = new Array("./ToBeReviewed/PLOTS/DIVERS/placedessin.html", "placedessin.pro", "", "             file_comments    Putting into place of the drawing  opening of the window or of the PS      categories    Utilities      param TYPEDESSIN   It is a chain or characteres specifying what procedure is called by PLACEDESSIN:  plt   pltz  or  pltt       keyword LANDSCAPE    Force the page or the window on the screen to be in lenthened position       keyword LCT    Is an integer designating the number of the palette of color we want to use for the plot        keyword MAP    We use it when we want to do a projection    This keyword can be of two types:       MAP P0lat P0lon Rot  For the descrption of these 3 values  see the online help of MAP_SET         MAP: In this case  map is automatically caculated have the value:             map    0   lon1 lon2 2  0    Comment: A good way to choose the type of the projection we want to do is to have a look at IDL demo:   IDL  demo   Then choose earth sciences and  mapping    Comment2: By default it  is a cindrical projection which is effectuated  with or without the keyword map     If we want an other projection  MAP must be activated and we have to add the keyword:  nom_projection    For example  for a polar projection centered on the south pole:   IDL  domdef 180 180 90 45   IDL  plt  tab   stereo map 90 0 0       keyword NOCOLORBAR    We active it if we do not want the colorbar      keyword NOFILL    We active it if we only want contours in black and white with a white background       keyword NOERASE    We active it to make a drawing without creating a new frame       keyword SMALL    Vector composed of 3 or 4 elements  applyed to make a drawing on a    small portion of a page or screen  It delimit the zone where the drawing will be done        If there is 4 elements:   then is constituated of coordinates  expressed in cm located from the up and    left corner of the page or the window  in portrait like in lanscape  of the bottom    and left corner and of the up and right corner of the drawing zone        If there is 3 elements:   in this case  we divide the page or the screen in small 0  columns and in small 1  lines    the drawing made in the box numbered small 2  The numerotation starting up and left by    the number 1 and then  following the writing direction    By default  we make the largest drawing we can do  conserving the aspect rapport     exept when REMPLI is activated        keyword PORTRAIT    Force the page or the window to be in standing position       keyword POST    Make a postscript  Only works if we made one drawing on the page    If we make several drawing  use  ps       keyword REMPLI    Force the drawing to occupy the whole space defined by small       keyword WINDOW   Number of the window on which we want to do the graph  Allow to open several windows     By default  we open  IDL0       keyword CB_TITLE    The colorbar s title      keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword ENDPOINTS    keyword specifing that we want to make a vertical cut in diagonal  Then coorinated of extremities    of these one are difined by the 4 elements of the vector ENDPOINTS:  x1 y1 x2 y2  which are    coordinates        keyword VECTEUR   It is a structure composed by 2 elements containing the 2 fields U   and V of values of the zonal and meridian component of the vector of the fields   to draw  These fields can be an array or a structure          For example: vecteur matriceu:lec unsurface matricev:lec vnsurface          Comment: name of elements of vectors are inconsenquential          vecteur u:lec unsurface v:lec vnsurface  is also appropriated       keyword DIREC    t   x   y   z   xys   xz   yz   xyz   xt   yt   zt   xyt           xzt   yzt   xyzt  Direction on which do averages       keyword _EXTRA   Used to pass your keywords       keyword COLOR_C    To draw the contour in color instead of in black   with filling in color       param POSFENETRE  out    It is a vector composed by 4 elements containing the position of the frame    containing captions and the graph in normalized coorinates     Comment: To position the drawing  we have to do  p position posfenetre    after the call of the caliber      param POSBAR  out    Like POSFENETRE but for the color bar     Same comment to position the color bar   p position posbar      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          26 4 1999      version    Id: placedessin pro 142 2006 07 21 12:47:49Z navarro             PRO placedessin  typedessin  posfenetre  posbar  BARMARGES   barmarges                      NOCOLORBAR   nocolorbar  NOFILL   nofill  COLOR_c   color_c                      CONTOUR   contour                      VECTEUR   vecteur  PORTRAIT   portrait  LANDSCAPE   landscape                      SMALL   small  MARGES   marges  MAP   map                      REMPLI   REMPLI  POST   post  WINDOW   window                      ENDPOINTS   endpoints  TYPE   type  BASICMARGES   basicmarges                      NOERASE   noerase  LCT   lct  DIREC   direc  CB_TITLE   cb_title  _extra   ex     include common     compile_opt idl2  strictarrsubs    cm_4ps  cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF     1  Determination of the size of margins  unity number of lines or columns    to the left  to the right  up and down    BEWARE in margebar  the last element is the right up corner    instead of the up margin     if n_elements typedessin  EQ 0 then typedessin    autre    if keyword_set basicmarges  then begin     marge   1 6  2  4  3      if keyword_set marges  THEN marge   marge marges     margebar   1 marge 0 1  marge 1 1   marge 2 8   marge 2 6      if keyword_set barmarges  then margebar   margebar barmarges   ENDIF ELSE BEGIN      nocolorbar   keyword_set nocolorbar    keyword_set nofill    keyword_set color_c        case typedessin of        plt :marge   1 6  2  4  3         pltt :marge   1 6 4 type EQ  xt  2  4  4         pltz :marge   1 6  2  4  3        else:marge   1 6  2  4  3      ENDCASE     if keyword_set marges  THEN marge   marge marges     if NOT keyword_set barmarges  then barmarges   replicate 0  4      barmarges 3     barmarges 3      margebar   1 marge 0 1  marge 1 1  2  4 barmarges     marge   marge 0  0  4  0 keyword_set cb_title      IF keyword_set direc  THEN         marge   marge 0  0  2  0 strlowcase direc  NE  t      marge   marge 0  0  2  0 keyword_set contour      marge   marge 0  0  2  0 keyword_set vecteur      if n_elements lon1  NE 0 and n_elements lon2  NE 0         and n_elements lat1  NE 0 and n_elements lat2  NE 0 then begin       if keyword_set type  then           marge   marge 0  3 type EQ  yt  AND lon1 NE lon2  0                            2 type NE  yt  AND lat1 NE lat2 keyword_set endpoints          ELSE marge   marge 0  0  0  2 lat1 NE lat2 keyword_set endpoints      endif     marge   marge 0  0  2 margebar 3  0 1 keyword_set nocolorbar    ENDELSE     Portrait or landscape     IF NOT keyword_set noerase  THEN BEGIN      CASE 1 OF       n_elements portrait  NE 0:key_portrait   portrait       n_elements landscape  NE 0:key_portrait   1 landscape       ELSE:     ENDCASE   ENDIF      What type of aspect rapport  it will be crushed if YXASPECT exist      case typedessin of      plt :yaspect   1 lat2 lat1 lon2 lon1       pltt :yaspect   1       pltz :yaspect    5     ELSE:yaspect   1    endcase     2  calculation of  p position   see calibre pro        IF NOT keyword_set small  then small    1  1  1      if keyword_set map  then rempli   1     calibre  yaspect  marge  margebar  small  posfenetre  posbar  REMPLI   rempli  _extra   ex      p position   posfenetre     3  opening of the graphic window or of the postscript     case 1 of   case of the first drawing on a postcript     keyword_set post  AND  d name ne  PS :openps  _extra   ex   case of the first drawing on a screen     keyword_set post  EQ 0 AND keyword_set noerase  EQ 0         AND  d name ne  PS  AND  d name ne  Z :BEGIN       if not keyword_set window  then window   0   For the using of  ps oups et de  vzoom       if lmgr demo  EQ 0 then BEGIN   Are we in the demo mode          if  journal NE 0 then journal   We close te journal if it is open         homedir   isadirectory io   homedir  title    Bad definition of homedir          def_myuniquetmpdir         journal  myuniquetmpdir idlsave pro    We open a new one         help   recall_commands  output   listecommande   We recuperate the last command         listecommande   strmid strcompress listecommande 1  2          journal  listecommande   We write it in the journal       ENDIF       windsize   givewindowsize        window  window  xsize   windsize 0  ysize   windsize 1   retain   2  _extra   ex   When we used colors which are coded on 24bit  we can not stipulate the background color    of a window thanks to  p background  so we have to to this:            if  d n_colors gt 256 then begin               device  decomposed 1                p background ffffff x               plot 0 0   nodata  xstyle   4  ystyle   4               device  decomposed 0            endif     END     ELSE:   endcase     if n_elements lct  NE 0 then lct  lct  _extra   ex      return end"); 
     272a[270] = new Array("./ToBeReviewed/PLOTS/DIVERS/projsegment.html", "projsegment.pro", "", "             file_comments   project linearly a segment  a vector whose boundaries are  a b  on    a vector whose boundaries are  c d       categories   calculation      param VECTEUR   A vector whose the first element must be the smallest one and the last must be the biggest one       param BORNES    New boundaries of the vector       keyword MP   Activate this keyword to the function send back this a vector of 2    elements which are the m and p of the linear projection y mx p used    to pass from the  a b  segment to the  c d  segment       returns    A vector whose new boudaries are specified by BORNES       examples          IDL  a indgen 9       IDL  print  a             0       1       2       3       4       5       6       7       8     IDL  print  projsegment a 0 80              0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 0 80               0      10      20      30      40      50      60      70      80     IDL  print  projsegment a 80 0               80      70      60      50      40      30      20      10      0      history   Sebastien Masson  smasson lodyc jussieu fr                          24 6 1999      version    Id: projsegment pro 142 2006 07 21 12:47:49Z navarro             FUNCTION projsegment  vecteur  bornes  MP   mp       compile_opt idl2  strictarrsubs      a1   float vecteur 0     b1   float vecteur n_elements vecteur 1     a2   float bornes 0     b2  float  bornes 1     if a1 EQ b1 then return   1    m    b2 a2 b1 a1     p   a2 m a1      if keyword_set mp  then return   m  p  ELSE return  m vecteur p   end"); 
     273a[271] = new Array("./ToBeReviewed/PLOTS/DIVERS/restoreatt.html", "restoreatt.pro", "", "             file_comments   Allows to reattribuate global variables associated with a field    when we give a stucture created by saveatt pro by example       categories    Utilities      param STRUCT  in required    a structure like the one who read litchamp            See IDL  xhelp litchamp       uses   common pro      restrictions   Change the value if global variables attribute of a field: vargrid     varname  varunit  vardate  varexp   valmask and time       history   Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999      version    Id: restoreatt pro 142 2006 07 21 12:47:49Z navarro             PRO restoreatt  struct     compile_opt idl2  strictarrsubs    common      nomelements   tag_names struct     for i   0  n_tags struct 1 do begin       case strlowcase strmid nomelements i  0  1  of           g :vargrid   strupcase struct i            n :varname   struct i            u :varunit   struct i            e :varexp   struct i            m :valmask   struct i            d :BEGIN              if size struct i type  EQ 7 THEN BEGIN                 vardate   struct i              ENDIF ELSE BEGIN                vardate     time series                 time   struct i              ENDELSE          end          ELSE:BEGIN              ras   report Le nom  nomelements i  ne correspont a aucun element reconnu de la structure   C cf  IDL  xhelp   litchamp           end       endcase    endfor      return end"); 
     274a[272] = new Array("./ToBeReviewed/PLOTS/DIVERS/rotation.html", "rotation.pro", "", "       file_comments   Rotate two vectors by a specified amount           param X  in required    orignal data point pairs      param Y  in required    orignal data point pairs                 param DEG  in required    degrees to rotate           param NX  out    rotated point pairs        param NY  out    rotated point pairs           history   Jeff Bennett  U of Colorado      version    Id: rotation pro 142 2006 07 21 12:47:49Z navarro        PRO ROTATION X Y DEG NX NY     compile_opt idl2  strictarrsubs   ang deg dtor   convert to polar coordinates for rotation r   sqrt x x   y y  theta   r 0   get angle in for loop so that zero radii will be left as zero angle for i   0 n_elements r 1 do   if r i  ne 0 then theta i    atan y i x i    range from  pi to  pi    add rotation angle theta   theta   ang    convert back to rectangular coordinates  now rotated nx   r   cos theta  ny   r   sin theta    return end"); 
     275a[273] = new Array("./ToBeReviewed/PLOTS/DIVERS/saveatt.html", "saveatt.pro", "", "             file_comments   Allows to put in a structure attributes which can be associated with a variable       categories   utilities      returns    A structure of the form:            n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask l:niveau       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          15 6 1999      version    Id: saveatt pro 142 2006 07 21 12:47:49Z navarro             FUNCTION saveatt     compile_opt idl2  strictarrsubs    common    return   n:varname g:vargrid d:vardate e:varexp u:varunit m:valmask  end"); 
     276a[274] = new Array("./ToBeReviewed/PLOTS/DIVERS/terminedessin.html", "terminedessin.pro", "", "             file_comments   End the drawing if needed when it is a postscript       categories   utilities  graphic      keyword POST    Make a postscript  Only works if we made one drawing on the page    If we make several drawing  use  ps       keyword SMALL    Vector composed of 3 or 4 elements  applyed to make a drawing on a    small portion of a page or screen  It delimit the zone where the drawing will be done        If there is 4 elements:   then is constituated of coordinates  expressed in cm located from the up and    left corner of the page or the window  in portrait like in lanscape  of the bottom    and left corner and of the up and right corner of the drawing zone        If there is 3 elements:   in this case  we divide the page or the screen in small 0  columns and in small 1  lines    the drawing made in the box numbered small 2  The numerotation starting up and left by    the number 1 and then  following the writing direction    By default  we make the largest drawing we can do  conserving the aspect rapport     exept when REMPLI is activated       keyword _EXTRA    Used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          3 6 1999      version    Id: terminedessin pro 142 2006 07 21 12:47:49Z navarro             PRO terminedessin  POST   post  SMALL   small  _extra   ex       compile_opt idl2  strictarrsubs    cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      if keyword_set post  then BEGIN       if keyword_set small  then         if total small  NE            page_margins 2 page_margins 0 total page_size              page_margins 1 page_margins 3  then return       closeps       printps    endif    return end"); 
     277a[275] = new Array("./ToBeReviewed/PLOTS/LABEL/label.html", "label.pro", "", "             file_comments   Allows to choose the type of the label we want to use at the time of a contour       categories   graphic      param CAS  in required    Number of the type of the label we want to trace      param MIN  in required     Smallest value for the drawing of the contour       param MAX  in required    Biggest value for the drawing of the contour       keyword INTERVALLE   Value of an interval betwenn two isolines  By default  it is calculated to    draw 20 isolines  In all cases  this keyword must be returnedt have a nice   caption  If levels do not contain regular intervals  put it at  1       keyword NLEVEL   Number of contour to be drawn  By default  20  Active if LABEL 0 or is not specified       param NCONTOUR  out    Number of contour to be drawn        param LEVEL_Z2D  out    Vector containing values of contours we draw       param COLNUMB  out    Vector containing the number of colors which will serve to fill contours       uses   common pro      history    Sebastien Masson  smasson lodyc jussieu fr   7 5 98      version     Id: label pro 142 2006 07 21 12:47:49Z navarro             pro label  cas  min  max  ncontour  level_z2d  colnumb  NLEVEL   nlevel              INTERVALLE intervalle  STRICTFILL   strictfill     compile_opt idl2  strictarrsubs    common    if  d name EQ  PS  OR  d name EQ  Z  then BEGIN       old_dname    d name       thisOS    VERSION OS_FAMILY       thisOS   STRMID thisOS  0  3        thisOS   STRUPCASE thisOS        CASE thisOS of           MAC : SET_PLOT  thisOS           WIN : SET_PLOT  thisOS          ELSE: SET_PLOT   X        ENDCASE        p BACKGROUND d n_colors 1   ncontour          level_z2d    min    max min findgen Ncontour Ncontour           colnumb      ncoul findgen Ncontour Ncontour ncoul 2 ncontour           intervalle   level_z2d 1 level_z2d 0        end       1: begin   a certain number of label from the min to the nearest possible to the   max with a constant step by interval          ncontour    fix max min intervalle           ncontour   1   ncontour          level_z2d   min   intervalle findgen Ncontour            colnumb     ncoul findgen Ncontour Ncontour ncoul 2 ncontour           max level_z2d Ncontour 1 intervalle       end   label to do same sss than dessier        2: begin          lct  63  file    palette tbl           level_z2d     20  25  30  31  32  33  33 5  34 25 findgen 16           ncontour 23          colnumb      findgen 23 1          masx   37 75          intervalle    1          return       end       3: begin   Readinf of intervals   palette in the file GMT           label_gmt  min  max  intervalle  ncoul  ncontour  level_z2d  colnumb        end       else: begin          ras   report Le numero de label demande n existe pas        end    ENDCASE    if keyword_set strictfill  then begin       ncontour   ncontour 1       level_z2d    level_z2d  max        colnumb    colnumb  ncoul 1     endif    return end"); 
     278a[276] = new Array("./ToBeReviewed/PLOTS/LABEL/label_date.html", "label_date.pro", "", "    Copyright  c  1993 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited          file_comments   This function labels axes with dates and times       categories   Plotting       param AXIS  in required       param INDEX  in required       param X  in required       keyword DATE_FORMAT   a format string which may contain the following:    M for month  3 character abbr     N for month  2 digit abbr     D for day of month     Y for 4 digit year     Z for last two digits of year     For time:    H for Hours  2 digits     I for mInutes  2 digits     S for Seconds  2 digits      is      Other characters are passed directly thru    For example   M  D   Y  prints DEC 11  1993    M  2Y  yields DEC 93    D M  yields 11 DEC    D N Y  yields 11 12 1993    M C Y  yields DEC on the top line  1993 on   the bottom  C is the new line graphic command       keyword MONTHS   The names of the months  a twelve element string array    If omitted  use Jan  Feb    Dec       keyword OFFSET   An optional starting offset of the plot    Unfortunately  single precision floating point is not accurate   enough to properly represent Julian times   This offset  which   may be double precision  contains an offset that is added to   all x values  before conversion to Julian date and time       uses   LABEL_DATE_COM       restrictions   Only one date axis may be simultaneously active       examples   For example  to plot from Jan 1  1993  to July 12  1994:   Start_date   julday 1  1  1993    End_date   julday 7  12  1994    Dummy   LABEL_DATE DATE_FORMAT N D    Simple mm dd   x   findgen end_date 1   start_date    start_date  Time axis   PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1    Plot with X axis style set to exact      Example with times:  For example  to plot from 3PM  Jan 1  1993  to 5AM  Jan 3   1993:  Start_date   Julday 1 1 1993     Also starting offset  Start_time    3 12 24           Starting_time less offset  End_time    Julday 1 3 1993    Start_date    5 24   Ending          date time   offset  note that the order of operations is                   important to avoid loss of precision   Dummy   LABEL_DATE DATE_FORMAT D  M C H: I     offset Start_date         MMM NN  HH:MM format  x   findgen 20     End_time   Start_time    19   start_time  Time axis  PLOT  x  sqrt x  XTICKFORMAT    LABEL_DATE  XSTYLE 1      history  DMS  RSI April  1993 Written   DMS  RSI March  1997 Added Time format      Copyright  c  1993 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited       version    Id: label_date pro 142 2006 07 21 12:47:49Z navarro         FUNCTION LABEL_DATE  axis  index  x  DATE_FORMAT   format  MONTHS   months                  OFFSET  offs  _EXTRA   ex     compile_opt idl2  strictarrsubs   COMMON label_date_com  fmt  month_chr  offset  if keyword_set format  then begin  Save format string      if n_elements offs  ne 0 then offset   double offs  else offset   0 0d0     if keyword_set months  then month_chr   months       else month_chr    Jan Feb Mar   Apr   May   Jun   Jul                           Aug   Sep   Oct   Nov   Dec      fmt   format     return  0 endif  if n_elements month_chr  ne 12 or n_elements fmt  le 0     or n_elements offset  eq 0 then     message  Not initialized   x1   x   offset caldat  long x1  month  day  year  _EXTRA   ex Get the calendar date from julian frac   x1   long x1              time of day  from 0 to 1   n   strlen fmt  out      for i 0  n 1 do begin            Each format character      c   strmid fmt  i  1         The character      if c eq   then begin         i   i   1         c   strmid fmt  i  1     The function         case c of format character               M  : out   out   month_chr month 1               N  : out   out   string format i2 2  month               D  : out   out   string format i2 2  day               Y  : out   out   string format i4  year               Z  : out   out   string format i2 2  year  mod 100               H  : out   out   string format i2 2  floor 24 frac               I  : out   out   string format i2 2  floor 1440   frac mod 60               S  : out   out   string format i2 2  86400L   frac mod 60                : out   out                 else : message   Illegal character in date format string:  fmt         endcase     endif else out   out   c endfor return  out end"); 
     279a[277] = new Array("./ToBeReviewed/PLOTS/LABEL/label_gmt.html", "label_gmt.pro", "", "    Apply GMT palette into IDL color intervals system   PRO label_gmt  min  max  intervalle  ncoul  ncontour  level_z2d  coul     compile_opt idl2  strictarrsubs    common  com_eg     IF pal_type NE  2dom  THEN BEGIN      color defined in lec_pal_gmt pro        ncontour   ncont_gmt       level_z2d   levels_gmt       coul   coul_gmt       max   max_gmt       intervalle     1     ENDIF ELSE BEGIN           grey_shade palette  case 1 in label        IF finite min  EQ 0 THEN read    Grey shade needs a min max :  min  max       ncontour    fix max min intervalle        level_z2d   min   intervalle findgen Ncontour         max level_z2d Ncontour 1 intervalle        print        Number of contour intervals  plotting min   max   ncontour  min  max       print               color index        IF idx_pal EQ 0 THEN BEGIN              build palette          red   lonarr 99           red    255          red 50:98    long 100 float grey_shade 100 255            IF field origin EQ  diff  THEN BEGIN                      difference plot : lighter below first negative interval             red 51:98    long 100 float grey_shade_2 100 255              red 1:48    long 100 float grey_shade 100 255              red 50    255           ENDIF              first color black            last   white          red    0  red           red 99    255            gray scale          green   red          blue   red           tvlct  red  green  blue        ENDIF           mid_index   max where level_z2d LE fldatt mid        coul   findgen Ncontour 49 mid_index  2     ENDELSE    END "); 
     280a[278] = new Array("./ToBeReviewed/PLOTS/LABEL/lataxe.html", "lataxe.pro", "", "             file_comments   function called by  XYZ TICKFORMAT  see the help to see how to use it  to label axes in latitude       categories   graphic       param AXIS    It is the axis number: 0 for X axis  1 for Y axis  2 for Z axis       param INDEX   It is the tick mark index which starts at 0       param VALUE   It is the default tick mark value  a floating point number       returns   A string  used automatically to label      history   Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format of labels      version    Id: lataxe pro 142 2006 07 21 12:47:49Z navarro             FUNCTION lataxe  axis  index  value     We put back value in the segment  0 180      compile_opt idl2  strictarrsubs      lat value mod 360    if lat lt 0 then lat lat 360    if lat gt 180 then lat lat 180   format of labels:    case 1 of       lat EQ round lat :fmt    i4        10 lat EQ round 10 lat :fmt    f6 1        ELSE:fmt    f7 2     endcase   we write the label    if lat le 90 and lat ne 0 then nom string lat      format fmt N     if lat gt 90              then nom string 180 lat  format fmt S     if lat eq  0              then nom string lat      format fmt       return  nom end "); 
     281a[279] = new Array("./ToBeReviewed/PLOTS/LABEL/lonaxe.html", "lonaxe.pro", "", "             file_comments   function called by  XYZ TICKFORMAT  see the help to see how to use it  to label axes in longitude       categories   graphic       param AXIS    It is the axis number: 0 for X axis  1 for Y axis  2 for Z axis       param INDEX   It is the tick mark index which starts at 0       param VALUE   It is the default tick mark value  a floating point number       returns   A string  used automatically to label      history   Sebastien Masson  smasson lodyc jussieu fr                                                    14 10 1999 format of labels      version    Id: lonaxe pro 142 2006 07 21 12:47:49Z navarro             FUNCTION lonaxe  axis  index  value     We put back value in the segment  0 360      compile_opt idl2  strictarrsubs      lon value mod 360    if lon lt 0 then lon lon 360   format of labels:    case 1 of       lon EQ round lon :fmt    i4        10 lon EQ round 10 lon :fmt    f6 1        ELSE:fmt    f7 2     endcase   we write the label    if lon lt 180 then nom string lon      format fmt E     if lon gt 180 then nom string 360 lon  format fmt W     if lon eq 180 then nom string lon      format fmt       return  nom end "); 
     282a[280] = new Array("./ToBeReviewed/PLOTS/VECTEUR/ajoutvect.html", "ajoutvect.pro", "", "             file_comments   Overprint vectors in a field traced by plt       categories   graphic      param VECTEUR  in required    It is a structure with 2 elements containing we 2 matrixes U and V of    values of the zonal and meridian component of the fiel of vectors to    be traced         For ex:         vecteur matriceu:lec unsurface matricev:lec vnsurface          rq:the name of elements of  vector does not have any importance          vecteur u:lec unsurface v:lec vnsurface  goes well too       keyword UNVECTSUR   It is a scalar n or an array with 2 elements  n1 n2    In the first case  we will trace a vector on n following x and y    In the second case  we will trace a vector on n1 following x and a    vector n2 following n2     Comments: To trace all vectors following y and one vector on two    following x  put unvectsur 2 1       keyword VECTMIN  in required    Minimum norme of vectors to be traced       keyword VECTMAX  in required    Maximum norme of vectors to be traced       keyword _EXTRA   Used to pass your keywords       uses   common pro       history   Sebastien Masson  smasson lodyc jussieu fr   10 3 1999                         11 6 1999 compatibilite avec NAN et la lecture                         des structures       version    Id: ajoutvect pro 142 2006 07 21 12:47:49Z navarro               pro ajoutvect vecteur  vectlegende  UNVECTSUR unvectsur VECTMIN vectmin  VECTMAX vectmax  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            For key_performance        u   litchamp vecteur 0     u   checkfield u   plt  TYPE    xy   NOQUESTION     v   litchamp vecteur 1     v   checkfield v   plt  TYPE    xy   NOQUESTION        We recuperate possible informations on fields      grilleu   litchamp vecteur 0   grid     if grilleu EQ   then grilleu    U     grillev   litchamp vecteur 1   grid     if grillev EQ   then grillev    V      IF grilleu EQ  V  AND grillev EQ  U  THEN inverse   1    IF grilleu EQ grillev THEN interpolle    0 ELSE interpolle   1    if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     We find common points between u and v      if interpolle then begin       indicexu    lindgen jpi firstxu:firstxu nxu 1        indicexv    lindgen jpi firstxv:firstxv nxv 1        indicex   inter indicexu  indicexv        indiceyu    lindgen jpj firstyu:firstyu nyu 1        indiceyv    lindgen jpj firstyv:firstyv nyv 1        indicey   inter indiceyu  indiceyv        nx   n_elements indicex         ny   n_elements indicey        indice2d   lindgen jpi  jpj        indice2d   indice2d indicex 0 :indicex 0 nx 1 indicey 0 :indicey 0 ny 1      extraction of u and v on the appropriated domain         case 1 of           size u 0  NE 2 OR  size v 0  NE 2: return           size u 1  EQ nxu AND  size u 2  EQ nyu AND              size v 1  EQ nxv AND  size v 2  EQ nyv:BEGIN              if nxu NE nx then                if indicex 0  EQ firstxu then u   u 0:nx 1    ELSE u   u 1: nx                 IF nxv NE nx THEN                if indicex 0  EQ firstxv then v   v 0:nx 1    ELSE v   v 1: nx                IF nyu NE ny THEN                if indicey 0  EQ firstyu then u   u  0:ny 1  ELSE u   u  1: ny               IF nyv NE ny THEN                if indicey 0  EQ firstyv then v   v  0:ny 1  ELSE v   v  1: ny           END           size u 1  EQ jpi AND  size u 2  EQ jpj AND              size v 1  EQ jpi AND  size v 2  EQ jpj:BEGIN              u   u indice2d              v   v indice2d           END          ELSE:BEGIN              ras   report problemes d adequation entre la taille du domaine et la taille des matrices necessaires a tracer des vecteurs              return          end       endcase     We reshape u and v to make sure that none dimension has been erased          if ny EQ 1 then begin          u   reform u  nx  ny           v   reform v  nx  ny        endif     construction of u and v at points T         a u 0        u u shift u 1 0 2        if NOT keyword_set key_periodic  OR nx NE jpi then u 0 a       a v 0        v v shift v 0 1 2        if NOT keyword_set key_periodic  OR nx NE jpi then v 0 a     attribution of the mask and of longitude and latitude arrays    We recuperate the complete grid to establish a big mask extensive    in the four directions to cover points for which a land point has    been considerated  do a small drawing          vargrid T        msku    umask indice2d jpi jpj firstzt        mskv    vmask indice2d jpi jpj firstzt        glam   glamt indice2d        gphi   gphit indice2d        if ny EQ 1 then begin          msku   reform msku  nx  ny           mskv   reform mskv  nx  ny             glam   reform glam  nx  ny             gphi   reform gphi  nx  ny        endif     We mask u and v et v the long of coasts  the place where we    can not calculate the average       extention of the mask       u   u msku shift msku 1 0        v   v mskv shift mskv 0 1     ENDIF ELSE BEGIN        u   u tmask firstxt:lastxt firstyt:lastyt firstzt        v   v tmask firstxt:lastxt firstyt:lastyt firstzt        indice2d   lindgen jpi  jpj        indice2d   indice2d firstxt:lastxt  firstyt:lastyt        nx   nxt       ny   nyt    endelse    tabnorme sqrt u 2 v 2     nan   where finite u   nan  EQ 1     if nan 0  NE  1 then u nan    1e5    nan   where finite v   nan  EQ 1     if nan 0  NE  1 then v nan    1e5    if keyword_set vectmin  then BEGIN        toosmall where tabnorme lt vectmin        if toosmall 0  NE  1 then begin          u toosmall    1e5          v toosmall    1e5       ENDIF    endif    if keyword_set vectmax  then BEGIN       toobig where tabnorme gt vectmax        if toobig 0  NE  1 then begin          u toobig    1e5          v toobig    1e5       ENDIF    ENDIF     Put back of a big value on all points for which we can do the calculation       if interpolle then t2   msku shift msku 1 0 mskv shift mskv 0 1       ELSE t2   tmask firstxt:lastxt firstyt:lastyt firstzt     if NOT keyword_set key_periodic  OR nx NE jpi then t2 0   0     t2 0 0     terre where t2 eq 0     if terre 0  ne  1 then begin       u terre 1e5       v terre 1e5    ENDIF     trace only one vector one two      if keyword_set unvectsur  then BEGIN     indx is a vector containing number of columns to be selected    indy is a vector containing number of lines to be selected        if n_elements unvectsur  EQ 1 then begin          indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 0  eq 0        ENDIF ELSE BEGIN           indx   where lindgen nx  MOD unvectsur 0  eq 0           indy   where lindgen ny  MOD unvectsur 1  eq 0       ENDELSE   From indx and indy  we will construct an array which will give indexes   of intersections points of columns specified by indx        indicereduit   indx replicate 1 n_elements indy nx replicate 1 n_elements indx indy   We reduce arrays which will be passed to vecteur        u   u indicereduit        v   v indicereduit        tabnorme   tabnorme indicereduit       endif           if keyword_set inverse  then begin       rien   u       u   v       v   rien    endif     Drawing of vectors       vecteur  u  v  tabnorme  indice2d  indicereduit  missing 1e5  _extra   ex     We complete the caption       if terre 0  ne  1 then mini   min tabnorme where t2 eq 1  max   maxi   nan       ELSE mini   min tabnorme  max   maxi   nan         if litchamp vecteur 0   u  NE   then       vectlegende    minmax: mini  maxi  unite:litchamp vecteur 0   u       ELSE vectlegende    minmax: mini  maxi  unite:varunit    sortie:    if keyword_set key_performance  NE 0 THEN print   temps ajoutvect  systime 1 tempsun     return end  "); 
     283a[281] = new Array("./ToBeReviewed/PLOTS/VECTEUR/vecteur.html", "vecteur.pro", "", "FUNCTION cv_cm2normal  angle     Give the lenth in normal coordinates of a trait oriented of an angle   by rapport at the x axis and which must do 1 cm on the drawing    Angle can be an array           compile_opt idl2  strictarrsubs    common   What is the lenth in normal coordinates of a trait which will do 1 cm   on the paper an which is parallel to x    mipgsz   min page_size  max   mapgsz     sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait     sizeyfeuille   mapgsz key_portrait mipgsz 1 key_portrait     cm_en_normal   1 sizexfeuille     If the aspect rapport of the window is not equal to 1  the lenth in   normalized coordinates of  a trait of 1 cm vary following the polar   angle of this trait       aspect   sizexfeuille sizeyfeuille    cm_en_normal   cm_en_normal sqrt  1  aspect 2 1 sin angle 2        return  cm_en_normal END   PRO normalise  u  v  w     normalize the vector       compile_opt idl2  strictarrsubs      IF n_elements w  NE 0 THEN BEGIN        norme   sqrt u 2 v 2 w 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind        w ind    w ind norme ind     ENDIF ELSE BEGIN       norme   sqrt u 2 v 2        ind   where norme NE 0        u ind    u ind norme ind        v ind    v ind norme ind     ENDELSE  END              file_comments   Trace vectors  even if they are on a deformed grid  on any projection    In this way  all vectors have a comparable norme on the drawing  to be   clear  a vector which measure 1 cm measure it  no matter the projection   and is position on the sphere       categories    graphic       param COMPOSANTEU  in required    It is the u component of the vector to be traced  This 2d array has the    same dimension that reduitindice2d  see further        param COMPOSANTEV  in required    It is the v component of the vector to be traced  This 2d array has the    same dimension that reduitindice2d  see further        param INDICE2D   in required    It in an index allowing to to pass from an jpi or jpj array to the zoom    on which we do the drawing       param REDUITINDICE2D  in required    It is an index allowing to pass from an array defined by indice2d to the    array for which we really have vectors to be traced  to be clear  it is    for example when we trace only one vector on two       keyword CMREF   The lenth in cm that must measure the arrow normed normeref  By default     it is ajusted t othe drawing and included between  5 and 1 5 cm       keyword MISSING   The value of a missing value  Do not use this keyword  Fixed at 1e5 by    ajoutvect pro            keyword NORMEREF    The norme of the reference arrow       keyword VECTCOLOR   The color of the arrow  Black by default  color 0        keyword VECTTHICK   The thick of the arrow  1 by default       keyword VECTREFPOS   Vector composed of 2 elements specifing the position on DATA coordinates    from de begining of the reference vector  By default at the right bottom    of the drawing       keyword VECTREFFORMAT   The format to be used to specify the norme of the reference vector       keyword NOVECTREF   To delete the display of the reference vector        keyword _EXTRA   Used to pass your keywords       uses    common pro      history    Creation : 13 02 98 G  Roullet  grlod lodyc jussieu fr     Modification : 14 01 99 realise la transformation    spheriquecartesien G  Roullet                   12 03 99 verification de la routine G  Roullet    8 11 1999:    G  Roullet et Sebastien Masson  smasson lodyc jussieu fr     adaptation pour les zoom  reverification traitement separe de la    direction et de la norme des vecteurs  mots cles NORMEREF et CMREF       version    Id: vecteur pro 142 2006 07 21 12:47:49Z navarro              PRO vecteur  composanteu  composantev  normevecteur  indice2d  reduitindice2d                  CMREF   cmref  MISSING   missing  NORMEREF   normeref                  VECTCOLOR   vectcolor  VECTTHICK   vectthick  VECTREFPOS   vectrefpos                  VECTREFFORMAT   vectrefformat  NOVECTREF   novectref  _extra   extra     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            For key_performance        taille   size composanteu     nx   taille 1     ny   taille 2     if n_elements reduitindice2d  EQ 0 then reduitindice2d   lindgen nx  ny     zu   composanteu    zv   composantev    norme   normevecteur    taille   size indice2d     nxgd   taille 1     nygd   taille 2       msk   replicate 1  nx  ny     if keyword_set missing  then terre   where abs zu  GE missing 10  ELSE terre    1    if terre 0  NE  1  then BEGIN        msk terre    0       zu terre    0       zv terre    0       norme terre    0    ENDIF     Stage 1:      Given that the directions and the sense that the vector has on the sphere     we have to try to determinate this direction and the sense that the vector    will have on the screen once it will have been projected      In theory: on the sphere  a vector in a given point has for direction the    tangent at the circle passing by the center of the Earth and by the vector     So  find the direction once the projection is done  it is find the tangent   to the curve representing the projection of the circle on the 2d plan at the    point representing the projection of the starting point of the shere on the    2d plan       In practice we do no know the definition of the curve given by the projection    of a circle so find its tangente in a point      What we do:   In a 3d cartesian reference          a  We find coorinates of the point T  starting of the arrow  situed          on the sphere          b  To each point T  we determine local directions defined by the grid         on this point and on which coordinates  u v  of the vector refer to          These local directions are defined by gradients of glam and gphi  Once         we have obtain these directions  we considare them like orthogonal and         by norming them  we build an orthonormal reference  nu nv  on which         coordinates  u v  of the vector refer to  In the starting 3d cartesian         reference  the vector is defined by:         V u nu v nv          where V  nu and nv are 3d vectors and u and v are scalars          c  To approximate the tangente to the circle by the chord defined by         the beginning and the ending of the arrow  we will normalize V  and         then divide it by 100          d  This allows us to determine coordinates of extremities of the chord         in the 3d cartesian reference  We pass them in spherical coordinates in         order to recuperate latitude and longitude position of these points on         the sphere          e  We pass coordinates of these points in normalized coordinates  then         in polar coordinates in order to find the angle and the direction they         dertermine on the drawing        Stage 1  a        coordinates of the point T  beginning of the arrow  in spherical coordinates     glam   glamt indice2d reduitindice2d     gphi   gphit indice2d reduitindice2d      Coordinates of the point T  beginning of the arrow  in the cartesian reference    For the sphere  we use a sphere with a radius of 1       radius   replicate 1 nx ny     coord_sphe   transpose   glam   gphi   radius       r   cv_coord from_sphere coord_sphe to_rect degrees       x0   reform r 0    nx  ny     y0   reform r 1    nx  ny     z0   reform r 2    nx  ny      Stage 1  b      Construction of a vector nu  resp  nv  vectr normed carried by the axis of   points u i j  and u i 1 j   resp v i j  and v i j 1  which define  for each   point on the sphere  local directions associated with u and v  These vectors   define a local orthonormal reference     These vectors are built in a cartesian reference  cv_coord  We have choose a    unity radius of the Earth  unit      definition of nu    radius   replicate 1 nxgd nygd     IF finite glamu 0 gphiu 0  NE 0 THEN        coord_sphe   transpose   glamu indice2d   gphiu indice2d   radius         ELSE coord_sphe   transpose   glamf indice2d   gphit indice2d   radius       r   cv_coord from_sphere coord_sphe to_rect degrees    coordinates of points of the grid u in cartesian     ux   reform r 0    nxgd  nygd     uy   reform r 1    nxgd  nygd     uz   reform r 2    nxgd  nygd    calculation of nu     nux   ux shift ux  1  0     nuy   uy shift uy  1  0     nuz   uz shift uz  1  0    conditions at extremities     if NOT keyword_set key_periodic  OR nxgd NE jpi then begin       nux 0      nux 1          nuy 0      nuy 1          nuz 0      nuz 1       ENDIF   reduction of the grid    nux   nux reduitindice2d     nuy   nuy reduitindice2d     nuz   nuz reduitindice2d    definition of nv    IF finite glamv 0 gphiv 0  NE 0 THEN      coord_sphe   transpose   glamv indice2d   gphiv indice2d   radius         ELSE coord_sphe   transpose   glamt indice2d   gphif indice2d   radius                       r   cv_coord from_sphere coord_sphe to_rect degrees    coordinates of points of the grid in cartesian     vx   reform r 0    nxgd  nygd     vy   reform r 1    nxgd  nygd     vz   reform r 2    nxgd  nygd    calcul of nv     nvx   vx shift vx  0  1     nvy   vy shift vy  0  1     nvz   vz shift vz  0  1    conditions at extremities    nvx  0    nvx  1     nvy  0    nvy  1     nvz  0    nvz  1    reduction of the grid    nvx   nvx reduitindice2d     nvy   nvy reduitindice2d     nvz   nvz reduitindice2d      normalization      normalise  nux  nuy  nuz    normalise  nvx  nvy  nvz     Stage 1  c      coordinates of the vector V in the cartesian reference      direcx   zu nux   zv nvx    direcy   zu nuy   zv nvy    direcz   zu nuz   zv nvz   normalization of the vector V    normalise  direcx  direcy  direcz   on divide by 100    direcx   direcx 100     direcy   direcy 100     direcz   direcz 100      Stege 1  d    coordinates of the point of the arrow in the cartesian reference      x1   x0   direcx    y1   y0   direcy    z1   z0   direcz    coordinates of the point of the arrow in spherical coordinates      coord_rect   transpose   x1   y1   z1       r   cv_coord from_rect coord_rect to_sphere degrees     glam1   reform r 0    nx  ny     gphi1   reform r 1    nx  ny       modification of glams  Everything take place at the level of the line   of changing of date  BEWARE  do not cut arrow which goes out of the   window    test: If it goes out of the frame  but  thanks to   360  it come in    we modify it      ind   where glam1 LT  x range 0  AND glam1 360  LE  x range 1     if ind 0  NE  1 then glam1 ind    glam1 ind 360     ind   where glam1 GT  x range 1  AND glam1 360  GE  x range 0     if ind 0  NE  1 then glam1 ind    glam1 ind 360      ind   where glam LT  x range 0  AND glam 360  LE  x range 1     if ind 0  NE  1 then glam ind    glam ind 360     ind   where glam  GT  x range 1  AND glam 360  GE  x range 0     if ind 0  NE  1 then glam ind    glam ind 360        Stage 1  e       r   convert_coord glam gphi data to_normal      x0   r 0                      normal coordinates of the beginning of the array     y0   r 1                              r   convert_coord glam1 gphi1 data to_normal      x1   r 0                      normal coordinates of the ending of the array  Before scaling     y1   r 1                           tests to avoid that arrows be drawing out of the domain       out   where x0 LT  p position 0  OR x0 GT  p position 2                    OR y0 LT  p position 1  OR y0 GT  p position 3     if out 0  NE  1 THEN x0 out     values f_nan     Following projections  there may are points at NaN when we pass in normal coordinates     We delete these points       nan   finite x0 y0 x1 y1     number   where nan EQ 1     x0   x0 number    x1   x1 number     y0   y0 number    y1   y1 number     msk   msk number     norme   norme number      We define the vector direction in the normalize reference       dirx   x1 x0    diry   y1 y0    We pass in polar coordinates to recuperate the angle which wasb the goal of all the first stage        dirpol   cv_coord from_rect   transpose   dirx   diry     to_polar     dirpol   msk dirpol 0        Stage 2     Now we take care of the norme      Automatic putting at the scale       if NOT keyword_set cmref  then BEGIN        mipgsz   min page_size  max   mapgsz        sizexfeuille   mipgsz key_portrait mapgsz 1 key_portrait        sizexfeuille   10 sizexfeuille       cmref   5   floor sizexfeuille 10    15       cmref   cmref 10     ENDIF    if NOT keyword_set normeref  then BEGIN       value   max norme        puissance10   10 floor alog10 value        normeref   puissance10 floor value puissance10     endif    cm   1 normeref cmref     We modify the array norme to an element having the value cm be represented    by a trait of lenght 1 cm on the paper  Norme contain the norme of vectors    we want to draw       norme   1 1 cm norme cv_cm2normal dirpol        Stage 3   Now that we have the angle and the norme  we recuperate coordinates in    rectangular and we draw arrows       r   cv_coord from_polar   transpose   dirpol   norme     to_rect     composantex   r 0       composantey   r 1         x1   x0 composantex    y1   y0 composantey     Drawing      if NOT KEYWORD_SET vectcolor  then vectcolor   0     points   where msk EQ 1     IF points 0  NE  1 THEN arrow  x0 points  y0 points  x1 points  y1 points   norm         hsize    2  COLOR   vectcolor  THICK   vectthick      Draw an arrow at the right bottom of the drawing as a caption       if NOT keyword_set novectref  then BEGIN       dx   cmref cv_cm2normal 0    Lenght of the vector of reference in normalzed coordinates        if keyword_set vectrefformat  then          normelegende   strtrim string normeref  format   vectrefformat  1            ELSE normelegende   strtrim normeref  1            if keyword_set vectrefpos  then begin          r   convert_coord vectrefpos data   to_normal           x0   r 0           y0   r 1        ENDIF ELSE BEGIN          x0    x window 1 dx          r   convert_coord d x_ch_size   d y_ch_size   device   to_normal           dy   3 r 1 p charsize          y0    y window 0 dy       ENDELSE        arrow  x0  y0  x0 dx  y0   norm  hsize    2  color   0       xyouts  x0  y0  normelegende   norm  align   1  charsize    p charsize  color   0     endif         if keyword_set key_performance  NE 0 THEN print   temps vecteur  systime 1 tempsun         return END     "); 
     284a[282] = new Array("./ToBeReviewed/PLOTS/VECTEUR/velovect.html", "velovect.pro", "", "          file_comments   Produce a two dimensional velocity field plot      A directed arrow is drawn at each point showing the direction and    magnitude of the field                      categories   Plotting  two dimensional         param U  in required    The X component of the two dimensional field      U must be a two dimensional array       param V  in required    The Y component of the two dimensional field   Y must have   the same dimensions as X   The vector at point  i j  has a    magnitude of:    U i j 2   V i j 2 0 5     and a direction of:    ATAN2 V i j U i j       param X  in optional    Optional abcissae values   X must be a vector with a length    equal to the first dimension of U and V       param Y  in optional    Optional ordinate values   Y must be a vector with a length   equal to the first dimension of U and V       keyword COLOR   The color index used for the plot       keyword DOTS   Set this keyword to 1 to place a dot at each missing point     Set this keyword to 0 or omit it to draw nothing for missing   points   Has effect only if MISSING is specified       keyword LENGTH   Length factor   The default of 1 0 makes the longest  U V    vector the length of a cell       keyword MISSING    Missing data value   Vectors with a LENGTH greater   than MISSING are ignored       keyword OVERPLOT   Set this keyword to make VELOVECT  overplot   That is  the   current graphics screen is not erased  no axes are drawn  and   the previously established scaling remains in effect        keyword CLIP       keyword NOCLIP      keyword _EXTRA   Used to pass your keywords       restrictions    Plotting on the selected device is performed   System   variables concerning plotting are changed    Note:   All other keywords are passed directly to the PLOT procedure  and may be used to set option such as TITLE  POSITION    NOERASE  etc       history  DMS  RSI  Oct  1983   For Sun  DMS  RSI  April  1989   Added TITLE  Oct  1990   Added POSITION  NOERASE  COLOR  Feb 91  RES   August  1993   Vince Patrick  Adv  Visualization Lab  U  of Maryland   fixed errors in math   August  1993  DMS  Added _EXTRA keyword inheritance   January  1994  KDB  Fixed integer math which produced 0 and caused              divide by zero errors   December  1994  MWR  Added _EXTRA inheritance for PLOTS and OPLOT   June  1995  MWR  Removed _EXTRA inheritance for PLOTS and changed   OPLOT to PLOTS          September  1996  GGS  Changed denominator of x_step and y_step vars           February  1998  DLD   Add support for CLIP and NO_CLIP keywords          June  1998  DLD   Add support for OVERPLOT keyword      Copyright  c  1983 1998  Research Systems  Inc   All rights reserved   Unauthorized reproduction prohibited       version    Id: velovect pro 142 2006 07 21 12:47:49Z navarro         PRO VELOVECT U V X Y  Missing   Missing  Length   length  Dots   dots             Color color  CLIP clip  NOCLIP noclip  OVERPLOT overplot  _EXTRA extra     compile_opt idl2  strictarrsubs           on_error 2                       Return to caller if an error occurs         s   size u          t   size v          if s 0  ne 2 then begin  baduv:   message   U and V parameters must be 2D and same size                  endif         if total abs s 0:2 t 0:2  ne 0 then goto baduv           if n_params 0  lt 3 then x   findgen s 1  else                   if n_elements x  ne s 1  then begin badxy:                  message   X and Y arrays have incorrect size                          endif         if n_params 1  lt 4 then y   findgen s 2  else                   if n_elements y  ne s 2  then goto badxy           if n_elements missing  le 0 then missing   1 0e30         if n_elements length  le 0 then length   1 0          mag   sqrt u 2 v 2               magnitude                   Subscripts of good elements         nbad   0                          of missing points         if n_elements missing  gt 0 then begin                 good   where mag lt missing                   if keyword_set dots  then bad   where mag ge missing  nbad          endif else begin                 good   lindgen n_elements mag          endelse          ugood   u good          vgood   v good          x0   min x                       get scaling         x1   max x          y0   min y          y1   max y   x_step x1 x0 s 1 1 0      Convert to float  Integer math  y_step y1 y0 s 2 1 0      could result in divide by 0   maxmag max max abs ugood x_step max abs vgood y_step   sina   length    ugood maxmag   cosa   length    vgood maxmag            if n_elements title  le 0 then title                plot to get axes            if n_elements color  eq 0 then color    p color         if n_elements noclip  eq 0 then noclip   1         x_b0 x0 x_step  x_b1 x1 x_step  y_b0 y0 y_step  y_b1 y1 y_step         if  not keyword_set overplot  then begin           if n_elements position  eq 0 then begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endif else begin             plot x_b0 x_b1 y_b1 y_b0 nodata xst yst                  color color  _EXTRA   extra           endelse         endif         if n_elements clip  eq 0 then               clip    x crange 0 y crange 0 x crange 1 y crange 1            r    3                           len of arrow head         angle   22 5    dtor             Angle of arrowhead         st   r   sin angle               sin 22 5 degs   length of head         ct   r   cos angle            for i 0 n_elements good 1 do begin      Each point                 x0   x good i  mod s 1          get coords of start   end                 dx   sina i                  x1   x0   dx                 y0   y good i    s 1                  dy   cosa i                  y1   y0   dy  xd x_step  yd y_step                 plots x0 x1 x1 ct dx xd st dy yd xd     x1 x1 ct dx xd st dy yd xd                           y0 y1 y1 ct dy yd st dx xd yd     y1 y1 ct dy yd st dx xd yd                          color color clip clip noclip noclip  _EXTRA   extra                 endfor         if nbad gt 0 then                Dots for missing                  PLOTS  x bad mod s 1  y bad   s 1  psym 3  color color                           clip clip noclip noclip  _EXTRA   extra end"); 
     285a[283] = new Array("./ToBeReviewed/PLOTS/axe.html", "axe.pro", "", "             file_comments   Manage axes for the different drawings created by plt    pltz and pltt      categories    Graphic environment      param COUPE   It is a string designating the type of cut to which the axes we create    must report  For example:  xy xt       param TEMPSMIN  in required    In the case where we do cut containing the time dimension  we have    to specify the beginning of the time s axis in julian days       param TEMPSMAX  in required    In the case where we do cut containing the time dimension  we have    to specify the end of the time s axis in julian days       keyword SIN    activated when we trace in sinus of the latitude      keyword SEPDATE   string separating the diff rent constituents of the date  By default     it is a return to the linewhen we do a  yt   zt  or a  t     In the other cases  it is a blank        keyword DIGITSYEAR    2 to use  Z format  2 digits  to code years   instead of  Y format  See help of label_date for more   informations on  Z and  Y       keyword _EXTRA    used to pass your keywords       uses   common pro      restrictions   It modify  x  and  y       history   Sebastien Masson  smasson lodyc jussieu fr                          11 12 98                         Eric Guilyardi types x y z   amelioration de                         l axe temporel      version    Id: axe pro 152 2006 08 10 07:01:35Z smasson             PRO axe  coupe tempsmin tempsmax  REVERSE_X   reverse_x  REVERSE_Y   reverse_y  SIN   sin  SEPDATE   sepdate  DIGITSYEAR   digitsyear  _EXTRA   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1            pour key_performance     Management of ticks of the time axis in the case of TEMPSMIN    and TEMPSMAX are definied      divday   0    if n_params  EQ 3 then BEGIN         if keyword_set sepdate  then sep   sepdate ELSE          if coupe EQ  yt  OR coupe EQ  zt  OR coupe EQ  t  then sep    C  ELSE sep               caldat tempsmin  mmin  dmin  ymin  hmin  mnmin  smin  _EXTRA   ex       caldat tempsmax  mmax  dmax  ymax  hmax  mnmax  smax  _EXTRA   ex   format used for the year  2 or 4 5 digits        IF NOT keyword_set digitsyear  THEN digitsyear   4       IF digitsyear EQ 2 THEN fmtyr    Z  ELSE fmtyr    Y          if ymax EQ ymin then BEGIN          if mmin ne mmax then BEGIN   Same year but several monthes             nticks   mmax mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              tminor   6             datfmt    M sep fmtyr   We check that labels are betwenn TEMPSMIN and TEMPSMAX              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom    Particular case where we are overlap two monthes             if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          ENDIF ELSE BEGIN    Same year and same month             IF dmax dmin 1 GT 4 THEN BEGIN   more than 4 days                nticks   dmax dmin 1                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              ENDIF ELSE BEGIN      less than 4 days : divday ticks per day                divday   4                nticks    dmax dmin divday   1                ticknom   fltarr nticks                 for d   0 nticks 1 do                   ticknom d    julday mmin  d divday dmin  ymin  _EXTRA   ex                     d MOD divday float divday                 tminor   2                datfmt    H:00              ENDELSE           ENDELSE        ENDIF ELSE BEGIN    Several years          CASE 1 OF          ymax ymin 1 LE 10: BEGIN   freq   1    tminor   12   datfmt    M sep fmtyr   end          ymax ymin 1 LE 20: BEGIN   freq   2    tminor   6   datfmt    M sep fmtyr   end          ymax ymin 1 LE 50: BEGIN   freq   5    tminor   5   datfmt    M sep fmtyr   end          ymax ymin 1 LE 100: BEGIN   freq   10    tminor   10   datfmt   fmtyr   end          ymax ymin 1 LE 1000: BEGIN   freq   50    tminor   5   datfmt   fmtyr   end          ELSE : BEGIN   freq   100    tminor   50   datfmt    Y    end          ENDCASE           nticks   floor ymax ymin freq 1          IF floor ymin freq  NE  ymin freq THEN             yminf    floor ymin freq 1 freq ELSE              yminf    floor ymin freq freq          ticknom   lonarr nticks           for y   0  nticks 1 do ticknom y    julday 1  1  yminf y freq  _EXTRA   ex    We check that labels are betwenn TEMPSMIN and TEMPSMAX           ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1           nticks   n_elements ticknom    Particular case where we are overlap two monthes          if nticks LE 1 then begin             nticks    mmax 12 mmin 1             ticknom   lonarr nticks              for m   0 nticks 1 do ticknom m    julday m mmin  1  ymin  _EXTRA   ex              ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax AND ticknom NE  1              nticks   n_elements ticknom              tminor   6             datfmt    M sep fmtyr    Particular case where we are overlap two monthes            if nticks LE 1 then begin                nticks    dmax jourdsmois mmin  ymin 0 dmin 1 2                ticknom   lonarr nticks                 for d   0 nticks 1 do ticknom d    julday mmin  d 2 dmin  ymin  _EXTRA   ex                 ticknom   ticknom where ticknom GE tempsmin AND ticknom LE tempsmax                                          AND ticknom NE  1                 nticks   n_elements ticknom                 tminor   2                datfmt    D sep M              endif          endif       ENDELSE        toto   label_date 0  0  0  DATE_FORMAT   datfmt  _EXTRA   ex        if chkstru ex   DATE_FORMAT  then ex DATE_FORMAT        ENDIF      Definition of axes parameters case by case      case coupe of        pltv :BEGIN          dtasize   tempsmin           x range    0 5  dtasize 0    0 5            y range    0 5  dtasize 1    0 5            if keyword_set reverse_x  then  x range reverse x range           if keyword_set reverse_y  then  y range reverse y range            x title    nx            y title    ny        END        xy :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range lat2 lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  x tickformat lonaxe           IF key_onearth THEN  y tickformat lataxe        END        yz :BEGIN           if keyword_set reverse_x  then  x range lat2 lat1  ELSE  x range lat1 lat2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0           if keyword_set sin  then BEGIN   number of ticks by default             plot   0   0   noerase   nodata  xtick_get   xaxe   We increase this number to it be around 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    We recuperate the x axis for this new number of ticks             plot   0   0 xticks   ticks   noerase   nodata  xtick_get   xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           endif       end        xz :BEGIN           if keyword_set reverse_x  then  x range lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range 0   1  ELSE  y range    1  0        end        xt  : begin          if keyword_set reverse_x  then  x range    lon2 lon1  ELSE  x range lon1 lon2           if keyword_set reverse_y  then  y range tempsmax  tempsmin tempsmin            ELSE  y range tempsmin tempsmax tempsmin          IF key_onearth THEN  x tickformat lonaxe             result   LABEL_DATE DATE_FORMAT    M sep fmtyr              y tickformat LABEL_DATE            y tickname   LABEL_DATE 1  0 ticknom _EXTRA   ex             y ticklen 1            y gridstyle 2           y ticks nticks 1           y tickv ticknom tempsmin           y minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        yt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if keyword_set reverse_y  then  y range lat2  lat1  ELSE  y range lat1 lat2           IF key_onearth THEN  y tickformat lataxe            x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        zt  : begin          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin          if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1             x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        t  : BEGIN          if keyword_set reverse_x  then  x range    tempsmax tempsmin tempsmin            ELSE  x range tempsmin tempsmax tempsmin           x tickname   LABEL_DATE 0  0 ticknom _EXTRA   ex             x ticklen 1            x gridstyle 2           x ticks nticks 1           x tickv ticknom tempsmin           x minor tminor          IF divday GT 0 THEN  y title    Time from  strtrim dmin 1                 def_month 1m  strtrim mmin  1   strtrim ymin 1        end        x  : begin           x range lon1 lon2           IF key_onearth THEN  x tickformat lonaxe        END        y  : begin          if keyword_set sin  then BEGIN   Number of ticks by default             plot   0   0   nodata   noerase  xstyle   5  ystyle   5  xtick_get   xaxe   We increase this number to it be around 10              ticks   n_elements xaxe 1             ticks   ticks 1  2  4  8              ticks   ticks sort abs ticks 10 0    We recuperate the x axis for this new number of ticks             plot   0   0 xticks   ticks nodata noerase xstyle 5 ystyle 5 xtick_get xaxe              x ticks   ticks              x tickv   sin pi 180 xaxe              tickname   strarr ticks 1              for i   0 ticks do tickname i    lataxe 0  0  xaxe i               x tickname   tickname              x range   sin pi 180 x range           ENDIF ELSE  x range lat1 lat2           IF key_onearth THEN  x tickformat lataxe        END        z  : begin            if vargrid EQ  W  then gdep gdepw 0:nzw 1  ELSE gdep gdept 0:nzt 1              if keyword_set reverse_y  then  y range gdep 0  gdep n_elements gdep 1               ELSE  y range gdep n_elements gdep 1  gdep 0        END     endcase    if keyword_set key_performance  THEN print   temps axe  systime 1 tempsun     return end"); 
     286a[284] = new Array("./ToBeReviewed/PLOTS/legende.html", "legende.pro", "", "             file_comments   Provide caption      categories   graphic  annex      param MI  in required    The min of the drawing       param MA  in required    The max of the plot      param COUPE   Charactere containing two letters giving the type of the cut   for example:  xz       keyword CONTOUR    If we want to trace contours of a different field than the one    whose we have the colored drawing  by examlpe E P in color and QSR in contours     It must be a field respecting same caracteristics than the argument number one of plt       keyword ENDPOINTS   Used when we do vertical cuts in diagonal       keyword _EXTRA   used to pass your keywords       uses   common pro      restrictions   The use of the global variable langage allows to change the language and the caption easily       history    Sebastien Masson  smasson lodyc jussieu fr   14 8 98                         Eric Guilyardi  ericg lodyc jussieu fr  GB version  11 6 99      version    Id: legende pro 152 2006 08 10 07:01:35Z smasson             pro legende  mi  ma  coupe  CONTOUR   contour  ENDPOINTS   endpoints  DIREC   direc                  VECTLEGENDE   vectlegende                  INTERVALLE   intervalle  TYPE_YZ   type_yz  VARNAME2   varname2                  NPTS   npts  _EXTRA   ex     compile_opt idl2  strictarrsubs    common   tempsun   systime 1             pour key_performance     grille   1   1   1  gdep  nx  ny  nz     English legends     fmt_mm    f12 2    fmt_bt    f7 1    colorf       contourf    Contour plot    vecteurf    Vector norm      expf       datef           fieldf           depthf           endpointsf    Diag  Section    zonalf       IF key_onearth THEN latintf    latitudes in   ELSE latintf    j index in     timintf    time in     onf           depthf2    Depth  m    Meridf    Zonal Mean      IF key_onearth THEN lonintf    longitudes in   ELSE lonintf    i in     hovxt    XT plot       diaghovxt    Diag  XT plot       depintf    depths in     timef    Time    hovyt    YT plot       diaghovyt    Diag  YT plot       hovzt    ZT plot       hovt       IF key_onearth THEN lontitle    Longitude  ELSE lontitle    i index    IF key_onearth THEN lattitle    Latitude  ELSE lattitle    j index       vertz   depthf2   legniv     m    IF keyword_set TYPE_YZ  THEN BEGIN     IF type_yz EQ  hPa  THEN vertz    hPa       IF type_yz EQ  hPa  THEN legniv     hPa     ENDIF      Start legende       definition and possible complement of  p subtitle     if n_elements varunit  ne 0 then unite    varunit  else unite        p subtitle   colorf unite : Min   strtrim string format   fmt_mm  mi  2                    Max   strtrim string format   fmt_mm  ma  2    if keyword_set intervalle  then BEGIN     if intervalle NE  1 then           p subtitle    p subtitle  Int   strtrim string format   fmt_mm  intervalle  2    endif   if size contour   type  EQ 8 then BEGIN   it is a structure      unite    contour 1       p subtitle    p subtitle C  contourf unite                      : Min   strtrim string format   fmt_mm  contour 0 0  2                      Max   strtrim string format   fmt_mm  contour 0 1  2      if contour inter NE  1  then           p subtitle    p subtitle  Int   strtrim string format   fmt_mm  contour inter  2    ENDIF   if size vectlegende   type  EQ 8  then begin     unite    vectlegende 1       p subtitle    p subtitle C  vecteurf unite                      : Min   strtrim string format   fmt_mm  vectlegende 0 0  2                      Max   strtrim string format   fmt_mm  vectlegende 0 1  2    endif     Shapping of subdomain  s dimensions       la1   strtrim string format   fmt_bt  lat1  2    la2   strtrim string format   fmt_bt  lat2  2    lo1   strtrim string format   fmt_bt  lon1  2    lo2   strtrim string format   fmt_bt  lon2  2    pr1   strtrim string format   fmt_bt  vert1  2    pr2   strtrim string format   fmt_bt  vert2  2      Management of the date       if n_elements vardate  EQ 0 then vardate       if NOT keyword_set direc  then direc       if strpos direc   t  NE  1 then begin     svardate   strtrim vairdate time 0  1     strtrim vairdate time jpt 1  1    ENDIF ELSE svardate   vardate     case on the caes where the caption is applied        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"); 
     287a[285] = new Array("./ToBeReviewed/PLOTS/plotsym.html", "plotsym.pro", "", "       file_comments   function to make plotting symbols much easier        categories   Graphic       Keyword circle    circle symbol       Keyword TRIANGLE   triangle symbol       Keyword DIAMOND    diamond symbold       Keyword BOX   box symbol       Keyword LINE   line symbol       Keyword SCALE   scales the symbol       Keyword ANGLE   angle the symbol should be rotated       Keyword _EXTRA   extra keywords for usersym   These are thick  color and fill      history   Written by:   Ronn Kling   Ronn Kling Consulting   7038 Westmoreland Dr    Warrenton  VA 20187   klingrl juno com   copyright 1999  all rights reserved      version    Id: plotsym pro 142 2006 07 21 12:47:49Z navarro         function plotsym  circle circle  triangle triangle  diamond diamond                      angle angle  box box  line line  scale scale                      _extra extra     compile_opt idl2  strictarrsubs   if not keyword_set scale  then scale 1 0 if not keyword_set angle  then angle 0 0  if keyword_set circle  then begin   theta   findgen 30 29 360  endif else if keyword_set triangle  then begin   theta    30 90 210   30  endif else if keyword_set diamond  then begin   theta    0 90 180 270 0  endif else if keyword_set box  then begin   theta    315 45 135 225 315  endif else if keyword_set line  then begin   theta    180 0  endif  theta   theta   angle x   cos theta    dtor    scale y   sin theta    dtor    scale  usersym  x y  _extra extra return 8 end"); 
     288a[286] = new Array("./ToBeReviewed/PLOTS/reinitplt.html", "reinitplt.pro", "", "             file_comments   This procedure will reinitialise all or a selection    ofthe system plot variables      categories   plot Utility         keyword X   clear the appropriate variable      keyword Y   clear the appropriate variable        keyword Z    clear the appropriate variable       keyword P   clear the appropriate variable      keyword ALL    Clear all  this is equivalent to  x y z p      keyword INVERT   Invert the logic  Clear all unselected variables    Therefore  clearplt all invert  does nothing       uses   common pro       restrictions   The sytem plot variables are changed       history   Written by: Trevor Harris  Physics Dept  University of Adelaide   July  1990      Sebastien Masson 7 5 98      version    Id: reinitplt pro 142 2006 07 21 12:47:49Z navarro             pro reinitplt  all all x x y y z z p p  invert invert       compile_opt idl2  strictarrsubs    clearx   0  cleary   0  clearz   0  clearp   0  if  keyword_set x  then clearx   1  if  keyword_set y  then cleary   1  if  keyword_set z  then clearz   1  if  keyword_set p  then clearp   1  if  keyword_set all                or  not keyword_set x  and not keyword_set y  and                   not keyword_set z  and not keyword_set p  then begin      clearx   1  cleary   1  clearz   1  clearp   1  endif   if  keyword_set invert  then begin  clearx   not clearx  cleary   not cleary  clearz   not clearz  clearp   not clearp  endif   if  clearx  then begin                  x charsize 0                  x GRIDSTYLE 0                  X MARGIN 10 3             X MINOR 0                  X OMARGIN 0 0                   x region 0           X RANGE 0                  x STYLE 5                   x tick 1                  x TICKFORMAT                   x TICKLEN 0                  x tickname                   x ticks 0                  X TICKV 0 X TICKV 1   x title                   x TYPE 0  endif  if  cleary  then begin                  y charsize 0                  y GRIDSTYLE 0                  Y MARGIN 10 3             Y MINOR 0                  Y OMARGIN 0 0                   y region 0           Y RANGE 0                  y STYLE 5                   y tick 1                  y TICKFORMAT                   y TICKLEN 0                  y tickname                   y ticks 0                  Y TICKV 0 Y TICKV 1   y title                   y TYPE 0  endif  if  clearz  then begin                  z charsize 0                  z GRIDSTYLE 0                  Z MARGIN 10 3             Z MINOR 0                  Z OMARGIN 0 0                   z region 0           Z RANGE 0                  z STYLE 1                   z tick 1                  z TICKFORMAT                   z TICKLEN 0                  z tickname                   z ticks 0                  Z TICKV 0 Z TICKV 1   z title                   z TYPE 0  endif  if  clearp  then begin  p BACKGROUND d n_colors 1    255  p CHARSIZE 1   p CHARTHICK 0   p LINESTYLE 0   p MULTI replicate 0 5   p NOERASE 0   p POSITION 0   p region 0                   p title   p subtitle   p ticklen 0 02                  p thick 0 1                  p color 0  endif  return  end      "); 
     289a[287] = new Array("./ToBeReviewed/PLOTS/style.html", "style.pro", "", "             file_comments    Choose the way to trace isolines       categories   graphic      param LABSTYLE  in required    Number to which the style of drawing choosen refer to       param LEVEL_Z2D  in required    Vector containing values of isolignes to be traced       param LINESTYLE  out    Vector used to define the isocontour s style         Comment: remenber:  Index Linestyle   0 Solid   1 Dotted   2 Dashed   3 Dash Dot   4 Dash Dot Dot Dot   5 Long Dashes        param THICK  out    Vector defining the thick of the isoline       history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: style pro 142 2006 07 21 12:47:49Z navarro             pro style labstyle level_z2d linestyle thick     compile_opt idl2  strictarrsubs      case labstyle of       0: begin  series: Two thin continuous lines  one boldface continuous line          thick 1 1 2           linestyle 0           return       end       1: begin  series: Before the middle of levels: thin dash  Then thin continuous trait    If the middle of the drawing is drawn  it is in boldface continuous trait           impair n_elements level_z2d 2 fix n_elements level_z2d 2           a replicate 0 fix n_elements level_z2d 2           b replicate 1 fix n_elements level_z2d 2           c replicate 2 fix n_elements level_z2d 2                    if impair then begin             thick b 2 b              linestyle c 0 a           endif else begin             thick 0              linestyle c a           endelse          return       end       2: begin  series: Before the sill  defined by answering to a question : thin dash    Then thin continuous trait  If the sill is drawn  it is in boldface continuous trait           seuil xquestion Quelle est la limite tirets trait continu   0           seuil   float seuil           rien where level_z2d lt seuil n           a replicate 0 n_elements level_z2d n           c replicate 2 n                    if seuil eq level_z2d n  then begin             thick replicate 1 n 2 replicate 1 n_elements level_z2d 1 n              linestyle c a           endif else begin             thick 0              linestyle c a           endelse          return       end       3: begin          n   n_elements level_z2d           seuil   level_z2d 1 n 2            thick   intarr n           thick indgen n 4 4    1          thick indgen n 4 4 1    1          thick indgen n 4 4 2    2          thick indgen n 4 4 3    1           linestyle   intarr n           linestyle indgen n 4 4    3          linestyle indgen n 4 4 1    0          linestyle indgen n 4 4 2    0          linestyle indgen n 4 4 3    0           labels   intarr n           labels indgen n 2 2    1          labels n 2    0           return       end       4: begin   Boldface continuous trait           seuil   1 e 6          thick replicate 5   n_elements level_z2d           linestyle 0           rien where abs level_z2d max abs level_z2d  LT seuil           if rien 0  NE  1 then thick rien 0    3       end       else: begin          ras   report Le numero de labstyle demande n existe pas           stop       end    endcase    return end"); 
     290a[288] = new Array("./ToBeReviewed/PLOTS/symbols.html", "symbols.pro", "", "       file_comments   Create custom plotting symbols       param NSYM  in required                      1   open circle                  2   filled circle                  3   arrow pointing right                  4   arrow pointing left                  5   arrow pointing up                  6   arrow pointing down                  7   arrow pointing up and left  45 degrees    8   arrow pointing down and left   9   arrow pointing down and right    10   arrow pointing up and right    11 through 18 are bold versions of 3 through 10   19   horizontal line   20   box   21   diamond   22   triangle   30   filled box   31   filled diamond   32   filled triangle       param SCALE  in required    size of symbols        keyword COLOR   color of symbols      restrictions   The desired symbol is stored in the user buffer and    will be plotted if  P PSYM   8       history   Jeff Bennett  U of Colorado  198       version    Id: symbols pro 142 2006 07 21 12:47:49Z navarro       pro symbols nsym scale color col     compile_opt idl2  strictarrsubs   on_error 2 fill   0 case 1 of       nsym le 2 :   begin                          circles                        for large scales increase number of points for res                        if scale ge 4 then a   findgen 25  else                         a   findgen 13                        a   a    3 14159   6         0   12 or 24  pi 6                       xarr   cos a                        yarr   sin a                        if nsym eq 2 then fill   1                     end       nsym ge 3 nsym le 18 :   begin            arrow heads                       xarr   fltarr 5                        yarr   xarr                       xarr 1    10                        xarr 2    6                        yarr 2    2                         nsyms greater than 10 should be filled arrows                       if nsym gt 10 then begin                          xarr 3    6                            xarr 4    10                           yarr 3     2                           fill   1                       endif else begin                          xarr 3    10                           xarr 4    6                           yarr 4     2                        endelse                       case 1 of                           nsym eq 3 : dummy   0b                           nsym eq 4 : xarr    1 xarr                           nsym eq 11 nsym eq 12 : begin                             xarr   extrac xarr 0 11                              yarr   extrac yarr 0 11                              yarr 6    0 5                             xarr 7    6                             yarr 7    0 5                             xarr 8    6                             yarr 8     0 5                             yarr 9     0 5                             if nsym eq 12 then begin                                rotation xarr yarr 180 nx ny                                xarr   nx                                yarr   ny                             endif                                                      end                           nsym eq 5 nsym eq 13 : begin                             temp   xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym eq 6 nsym eq 14 : begin                             temp    1 xarr                             xarr   yarr                             yarr   temp                                                      end                           nsym ge 7 nsym le 10                                nsym ge 15 nsym le 18 : begin                             case 1 of                                   nsym eq 7 nsym eq 15 : deg   45                                   nsym eq 8 nsym eq 16 : deg   135                                   nsym eq 9 nsym eq 17 : deg   225                                   nsym eq 10 nsym eq 18 : deg   315                             endcase                             rotation xarr yarr deg nx ny                             xarr   nx                             yarr   ny                                                   end    end nsym ge 7                       endcase                                    end     nsym between 3 and 18       nsym eq 20 nsym eq 21 nsym eq 30 nsym eq 31 :  begin                       xarr   fltarr 5    3                       yarr   xarr                       xarr 1     3                        xarr 2     3                        yarr 2     3                        yarr 3     3                        if  nsym eq 21 nsym eq 31  then begin                          rotation xarr yarr 45 nx ny                          nx   0 70   nx      shrink the x direction                          xarr   nx                          yarr   ny                       endif                       if nsym ge 30 then fill   1                                    end     nsym 20 21 30 31       nsym eq 22 nsym eq 32 :  begin   side length 6  0 at centroid                       yarr   fltarr 4    6 4                        xarr   fltarr 4    6 2                        xarr 1    6 2                        xarr 2    0                        yarr 2    6 sqrt 3 2    6 4                        if nsym eq 32 then fill   1                                     end      else:                          begin                       xarr   fltarr 2    1                       yarr   xarr   0                        xarr 1     1                                      end endcase   xarr   xarr   scale yarr   yarr   scale    set symbol buffer if keyword_set col  then usersym xarr yarr fill fill color col else     usersym xarr yarr fill fill   return end"); 
     291a[289] = new Array("./ToBeReviewed/POSTSCRIPT/calibre.html", "calibre.pro", "", "           file_comments   From a rapport of aspect and values  in line of character  of different margins     it calculate POSFENETRE and POSBAR which serve to place the drawing and the color    bar thanks to  p position on a leaf or a screen output whose the window has the same    proportion       categories    graphics         param RAPPORTYX  in required    Scale rapport between the lenght of the y axis and the x one  For example     for an xy map: RAPPORTYX lat2 lat1 lon2 lon1       param MARGE  in required    Vector made of 4 elements containing the size of the left  right  up and    bottom margin having to surround the graph  All is measured in lines of characters       param MARGEBAR  in required    Vector made of 4 elements containing the size of the left  right and bottom    margin and  BEWARE  the last element is this time the positio of the right up    corner  having to surround the color bar  All is measured in lines of characters       param SMALLDRAW  in required    2 possibilities:      It is vector made of 4 elements giving  in portrait or landscape  the position    of the frame in which the drawing must go in  This position is given by coordinates    of the 2 corners of the frame: in the left bottom and the right up  It is always     for a postscript or a screen output  express in cm  the origin being the    left bottom corner       It is a vector made of 3 elements giving the number of column to be done in the    drawing  the number of line and the number of the case the number have to occupy     see matlab  For example  to do 6 drawing in 3 columns and 2 lines and occupy    the 4th case  small 2 3 4       keyword REMPLI   Force the drawing to occupy the biggest possible place defined by    SMALLDRAW without respect the rapport y on x       keyword YXASPECT   Force the rapport y on x to take the value RAPPORTYX YXASPECT     This keyword can be used in 2 cases:     1  YXASPECT 1 : force RAPPORTYX to be respected otherwise  Calibre take the      initiative to change it a little inthe case of the aspect rapport of SMALL      is too different of the one of SMALLDRAW       2  YXASPECT n : multiply by n the aspect rapport given by default       For example in plt  RAPPORTYX is calculated to the reference be orthonormal      to have a reference where the y axis is 2 time bigger than the x one  YXASPECT 2       keyword PORTRAIT          Force the page or the window to be in standing position        keyword LANDSCAPE          Force the page or the window on the screen to be in lenthened position        keyword _EXTRA   Used to pass your keywords      param POSFENETRE   It is a vector made of 4 elements containing the position of the frame    containing captions   the graph in normalized coordinates     Comment: to position the drawing  we have to do  p position POSFENETRE    after the call of calibre       param POSBAR   See POSFENTRE but for the color bar  Same comment to position the color bar   p position POSBAR      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr   11 12 98      version    Id: calibre pro 150 2006 08 09 10:12:54Z navarro           pro calibre  rapportyx  marge  margebar  smalldraw  posfenetre  posbar                  REMPLI   rempli  YXASPECT   yxaspect  PORTRAIT   portrait                  LANDSCAPE   lanscape  _extra   ex       compile_opt idl2  strictarrsubs    cm_4ps   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF        tempsun   systime 1            For key_performance      if keyword_set portrait  then key_portrait 1    if keyword_set landscape  then key_portrait 0    if keyword_set yxaspect  then begin       rapportyx rapportyx yxaspect        test2 0    endif else begin       yxaspect 1        test2 1     ENDELSE        mipgsz   min page_size  max   mapgsz      choice of Landscape or Portrait      if n_elements key_portrait  eq 0  then begin       if rapportyx ge 1 then key_portrait 1       if rapportyx lt 1 then key_portrait 0    endif     If smalldraw is count like in matlab      if n_elements smalldraw  EQ 3  then begin       if n_elements page_margins  EQ 0 then page_margins    1  1  1  1        smalldraw   long smalldraw        nbrecol   smalldraw 0        nbrelig   smalldraw 1        numero   smalldraw 2 1       numlig   numero nbrecol       numcol   numero numlig nbrecol       bas   mipgsz key_portrait mapgsz 1 key_portrait         cote   mapgsz key_portrait mipgsz 1 key_portrait         poscol   page_margins 0 findgen nbrecol 1 1 bas page_margins 0 page_margins 1 nbrecol        poslig   cote page_margins 3 findgen nbrelig 1 1 cote page_margins 2 page_margins 3 nbrelig        smalldraw    poscol numcol  poslig numlig 1  poscol numcol 1  poslig numlig     endif     determination of the size of characters  p charsize       nombre_de_mots_ds_titre   60      p charsize 1 smalldraw 2 smalldraw 0 d x_px_cm          nombre_de_mots_ds_titre   d y_ch_size     if  p charsize gt 1 then  p charsize 1     transfert of margin in cm      cm 1 d x_px_cm    marge 1  marge    d y_ch_size    p charsize   cm    margebar 1  margebar    d y_ch_size    p charsize   cm     definition of the part of the leaf where we draw      if key_portrait eq 0 then begin       big smalldraw 2 smalldraw 0        small smalldraw 3 smalldraw 1     endif else begin       small smalldraw 2 smalldraw 0        big smalldraw 3 smalldraw 1     endelse    if key_portrait eq 0 then       rapportmax 1 small marge 3 marge 1 big marge 2 marge 0       else rapportmax 1 small marge 2 marge 0 big marge 3 marge 1      If YXASPECT is not specified  we modify the value of RAPPORTYX    to it match better with the leaf s proportions       if rapportyx le rapportmax then begin       if test2 then begin          rap 1 rapportmax rapportyx          if rap ge 5  and rap lt 6  then rapportyx rapportyx 1 5          if rap ge 6  and rap lt 7  then rapportyx rapportyx 2           if rap ge 7  and rap lt 8  then rapportyx rapportyx 2 5          if rap ge 8  then rapportyx rapportyx 3        endif    endif else begin       if test2 then begin          rap 1 rapportmax rapportyx          if rap lt 1 5  and rap ge 1 6  then rapportyx rapportyx 1 5          if rap lt 1 6  and rap ge 1 7  then rapportyx rapportyx 2           if rap lt 1 7  and rap ge 1 8  then rapportyx rapportyx 2 5          if rap lt 1 8  then rapportyx rapportyx 3        endif    endelse     in the case where we do a Landscape:      if key_portrait eq 0 then begin              if keyword_set rempli  then begin          xs big          ys small       endif else begin          if rapportyx le rapportmax then begin             xs big             ys 1 big marge 0 marge 1 rapportyx marge 2 marge 3              if ys gt small then begin                xs 1 small marge 2 marge 3 rapportyx marge 0 marge 1                 ys small             endif          endif else begin             xs 1 small marge 2 marge 3 rapportyx marge 0 marge 1              ys small             if xs gt big then begin                xs big                ys 1 big marge 0 marge 1 rapportyx marge 2 marge 3              endif          endelse       endelse       xoff 1 small ys 2 smalldraw 1        yoff 1 big xs 2 xs mapgsz smalldraw 2        a 1 mapgsz yoff mapgsz       b 1 xoff mipgsz       c a 1 xs mapgsz       d b 1 ys mipgsz    endif       In the case where we do a portrait:      else begin              if keyword_set rempli  then begin          xs small          ys big       endif else begin          if rapportyx le rapportmax then begin             xs small             ys 1 small marge 0 marge 1 rapportyx marge 2 marge 3              if ys gt big then begin                xs 1 big marge 2 marge 3 rapportyx marge 0 marge 1                 ys big             endif          endif else begin             xs 1 big marge 2 marge 3 rapportyx marge 0 marge 1              ys big             if xs gt small then begin                xs small                ys 1 small marge 0 marge 1 rapportyx marge 2 marge 3              endif          endelse       endelse       xoff 1 small xs 2 smalldraw 0        yoff 1 big ys 2 smalldraw 1        a 1 xoff mipgsz       b 1 yoff mapgsz       c a 1 xs mipgsz       d b 1 ys mapgsz       xset   xoff       yset   yoff    endelse      bas mapgsz 1 key_portrait mipgsz key_portrait    cote mipgsz 1 key_portrait mapgsz key_portrait    posfenetre a b c d  marge 0 bas  marge 2 cote                              marge 1 bas marge 3 cote      posbar a b c d  margebar 0 bas  margebar 2 cote                          margebar 1 bas ys margebar 3 cote        if keyword_set key_performance  THEN print   temps calibre  systime 1 tempsun     IF NOT keyword_set key_forgetold  THEN BEGIN     updateold   ENDIF        return end"); 
     292a[290] = new Array("./ToBeReviewed/POSTSCRIPT/chcolps.html", "chcolps.pro", "", "PRO format_colortable_hexa  table     compile_opt idl2  strictarrsubs        tvlct  r  g  b   get      z   strarr 256      y   strarr 256      for k 0 255 do z k 00 strtrim string r k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2       for k 0 255 do z k 00 strtrim string g k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2       for k 0 255 do z k 00 strtrim string b k  format    Z 2      for k 0 255 do y k y k strmid z k strlen z k 2 2           table    strlowcase y   END   PRO build_table  tableout     Fabrique le bloc de colortable       compile_opt idl2  strictarrsubs        format_colortable_hexa  table       tableout   strarr 25       tableout 0     COLORTAB  def       END    PRO chcolps  n1  n2  file  PALIT1   palit1  PALIT2   palit2     Modifie les couleurs d un fichier postscript     Creation : G  Roullet 1999       recupere les palettes       compile_opt idl2  strictarrsubs       lct  n1     IF keyword_set palit1  THEN palit  palit1     tvlct  red  green  blue   get      lct  n2     IF keyword_set palit2  THEN palit  palit2     tvlct  red1  green1  blue1   get           filein   file     fileout   file new           openr  numin  filein   get_lun     openw  numout  fileout   get_lun     ligne         nl   0     colortab   0     Scan le fichier       WHILE NOT eof numin  DO BEGIN            readf  numin  ligne  format    A            nl   nl 1     Replace setrgbcolor statements             pos   strpos ligne   setrgbcolor            IF pos NE  1 THEN BEGIN                  r   round float strmid ligne  pos 18  6 255                  g   round float strmid ligne  pos 12  6 255                  b   round float strmid ligne  pos 6  6 255                            ind   where r EQ red AND g EQ green AND b EQ blue                  ind   ind 0                  IF ind 0  NE  1 THEN BEGIN                        r1   red1 ind 255                        g1   green1 ind 255                        b1   blue1 ind 255                        color   string r1  g1  b1  format    3 F5 3 : X                        strput  ligne  color  pos 18                 ENDIF ELSE BEGIN                        print   erreur ligne :  nl                       dist   abs r red abs g green abs b blue                        ind    where dist EQ min dist 0                        ind   ind 0                         print   je trouve              long r  g  b                         print   je remplace par    red ind  green ind  blue ind                        r1   red1 ind 255                        g1   green1 ind 255                        b1   blue1 ind 255                        color   string r1  g1  b1  format    3 F5 3 : X                        strput  ligne  color  pos 18                 ENDELSE            ENDIF                 Replace COLORTAB             pos   strpos ligne   COLORTAB            IF pos NE  1 THEN BEGIN                  build_table  table                 n   0                 colortab   1           ENDIF             IF colortab THEN BEGIN                 ligne   table n                  n   n 1                 IF n EQ 24 THEN colortab   0           ENDIF      Ecrit le fichier de sorti             printf  numout  ligne  format    A      ENDWHILE      close  numin     close  numout     free_lun  numin     free_lun  numout      spawn   gs  fileout  END  "); 
     293a[291] = new Array("./ToBeReviewed/POSTSCRIPT/ps.html", "ps.pro", "", ""); 
     294a[292] = new Array("./ToBeReviewed/STATISTICS/a_correlate2d.html", "a_correlate2d.pro", "", " FUNCTION Auto_Cov2d  X  Lag  Double   Double  zero2nan   zero2nan     compile_opt idl2  strictarrsubs      XDim   SIZE X   dimensions     nx   XDim 0     ny   XDim 1   Sample autocovariance function    Xmean   TOTAL X  Double   Double     1 nx ny       res   TOTAL   X 0:nx 1 lag 0  0:ny 1 lag 1    Xmean                       X lag 0 :nx 1  lag 1 :ny 1    Xmean                      Double   Double      if keyword_set zero2nan  AND res EQ 0 then res    values f_nan    RETURN  res  END        file_comments   This function computes the autocorrelation Px K L  or   autocovariance Rx K L  of a sample population X nx ny  as a   function of the lag  K L       categories   Statistics       param X  in required    An 2 dimension Array  nx ny       param LAG  in required    2 element vector  in the intervals  nx 2   nx 2 ny 2   ny 2    of type integer that specifies the absolute distance s  between    indexed elements of X       keyword COVARIANCE   If set to a non zero value  the sample autocovariance is computed       keyword DOUBLE   If set to a non zero value  computations are done in double precision arithmetic       history   28 2 2000 Sebastien Masson  smasson lodyc jussieu fr    Based on the A_CORRELATE procedure of IDL      version    Id: a_correlate2d pro 150 2006 08 09 10:12:54Z navarro         FUNCTION A_Correlate2d  X  Lag  Covariance   Covariance  Double   Double     compile_opt idl2  strictarrsubs     Compute the sample autocorrelation or autocovariance of  Xt  Xt l   as a function of the lag  l      ON_ERROR  2     XDim   SIZE X   dimensions     XNDim   SIZE X   n_dimensions     nx   XDim 0     ny   XDim 1     if XNDim NE 2 then       MESSAGE   X array must contain 2 dimensions   Check length     if nx lt 2 then       MESSAGE   first dimension of X array must contain 2 or more elements     if ny lt 2 then       MESSAGE   second dimension of X array must contain 2 or more elements     if n_elements Lag  NE 2 THEN       MESSAGE   Lag array must contain 2 elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    SIZE X   type  eq 5      if KEYWORD_SET Covariance  eq 0 then begin  Compute Autocorrelation        Auto   Auto_Cov2d X  ABS Lag  Double   Double                Auto_Cov2d X   0L  0L  Double   Double   zero2nan     endif else begin              Compute Autocovariance        Auto   Auto_Cov2d X  ABS Lag  Double   Double    n_elements X      endelse     if Double eq 0 then RETURN  FLOAT Auto  else       RETURN  Auto  END"); 
     295a[293] = new Array("./ToBeReviewed/STATISTICS/a_timecorrelate.html", "a_timecorrelate.pro", "", "FUNCTION TimeAuto_Cov  X  M  nT  Double   Double  zero2nan   zero2nan  Sample autocovariance function     compile_opt idl2  strictarrsubs      TimeDim   size X   n_dimensions     Xmean   TOTAL X  TimeDim  Double   Double    nT    if double then one   1 0d ELSE one   1 0    Xmean   Xmean replicate one  nT   M         case TimeDim of       1:res   TOTAL X 0:nT   M   1L    Xmean     X M:nT   1L    Xmean                        TimeDim  Double   Double        2:res   TOTAL X  0:nT   M   1L    Xmean                           X  M:nT   1L    Xmean                          TimeDim  Double   Double        3:res   TOTAL X    0:nT   M   1L    Xmean                           X    M:nT   1L    Xmean                          TimeDim  Double   Double        4:res   TOTAL X      0:nT   M   1L    Xmean                           X      M:nT   1L    Xmean                          TimeDim  Double   Double     ENDCASE    if keyword_set zero2nan  then begin       zero   where res EQ 0        if zero 0  NE  1 then res zero     values f_nan    endif    RETURN  res  END      file_comments   Same function as A_CORRELATE but accept array  until 4   dimension  for input and do the autocorrelation or the   autocovariance along the time dimension which must be the last   one of the input array      This function computes the autocorrelation Px L  or autocovariance   Rx L  of a sample population X as a function of the lag  L       categories   Statistics       param X  in required    An Array which last dimension is the time dimension os   size n       param LAG  in required    A scalar or n element vector  in the interval  n 2   n 2    of type integer that specifies the absolute distance s  between    indexed elements of X       keyword COVARIANCE   If set to a non zero value  the sample autocovariance   is computed       keyword DOUBLE   If set to a non zero value  computations are done in   double precision arithmetic       examples         Define an n element sample population            x    3 73  3 67  3 77  3 83  4 67  5 87  6 70  6 97  6 40  5 57            Compute the autocorrelation of X for LAG    3  0  1  3  4  8           lag    3  0  1  3  4  8            result   a_correlate x  lag            The result should be:            0 0146185  1 00000  0 810879  0 0146185   0 325279   0 151684       history   24 2 2000 Sebastien Masson  smasson lodyc jussieu fr      Based on the A_CORRELATE procedure of IDL   INTRODUCTION TO STATISTICAL TIME SERIES   Wayne A  Fuller   ISBN 0 471 28715 6      version    Id: a_timecorrelate pro 150 2006 08 09 10:12:54Z navarro        FUNCTION A_TimeCorrelate  X  Lag  COVARIANCE   Covariance  DOUBLE   Double     compile_opt idl2  strictarrsubs     Compute the sample autocorrelation or autocovariance of  Xt  Xt l   as a function of the lag  l      ON_ERROR  2     XDim   SIZE X   dimensions     XNDim   SIZE X   n_dimensions     nT   XDim XNDim 1                                   Check length     if nT lt 2 then       MESSAGE   Time axis of X array must contain 2 or more elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    SIZE X   type  eq 5          if n_elements lag  EQ 0 then lag   0    nLag   N_ELEMENTS Lag      if nLag eq 1 then Lag    Lag   Create a 1 element vector      case XNDim of       1:if Double eq 0 then Auto   FLTARR nLag  else Auto   DBLARR nLag        2:if Double eq 0 then Auto   FLTARR XDim 0  nLag  else Auto   DBLARR XDim 0  nLag        3:if Double eq 0 then Auto   FLTARR XDim 0  XDim 1  nLag          else Auto   DBLARR XDim 0  XDim 1  nLag        4:if Double eq 0 then Auto   FLTARR XDim 0  XDim 1  XDim 2  nLag          else Auto   DBLARR XDim 0  XDim 1  XDim 2  nLag     endcase     if KEYWORD_SET Covariance  eq 0 then begin  Compute Autocorrelation        for k   0  nLag 1 do          case XNDim of          1:Auto k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           2:Auto  k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           3:Auto    k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan           4:Auto      k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double                TimeAuto_Cov X  0L  nT  Double   Double   zero2nan        endcase    endif else begin              Compute Autocovariance        for k   0  nLag 1 do           case XNDim of          1:Auto k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          2:Auto  k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          3:Auto    k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT          4:Auto      k    TimeAuto_Cov X  ABS Lag k  nT  Double   Double    nT       endcase    endelse     if Double eq 0 then RETURN  FLOAT Auto  else       RETURN  Auto  END"); 
     296a[294] = new Array("./ToBeReviewed/STATISTICS/c_timecorrelate.html", "c_timecorrelate.pro", "", "FUNCTION TimeCross_Cov  Xd  Yd  M  nT  Ndim  Double   Double  ZERO2NAN   zero2nan    Sample cross covariance function     compile_opt hidden      case Ndim OF       1:res   TOTAL Xd 0:nT   M   1L    Yd M:nT   1L                          Double   Double        2:res   TOTAL Xd  0:nT   M   1L    Yd  M:nT   1L                          Ndim  Double   Double        3:res   TOTAL Xd    0:nT   M   1L    Yd    M:nT   1L                          Ndim  Double   Double        4:res   TOTAL Xd      0:nT   M   1L    Yd      M:nT   1L                          Ndim  Double   Double     ENDCASE    if keyword_set zero2nan  then begin       zero   where res EQ 0        if zero 0  NE  1 then res zero     values f_nan    ENDIF      RETURN  res  END      file_comments   This function computes the  time cross correlation  Pxy L  or   the  time cross covariance  between 2 arrays  this is some   kind of c_correlate but for multidimenstionals arrays  as a   function of the lag  L       categories   Statistics       param X  in required    An Array which last dimension is the time dimension of   size n  float or double       param Y  in required    An Array which last dimension is the time dimension of   size n  float or double       param LAG  in required    A scalar or n element vector  in the interval  n 2   n 2    of type integer that specifies the absolute distance s  between   indexed elements of X       keyword COVARIANCE   If set to a non zero value  the sample cross    covariance is computed       keyword DOUBLE   If set to a non zero value  computations are done in   double precision arithmetic       examples            Define two n element sample populations            x    3 73  3 67  3 77  3 83  4 67  5 87  6 70  6 97  6 40  5 57            y    2 31  2 76  3 02  3 13  3 72  3 88  3 97  4 39  4 34  3 95            Compute the cross correlation of X and Y for LAG    5  0  1  5  6  7           lag    5  0  1  5  6  7            result   c_timecorrelate x  y  lag            The result should be:            0 428246  0 914755  0 674547   0 405140   0 403100   0 339685       history           01 03 2000 Sebastien Masson  smasson lodyc jussieu fr          Based on the C_CORRELATE procedure of IDL           August 2003 Sebastien Masson          update according to the update made in C_CORRELATE by         W  Biagiotti and available in IDL 5 5           INTRODUCTION TO STATISTICAL TIME SERIES         Wayne A  Fuller         ISBN 0 471 28715 6      version    Id: c_timecorrelate pro 150 2006 08 09 10:12:54Z navarro       FUNCTION C_Timecorrelate  X  Y  Lag  Covariance   Covariance  Double   Double   Compute the sample cross correlation or cross covariance of   Xt  Xt l  and  Yt  Yt l  as a function of the lag  l      ON_ERROR  2     xsize   SIZE X     ysize   SIZE Y     nt   float xsize xsize 0     NDim   xsize 0      if total xsize 0:xsize 0  NE ysize 0:ysize 0  NE 0 then       MESSAGE   X and Y arrays must have the same size and the same dimensions    Check length     if nt lt 2 then       MESSAGE   Time dimension of X and Y arrays must contain 2 or more elements       If the DOUBLE keyword is not set then the internal precision and  result are identical to the type of input     if N_ELEMENTS Double  eq 0 then       Double    Xsize Xsize 0 1  eq 5 or ysize ysize 0 1  eq 5      if n_elements lag  EQ 0 then lag   0    nLag   N_ELEMENTS Lag    Deviations    if double then one   1 0d ELSE one   1 0    Ndim   size X   n_dimensions     Xd   TOTAL X  Ndim  Double   Double    nT    Xd   X   Xd replicate one   nT     Yd   TOTAL Y  Ndim  Double   Double    nT    Yd   Y   Yd replicate one   nT      if nLag eq 1 then Lag    Lag   Create a 1 element vector      case NDim of       1:if Double eq 0 then  Cross   FLTARR nLag  else  Cross   DBLARR nLag        2:if Double eq 0 then  Cross   FLTARR Xsize 1  nLag  else  Cross   DBLARR Xsize 1  nLag        3:if Double eq 0 then  Cross   FLTARR Xsize 1  Xsize 2  nLag          else  Cross   DBLARR Xsize 1  Xsize 2  nLag        4:if Double eq 0 then  Cross   FLTARR Xsize 1  Xsize 2  Xsize 3  nLag          else  Cross   DBLARR Xsize 1  Xsize 2  Xsize 3  nLag     endcase     if KEYWORD_SET Covariance  eq 0 then begin  Compute Cross  Crossation        for k   0  nLag 1 do begin          if Lag k  ge 0 then BEGIN              case NDim of                1: Cross k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 2: Cross  k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 3: Cross    k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                 4: Cross      k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double                endcase          ENDIF else BEGIN              case NDim of                1: Cross k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 2: Cross  k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 3: Cross    k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double                 4: Cross      k    TimeCross_Cov Yd  Xd  ABS Lag k  nT  Ndim  Double   Double               endcase          ENDELSE         ENDFOR        div   sqrt TimeCross_Cov Xd  Xd  0L  nT  Ndim  Double   Double   zero2nan                        TimeCross_Cov Yd  Yd  0L  nT  Ndim  Double   Double   zero2nan         Cross   temporary Cross temporary div replicate one  nLag     endif else begin              Compute Cross Covariance        for k   0  nLag 1 do begin          if Lag k  ge 0 then BEGIN             case NDim of                1: Cross k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                2: Cross  k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                3: Cross    k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT                4: Cross      k    TimeCross_Cov Xd  Yd  Lag k  nT  Ndim  Double   Double    nT             ENDCASE          ENDIF else BEGIN              case NDim of                1: Cross k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                2: Cross  k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                3: Cross    k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT                4: Cross      k    TimeCross_Cov yd  xd  ABS Lag k  nT  Ndim  Double   Double    nT             ENDCASE          ENDELSE        endfor    endelse     if Double eq 0 then RETURN  FLOAT Cross  else RETURN   Cross  END   "); 
     297a[295] = new Array("./ToBeReviewed/STRING/chkeywd.html", "chkeywd.pro", "", "             file_comments   In a string containing an order to executewith EXECUTE by example     We change the value of one of keywords    More generally  in a string  we look for the caracter chain:   keywdname      and we change the value of       categories   string  keywords         param STRINGIN  in required    it is a string      param KEYWDNAME  in required    it is a string designating the name of keyword to look for       param KEYWDVALUE  in required     The new value of the keyword to considerate in STRINGIN      keyword SEPARATOR   To look for the keyword  we look for the first sign   which follow    the position of keywdname  By default  we substitute the string    before the comma  With the keyword SEPARATOR we can modify the cut    of the string  SEPARATOR give a caractere before the one we have to    look for the comma which delimit the keyword in the string     see examples       keyword AFTER   To look for the keyword  we look for the first sign   which follow    the position of keywdname  By default  we substitute the string    before the comma  With the keyword AFTER we can modify the cut    of the string  AFTER give a caractere after the one we have to    look for the comma which delimit the keyword in the string     see examples       returns    stringout stringin modified if keywdname has been found in stringin      uses    common pro      restrictions   If keywdvalue is an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays  The input keyword must not contain Complex floatings  structure     Double precision complex  Pointer  Object reference  Unsigned Integer     Unsigned Longword Integer  64 bit Integer or Unsigned 64 bit Integer          examples       IDL  b ok 111  year 1997 1998 1999  age_capitaine 35      IDL  print  b     ok 111  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b ok c est bon      ok c est bon  year 1997 1998 1999  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  print  chkeywd b YEAR indgen 5 sep after      ok 111  year 0 1 2 3 4  age_capitaine 35     IDL  b ok 111   year   age_capitaine      IDL  print  chkeywd b year c est bon      ok 111  year c est bon   age_capitaine      history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999                        24 11 1999: adaptation for keywords starting by         version    Id: chkeywd pro 142 2006 07 21 12:47:49Z navarro             FUNCTION chkeywd  stringin  keywdname  keywdvalue  SEPARATOR   separator  AFTER   after     compile_opt idl2  strictarrsubs       stringout   stringin    poskeywd   strpos strlowcase stringout  strlowcase keywdname     if poskeywd EQ  1 then return  stringout    while poskeywd NE  1 do BEGIN   change a keyword starting by  toto       if strmid stringout poskeywd 1 1  EQ   then BEGIN          ajoute   keywdname tostr keywdvalue           stringout   strmid stringout  0  poskeywd 1 ajoute strmid stringout poskeywd strlen keywdname             poskeywd   poskeywd strlen ajoute           poskeywd   strpos stringout  keywdname  poskeywd        ENDIF ELSE BEGIN    change a keyword sarting by toto           posegal   strpos stringout    poskeywd           if posegal EQ  1 then return  stringout           if NOT keyword_set separator  then separator              posvirgule   strpos stringout  separator  posegal 1           if keyword_set after  then posvirgule   strpos stringout    posvirgule 1             ELSE posvirgule   rstrpos stringout    posvirgule 1           if posvirgule EQ  1 then posvirgule   strlen stringout             stringout   strmid stringout  0  posegal 1 tostr keywdvalue strmid stringout  posvirgule             poskeywd   strpos stringout  keywdname  posvirgule 1        ENDELSE     endwhile     return   stringout end"); 
     298a[296] = new Array("./ToBeReviewed/STRING/delchr.html", "delchr.pro", "", "         file_comments   Delete all occurrences of a character from a text string        categories      param OLD  in required    original text string        param C  in required    character to delete       keyword HELP      returns   new   resulting string        history         R  Sterner   5 Jul  1988          Johns Hopkins Applied Physics Lab          RES 11 Sep  1989   converted to SUN          R  Sterner  27 Jan  1993   dropped reference to array      Copyright  C  1988  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: delchr pro 142 2006 07 21 12:47:49Z navarro            FUNCTION DELCHR  OLD  C  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 2  or keyword_set hlp  then begin    print  Delete all occurrences of a character from a text string     print  new   delchr old  char     print    old   original text string      in     print    char   character to delete      in     print    new   resulting string          out     return   1  endif    B   BYTE OLD      convert string to a byte array   CB   BYTE C      convert char to byte   w   where b ne cb 0   if w 0  eq  1 then return        Nothing left   return  string b w      Return new string   END"); 
     299a[297] = new Array("./ToBeReviewed/STRING/getfile.html", "getfile.pro", "", "         file_comments   Read a text file into a string array       param filein  in required    text file name        Keyword ERROR    err  error flag: 0 ok  1 file not opened    2 no lines in file                keyword QUIET    means give no error message                keyword LINES    n  Number of lines to read  def all    Much faster if number of lines is known    Automatic for IDL 5 6 or later                keyword FIND    search te file in the all  path directories  use   find pro       keyword HELP       returns       history         R  Sterner  20 Mar  1990         R  Sterner  1999 Apr 14   Added LINES n keyword          R  Sterner  2003 Aug 29   Automatic lines if IDL 5 6          R  Sterner  2003 Sep 02   Check if file exists first          R  Sterner  2003 Sep 04   Fixed error in number of lines in file          R  Sterner  2003 Oct 10   Fixed error when no lines          R  Sterner  2004 Jan 27   Fixed to work in IDL as old as vers 4            S  Masson  smasson lodyc jussieu fr  4 Feb 2002         search te file in the all  path directories  use find pro          when using  find keyword  Use spawn   cat  for unix os      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: getfile pro 142 2006 07 21 12:47:49Z navarro            function getfile  filein  error err  help hlp  quiet quiet  lines lines  find   find     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Read a text file into a string array     print  s   getfile f     print    f   text file name       in     print    s   string array         out     print  Keywords:     print    ERROR err  error flag: 0 ok  1 file not opened     print      2 no lines in file     print     QUIET means give no error message     print    LINES n  Number of lines to read  def all     print      Much faster if number of lines is known     print      Automatic for IDL 5 6 or later     return   1  endif           if keyword_set find  then begin           file   find filein            file   file 0            if file EQ  NOT FOUND  then begin             print    Error in getfile: File  filein  not fouond              return   1           endif         ENDIF ELSE file   filein         if  version os_family EQ  unix  then begin           spawn   cat  file   res           if res 0  NE   then return  res ELSE return            endif                  if  version release 0  ge 5 5  then begin           f   call_function file_search  file  count   c   endif else begin    f   findfile file count c   endelse  if c eq 0 then begin    err   1    return   endif    if n_elements line  eq 0 and  version release 0  ge 5 6  then begin    lines   file_lines file     if lines eq 0 then begin      if not keyword_set quiet  then print  No lines in file       err   2      return 1    endif    minlines   0  endif else minlines 1    get_lun  lun  on_ioerror  err  openr  lun  file    if n_elements lines  ne 0 then begin    s   strarr lines     readf lun s  endif else begin    s          t        while not eof lun  do begin      readf  lun  t      s    s t     endwhile  endelse    close  lun  free_lun  lun  if n_elements s  eq minlines then begin    if not keyword_set quiet  then print  No lines in file     err   2    return 1  endif  if minlines eq 1 then s s 1:     err   0  return  s   err: if  err eq  168 then begin    if not keyword_set quiet  then print  Non standard text file format     free_lun  lun    return  s  endif  if not keyword_set quiet  then print       Error in getfile: File  file  not opened   free_lun  lun  err   1  return   1    end"); 
     300a[298] = new Array("./ToBeReviewed/STRING/getwrd.html", "getwrd.pro", "", "         file_comments   Return the n th word from a text string        categories      param TXTSTR  in required    text string to extract from    The first element is used if txt is an array       param NTH  in required    word number to get  first   0   def       param MTH  in required    optional last word number to get       keyword LOCATION     l   Return word n string location                keyword DELIMITER     d  Set word delimiter  def   space   tab                keyword LAST   means n is offset from last word   So n 0 gives   last word  n 1 gives next to last      If n 2 and m 0 then last 3 words are returned       keyword NOTRIM   suppresses whitespace trimming on ends        keyword NWORDS     n  Returns number of words in string        returns wrd   returned word or words       uses   getwrd_com       restrictions   If a NULL string is given  txt  then the last string   given is used   This saves finding the words again    If m   n wrd will be a string of words from word n to   word m   If no m is given wrd will be a single word    n n wrd will be a string of words from word n to     print       word m   If no m is given wrd will be a single word     print       n 0  Smaller of in and im    im   im   0   to zero     if  in gt lst  and  im gt lst  then return    Out of range     in   in   lst  Larger of in and im    im   im   lst   to be last     ll   loc in  Nth word start     return  strtrim strmid txtstr0 ll loc im loc in len im  2    endif    N   ABS NTH  Allow nth 0   IF N GT NWDS 1 THEN RETURN  out of range  null   ll   loc n  N th word position   IF NTH LT 0 THEN GOTO  NEG  Handle nth 0   IF MTH GT NWDS 1 THEN MTH   NWDS 1  Words to end     if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll LOC MTH LOC NTH LEN MTH  2    endelse   NEG: if keyword_set notrim  then begin    RETURN  STRMID TXTSTR0 ll 9999   endif else begin    RETURN  strtrim STRMID TXTSTR0 ll 9999  2   endelse    END"); 
     301a[299] = new Array("./ToBeReviewed/STRING/isnumber.html", "isnumber.pro", "", "         file_comments   Determine if a text string is a valid number       categories      param TXT0  in required    text string to test       param X  in required       keyword HELP      returns         x   optionaly returned numeric value if valid            i   test flag:                                               0: not a number              1: txt is a long integer              2: txt is a float               1: first word of txt is a long integer               2: first word of txt is a float        history         R  Sterner   15 Oct  1986          Johns Hopkins Applied Physics Lab          R  Sterner  12 Mar  1990   upgraded          Richard Garrett  14 June  1992   fixed bug in returned float value          R  Sterner  1999 Nov 30   Fixed a bug found by Kristian Kjaer  Denmark     Copyright  C  1986  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: isnumber pro 142 2006 07 21 12:47:49Z navarro            function isnumber  txt0  x  help hlp     compile_opt idl2  strictarrsubs     if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Determine if a text string is a valid number     print  i   isnumber txt   x     print    txt   text string to test                       in     print    x   optionaly returned numeric value if valid   out     print    i   test flag:                                  out     print        0: not a number     print        1: txt is a long integer     print        2: txt is a float     print         1: first word of txt is a long integer     print         2: first word of txt is a float     return   1  endif    txt   strtrim txt0 2  trim blanks   x   0  define X     if txt eq   then return  0  null string not a number     sn   1  if nwrds txt  gt 1 then begin  get first word if more than one     sn    1    txt   getwrd txt 0   endif      f_flag   0  Floating flag   b   byte txt  Convert to byte array   if b 0  eq 45 then b b 1:  Drop leading       Kristian Kjaer  if b 0  eq 43 then b b 1:  Drop leading       bug fix   w   where b eq 43  cnt  Look for    if cnt gt 1 then return  0  Alow only 1   t   delchr txt  Drop it   w   where b eq 45  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   t   delchr t  Drop it   w   where b eq 46  cnt  Look for    if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If one then floating   t   delchr t  Drop it   w   where b eq 101  cnt  Look for  e   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t e  Drop it   w   where b eq 69  cnt  Look for  E   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t E  Drop it   w   where b eq 100  cnt  Look for  d   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t d  Drop it   w   where b eq 68  cnt  Look for  D   if cnt gt 1 then return  0  Allow only 1   if cnt eq 1 then f_flag   1  If 1 then assume float   t   delchr t D  Drop it     Allow only one  e   E   d  or  D      if total b eq 101 b eq 69 b eq 100 b eq 68  gt 1 then return 0  b   byte t     Allow no alphabetic characters     if total b ge 65  and  b le 122  ne 0 then return  0    c   strmid t 0 1   if  c lt  0  or  c gt  9  then return  0    First char not a digit     x   txt   0 0       Convert to a float   if f_flag eq 1 then return  2 sn       Was floating   if x eq long x  then begin    x   long x     return  sn  endif else begin    return  2 sn  endelse    end"); 
     302a[300] = new Array("./ToBeReviewed/STRING/lenstr.html", "lenstr.pro", "", "    ROUTINE:         lenstr   USEAGE:          result lenstr str      input:    str             a single string or string array       output:    result          length of the string s  in normalized units                    the number of elements of RESULT matches the number of                     elements of STRING       procedure:                    This function returns the physical length of the                    string on the output device  not the number of                    characters   This is done by first switching to  X                     and writing the string s  with XYOUTS in graphics                    mode 5  which disables display to the screen but                    does not interfere with operation of XYOUTS   The                    WIDTH keyword parameter of XYOUTS is used to                    retrieve the physical length of the string s       author:  Paul Ricchiazzi                            7apr93             Institute for Computational Earth System Science             University of California  Santa Barbara      todo seb       function lenstr str     compile_opt idl2  strictarrsubs      dsave d name     thisOS    VERSION OS_FAMILY    thisOS   STRMID thisOS  0  3     thisOS   STRUPCASE thisOS     CASE thisOS of        MAC : SET_PLOT  thisOS        WIN : SET_PLOT  thisOS       ELSE: SET_PLOT   X     ENDCASE     p BACKGROUND d n_colors 1    255     p color 0    if  d n_colors gt 256 then  p background ffffff x     device get_graphics oldg set_graphics 5    if keyword_set charsize  eq 0 then charsize 1    nn n_elements str      case nn of        0:w 0        1:xyouts 0 0 device str width w        else:begin          w fltarr nn           for i 0 nn 1 do begin             xyouts 0 0 device str i width ww             w i ww          endfor       end    endcase     fac1 float d x_ch_size d x_vsize   ratio of char width to device1 width     device set_graphics oldg    set_plot dsave    IF dsave EQ  X  OR dsave EQ  MAC  OR dsave EQ  WIN  then BEGIN        p BACKGROUND d n_colors 1    255        p color 0       if  d n_colors gt 256 then  p background ffffff x    ENDIF     fac2 float d x_ch_size d x_vsize   ratio of char width to device2 width     return w fac2 fac1             string width adjusted for device width end "); 
     303a[301] = new Array("./ToBeReviewed/STRING/nwrds.html", "nwrds.pro", "", "         file_comments   Return the number of words in the given text string        categories      param TXTSTR     text string to examine       keyword DELIMITER     d   Set delimiter character  def   space        keyword HELP      returns   n   number of words found        restrictions   See also getwrd        history         R  Sterner   7 Feb  1985          Johns Hopkins University Applied Physics Laboratory          RES 4 Sep  1989   converted to SUN      Copyright  C  1985  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: nwrds pro 142 2006 07 21 12:47:49Z navarro              function nwrds txtstr  help hlp  delimiter delim     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Return the number of words in the given text string     print  n   nwrds txt     print    txt   text string to examine              in     print    n   number of words found                 out     print  Keywords:     print    DELIMITER   d   Set delimiter character  def   space     print  Notes: See also getwrd     return   1  endif    if strlen txtstr  eq 0 then return 0  A null string has 0 words   ddel       Default word delimiter is a space   if n_elements delim  ne 0 then ddel   delim   Use given word delimiter   tst    byte ddel 0  Delimiter as a byte value          tb   byte txtstr                                String to bytes          if ddel eq     then begin                       Check for tabs            w   where tb eq 9B  cnt                       Yes            if cnt gt 0 then tb w    32B                  Convert any to space          endif  x   tb ne tst  Locate words   x    0 x 0  Pad ends with delimiters     y    x shift x 1  eq 1  Look for word beginnings     n   fix total y  Count word beginnings     return  n    end"); 
     304a[302] = new Array("./ToBeReviewed/STRING/putfile.html", "putfile.pro", "", "         file_comments   Write a text file from a string array        categories     INPUTS:    param FILE  in required      text file name       param S  in required      string array       keyword ERROR    err  error flag: 0 ok  1 invalid string array        history         R  Sterner  20 Mar  1990         R  Sterner   4 Nov  1992   allowed scalar strings      Copyright  C  1990  Johns Hopkins University Applied Physics Laboratory   This software may be used  copied  or redistributed as long as it is not   sold and this copyright notice is reproduced on each copy made   This   routine is provided as is without any express or implied warranties   whatsoever   Other limitations apply as described in the file disclaimer txt       version    Id: putfile pro 142 2006 07 21 12:47:49Z navarro            pro putfile  file  s  error err  help hlp     compile_opt idl2  strictarrsubs      if  n_params 0  lt 1  or keyword_set hlp  then begin    print  Write a text file from a string array     print  putfile  f  s     print    f   text file name       in     print    s   string array         in     print  Keywords:     print    ERROR err  error flag: 0 ok  1 invalid string array     return  endif           if lmgr demo  then begin            print   you are in Demo mode  It is impossible to write a file             return         endif     if size s   type  ne 7 then begin    print  Error in putfile: argument must be a string array     err   1    return  endif    get_lun  lun  openw  lun  file    for i   0  n_elements s 1 do begin    t   s i     if t eq   then t          printf  lun  t  endfor    close  lun  free_lun  lun  err   0  return    end"); 
     305a[303] = new Array("./ToBeReviewed/STRING/str_size.html", "str_size.pro", "", "       file_comments   The purpose of this function is to return the proper   character size to make a specified string a specifed   width in a window  The width is specified in normalized   coordinates  The function is extremely useful for sizing   strings and labels in resizeable graphics windows       categories   Graphics Programs  Widgets       param STRING  in required    This is the string that you want to make a specifed   target size or width       param TARGETWIDTH  in optional    This is the target width of the string in normalized   coordinates in the current graphics window  The character   size of the string  returned as thisCharSize  will be   calculated to get the string width as close as possible to   the target width  The default is 0 25       keyword INITSIZE     This is the initial size of the string  Default is 1 0       keyword STEP   This is the amount the string size will change in each step   of the interative process of calculating the string size    The default value is 0 05       returns    thisCharSize  This is the size the specified string should be set   to if you want to produce output of the specified target   width  The value is in standard character size units where   1 0 is the standard character size       examples   To make the string  Happy Holidays  take up 30  of the width of   the current graphics window  type this:       XYOUTS  0 5  0 5  ALIGN 0 5   Happy Holidays        CHARSIZE STR_SIZE Happy Holidays  0 3       history   Written by: David Fanning  17 DEC 96    Added a scaling factor to take into account the aspect ratio   of the window in determing the character size  28 Oct 97  DWF      version    Id: str_size pro 142 2006 07 21 12:47:49Z navarro        FUNCTION STR_SIZE  string  targetWidth  INITSIZE initsize  STEP step     compile_opt idl2  strictarrsubs    ON_ERROR  1       Check positional parameters   np   N_PARAMS  CASE np OF    0: MESSAGE   One string parameter is required     1: targetWidth   0 25    ELSE: ENDCASE       Check keywords  Assign default values   IF N_ELEMENTS step  EQ 0 THEN step   0 05 IF N_ELEMENTS initsize  EQ 0 THEN initsize   1 0       Calculate a trial width   size   initsize XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth          CHARSIZE size   NORMAL       Size is perfect   IF thisWidth EQ targetWidth THEN RETURN  size   Float D Y_Size D X_Size       Initial size is too big   IF thisWidth GT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth LE targetWidth    RETURN  size   Float D Y_Size D X_Size ENDIF       Initial size is too small   IF thisWidth LT targetWidth THEN BEGIN    REPEAT BEGIN      XYOUTS  0 5  0 5  ALIGN 0 5  string  WIDTH thisWidth            CHARSIZE size   NORMAL       size   size   step    ENDREP UNTIL thisWidth GT targetWidth    size   size   step   Need a value slightly smaller than target     RETURN  size   Float D Y_Size D X_Size ENDIF  END"); 
     306a[304] = new Array("./ToBeReviewed/STRING/string2struct.html", "string2struct.pro", "", "    This is a really  really cool way to turn keywords into   a structure    function too_cool _extra extra     compile_opt idl2  strictarrsubs   return extra end         file_comments   Takes an input string set up as keywords and returns an anonymous structure    This is particularly useful for taking keywords entered by a user in a text   field and passing then to other routines       categories   Utility      param STRVAL  IN REQUIRED    String set up as keywords  Keywords require a little special treatment  Such as   plot findgen 100 _extra stringToStructure title testing       RETURNS    This function returns the string as an anonymous structure  If an   error was found then this function returns a structure with a null field       examples         The code below creates a widget that uses this routine          pro tPlot event         widget_control event top get_uvalue field         widget_control field get_value strVal         extra   stringToStructure strVal          plot findgen 100 _extra extra         wshow         return         end           pro testWid          enter any keyword to plot and see how it works         base   widget_base col          field   cw_field base title test value ax 0 string          void   widget_button base value plot event_pro tPlot          widget_control base realize set_uvalue field         xmanager testWid base no_block         return         end      history         Written by:         RLK  Ronn Kling Consulting          ronn rlkling com         www rlkling com                 May  1999      version    Id: string2struct pro 142 2006 07 21 12:47:49Z navarro        function string2struct strVal     compile_opt idl2  strictarrsubs   r   execute extra   too_cool    strVal 0     if r   0 then user did not enter keywords correctly so  return a structure with a null field  if r eq 0 then begin   print Error in input string    return null:0  endif return extra end "); 
     307a[305] = new Array("./ToBeReviewed/STRING/strkeywd.html", "strkeywd.pro", "", "             file_comments   Translate a sturcture in a string able to be used to specify keywords    in the calling of a function when we use EXECUTE  see example       categories        param STRUCT   a structure      returns   a string composed like following:   For each element of the structure  we write a part of the string as:             name_of_the_element content_of_the_element       restrictions   If an element of the structure contain an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays  The input keyword must not contain Complex floatings  structure     Double precision complex  Pointer  Object reference  Unsigned Integer     Unsigned Longword Integer  64 bit Integer or Unsigned 64 bit Integer       examples   We create a structure         IDL  b get_extra ok 111  year 1997 1998 1999  age_capitaine 35          IDL  help  b struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3    We put this structure as a string         IDL  a strkeywd b          IDL  print  a         AGE_CAPITAINE 35  OK 111  YEAR 1997 1998 1999    Now we can use the string a to pass keywords in a function thanks to execute          IDL  test execute c get_extra a          IDL  help  c struct           Structure   3 tags  length 10  refs 1:            AGE_CAPITAINE   INT             35            OK              INT            111            YEAR            INT       Array 3       history   Sebastien Masson  smasson lodyc jussieu fr                         11 10 1999      version    Id: strkeywd pro 142 2006 07 21 12:47:49Z navarro             FUNCTION strkeywd  struct     compile_opt idl2  strictarrsubs      if size struct   type  NE 8 then return        tname   tag_names struct     if n_elements tname  EQ 0 then return         on s occupe du premier element      res   strlowcase tname 0 tostr struct 0     if n_elements tname  EQ 1 then return   res     on s occupe des autres elements      for n   1 n_elements tname 1 do res   res   strlowcase tname n tostr struct n       return   res end"); 
     308a[306] = new Array("./ToBeReviewed/STRING/strrepl.html", "strrepl.pro", "", "         file_comments    replace one  or more  character s string s  in a string      categories   string routines      param STR  in required    the string to be changed      param RCHAR  in required    replacement character string      returns   another string      restrictions    Known shortcoming: if index is an array  it must contain all   valid elements  only the first entry is checked       examples            Convert one letter into upper case            abc    abcdefghijklmnopqrstuvwxyz           print strrepl abc strpos abc m M               prints  abcdefghijklMnopqrstuvwxyz                 Use with strwhere function          a    abcabcabc           print strrepl a strwhere a a               prints   bc bc bc bc bc            IDL  print  strrepl a bc eeee          a eeee a eeee a eeee          IDL  print  strrepl a b 0000          a0000ca0000ca0000         IDL  print  strrepl a toto 0000          abcabcabc      history          mgs  02 Jun 1998: VERSION 1 00          sebastien Masson  smlod ipsl jussieu fr       version    Id: strrepl pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strrepl      function strrepl str agument1 rchar     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return                                        convert strign and replace character to byte    BStr   byte str     new   byte rchar     if size agument1   type  EQ 7 then begin       old   byte agument1        index   strpos str  agument1        pos   index       while strpos str  agument1  pos 1  NE  1 do BEGIN          pos   strpos str  agument1  pos 1           index    index  pos        ENDWHILE   make sure index is in range       if  index 0  lt 0 OR index 0  ge n_elements BStr  THEN return Str    ENDIF ELSE BEGIN       index   agument1       if  index 0  lt 0 OR index 0  ge n_elements BStr  then return Str       old   BStr index 0     ENDELSE                                   replace indexed characters in string    nelenew   n_elements new     neleold   n_elements old     nindex   n_elements index     if nelenew neleold NE 1 then begin       if index 0  EQ 0 then          BStr    NEW   BStr index 0 neleold: n_elements BStr 1    ELSE          BStr    BStr 0:index 0 1  NEW   BStr index 0 neleold: n_elements BStr 1          if nindex EQ 1 then return string BStr        if nindex GT 2 then          for i   1  nindex 2 do          BStr    BStr 0:index i i nelenew neleold 1  NEW                    BStr index i i nelenew neleold neleold: n_elements BStr 1          BStr    BStr 0:index n_elements index 1 nindex 1 nelenew neleold 1  NEW      ENDIF ELSE BStr index    NEW                                   return result as string    return string BStr      end"); 
     309a[307] = new Array("./ToBeReviewed/STRING/strright.html", "strright.pro", "", "         file_comments   return right subportion from a string      categories   string handling        param S  in required    the string to be searched      param LASTN  in required    the number of characters to be returned  Default   is 1  If NLAST is ge strlen STRING  the complete string   is returned       returns   The portion of LASTN characters of S counted from the back       examples   if  strright path  ne   then path   path          history          mgs  19 Nov 1997: VERSION 1 00      version    Id: strright pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1997  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strright      function strright s lastn     compile_opt idl2  strictarrsubs         on_error 2     return to caller       if  n_elements s  le 0  then return 1L       l   strlen s        if  n_elements lastn  le 0  then lastn   1     if lastn gt l then lastn   l       result   strmid s l lastn l        return result end"); 
     310a[308] = new Array("./ToBeReviewed/STRING/strsci.html", "strsci.pro", "", "         file_comments   Given a number  returns a string of that          B   number in scientific notation format   e g  A x 10         categories   String Utilities      param DATA  in required    A floating point or integer number to be   converted into a power of 10       keyword FORMAT   The format specification used in the string   conversion for the mantissa  i e  the    A  of  A x 10 B   Default is  f12 2         keyword POT_ONLY   Will return only the  power of 10  part of the   string  i e  the  10 B   Default is to return   the entire string  e g   A x 10 B         keyword MANTISSA_ONLY   return only mantissa of the string      keyword SHORT   return 10 0 as  1  and 10 1 as  10       keyword TRIM   don t insert blanks  i e  return Ax10 B       restrictions   This function does not  evaluate  the format statement thoroughly   which can result in somewhat quirky strings  Example:   print strsci 9 999  results in  10 0x10 0 instead of  1 0x10 1      Need a better symbol than the  x  for the multiplier       examples          Result   STRSCI  2000000  format i1             print  result                                                                                6                prints 2 x 10 u6 n  which gets plotted as 2 x 10                     Result   STRSCI   0 0001            print  result                                                                       4                prints  1 00 x 10 u 4 n  which gets plotted as 1 00 x 10            Result   STRSCI  0d0  format f13 8             print  result                           prints  0 00000000         history          bmy  28 May 1998: VERSION 1 00            B               now returns string of the form A x 10          mgs  29 May 1998:               bug fix: now allows negative numbers               keyword MANTISSA_ONLY added               default format changed to f12 2          bmy  02 Jun 1998:               renamed to STRSCI  STRing SCIentific notation           mgs  03 Jun 1998:               added TRIM keyword          mgs  22 Sep 1998:               added SHORT keyword               modified handling of TRIM keyword          mgs  24 Sep 1998:               bug fix with SHORT flag          bmy   mgs  02 Jun 1999:               now can handle DATA 0 0 correctly               updated comments          mgs  03 Jun 1999:                can now also handle values lt 1                 and doesn t choke on arrays      version    Id: strsci pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1998  1999 Bob Yantosca and Martin Schultz     Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to bmy io harvard edu   or mgs io harvard edu with subject  IDL routine strsci      function StrSci  Data  Format Format  POT_Only POT_Only                 MANTISSA_ONLY MANTISSA_ONLY SHORT SHORT TRIM TRIM     compile_opt idl2  strictarrsubs              Error checking   Keyword settings          on_error  2     if   n_elements  Data   eq 0   then begin       return       endif     if   not Keyword_Set  Format     then Format      f12 2      POT_Only        keyword_set  POT_Only           MANTISSA_Only   keyword_set  MANTISSA_Only      Short           Keyword_Set  Short              Trim            Keyword_Set  Trim                NDat   n_elements Data     Result   strarr NDat      for i 0 NDat 1 do begin                 If ABS  DATA     0 then we can proceed to take the common log          For DATA   0  place a   sign in front of the number               if   Abs  Data i    ne 0 0   then begin                take the common log and store in LOG10DATA          Log10Data   ALog10  Abs  Data i                       Boolean flag if data   0          sign     Data i  lt 0 0                   Compute the characteristic  int part             Add the 1d 6 to prevent roundoff errors          Characteristic   Fix  Log10Data   1 0d 6            if  Log10Data lt 0  then               Characteristic   Characteristic   1                 Compute the Mantissa  frac part  and take its antilog           Mantissa   Log10Data   Characteristic           Mantissa   10 0 Mantissa           print data i log10data mantissa characteristic format 3f24 14 i8                 String for the coefficient part              The coefficient is just antilog of the Mantissa            Add the minus sign if DATA   0 0          A   StrTrim  String  Mantissa  Format Format   2            if   Sign   then A       A                String for the power of 10 part          B    10 u    strtrim  string  Characteristic   2      n           if   Short   then begin             if   Characteristic eq 0   then B    1              if   Characteristic eq 1   then B    10           endif                composite string          Result i    A     x     B          if   Short AND B eq  1  then Result i    A                         If DATA   0  then we cannot take the common log  so return         zeroes for the result strings   Use the FORMAT string                endif else begin          A        String  0d0  Format Format            B        A          Result i    A           endelse                     Return result to calling program  depending on keyword settings          Eliminate blanks if TRIM keyword is set               if   POT_Only   then            Result i    B       if   MANTISSA_Only   then            Result i    A       if   Trim   then            Result i    StrCompress  Result i   Remove_All            endfor     if  n_elements Result  eq 1  then         Result   Result 0       return  Result  end"); 
     311a[309] = new Array("./ToBeReviewed/STRING/strtok.html", "strtok.pro", "", "         file_comments   Retrieve portion of string up to token        categories   text strings      param STRING  in required    String to be split   Contains text after    in  out   token on output        param TOKEN  in required    Token to use in splitting old              keyword TRIM    set to remove leading blanks from old    before returning       keyword HELP   print useful message and exit        returns   new     portion of string up to token               out   old     portion of old after token                  out  in      restrictions   Input parameter old is modified    Token may be one or more characters    If token is not found  returns old and sets old to         examples         If old is  foo44 bar  then strtok  old   44    would return          foo  and upon return  old will be left with   bar   If  TRIM         were set  old would be  bar  on return            If old xyz  then new strtok old a  would return with         new xyz  and old       history          Log: strtok pro v           Revision 1 3  1996 06 14 20:00:27  mcraig         Updated Copyright info            Revision 1 2  1996 05 09 00:22:17  mcraig         Added built in help            Revision 1 1  1996 01 31 18:47:37  mcraig         Initial revision     Thanks:         To D  Linder who wrote GETTOK  part of the goddard library          upon which this is based      Release:          Name: Rel_1_2       Copyright:    Copyright  C  1996 The Regents of the University of California  All    Rights Reserved   Written by Matthew W  Craig     See the file COPYRIGHT for restrictions on distrubting this code     This code comes with absolutely NO warranty  see DISCLAIMER for details       version    Id: strtok pro 142 2006 07 21 12:47:49Z navarro       FUNCTION Strtok  string  token                     TRIM trim  HELP Help     compile_opt idl2  strictarrsubs      Back to the caller if error occurs      On_error  2      IF  n_params  NE 2  OR keyword_set Help  THEN BEGIN          offset                 print  offset Retrieve portion of string up to token          print  offset new   strtok  old  token           print  offset Inputs:          print  offset offset old     String to be split   Contains text after    in  out          print  offset offset          token on output          print  offset offset token   Token to use in splitting old               in          print  offset Keywords:          print  offset offset TRIM   set to remove leading blanks from old           print  offset offset          before returning          print  offset offset HELP   print useful message and exit          print  offset Outputs:          print  offset offset new     portion of string up to token               out          print  offset offset old     portion of old after token                  out  in          print  offset Side effects:          print  offset offset Input parameter old is modified          print  offset Notes:          print  offset offset Token may be one or more characters          print  offset offset If token is not found  returns old and sets old to           print  offset Examples:          print  offset offset If old is  foo44 bar  then strtok  old   44    would return          print  offset offset    foo  and upon return  old will be left with   bar   If  TRIM          print  offset offset   were set  old would be  bar  on return            print  offset offset If old xyz  then new strtok old a  would return with          print  offset offset   new xyz  and old          return   1     ENDIF       pos   strpos string  token       IF  pos GE 0  THEN BEGIN         front   strmid string  0  pos           string   strmid string  pos   strlen token  strlen string          IF keyword_set trim  THEN string   strtrim string  1          return  front     ENDIF          front   string     string         return  front      END "); 
     312a[310] = new Array("./ToBeReviewed/STRING/strwhere.html", "strwhere.pro", "", "         file_comments   return position  array  for occurence of a character in a string      categories   string tools      param STR  in required    the string      param SCHAR  in required    the character to look for      returns COUNT  out optional    The number of matches that were found       The function returns an index array similar to the     result of the where function      examples          ind   strwhere abcabcabc a               returns   0  3  6        history          mgs  02 Jun 1998: VERSION 1 00          bmy  30 Jun 1998:   now returns COUNT  the number                               of matches that are found  this is                              analogous to the WHERE command       version    Id: strwhere pro 142 2006 07 21 12:47:49Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine strwhere      function strwhere str schar Count     compile_opt idl2  strictarrsubs          if  n_elements str  eq 0  then return 1        convert to byte    BStr   byte Str     BSC     byte schar 0         Search for matches    Ind   where  Bstr eq BSC  Count         bmy   return where BStr eq BSC     return  Ind  end    "); 
     313a[311] = new Array("./ToBeReviewed/STRING/tostr.html", "tostr.pro", "", "             file_comments   Convert an input in a string       categories       param INPUT  in required    input can not contain or be of the type of:       Complex floating  structure  Double precision complex  Pointer  Object     reference  Unsigned Integer  Unsigned Longword Integer  64 bit     Integer  Unsigned 64 bit Integer       returns   a string      restrictions   If keywdvalue is an array  it will be convert in a vector       restrictions   Beware  this function has loops  ifs ad cases everywhere  So it can    not be used by big keywords  with a lot of elements which are big    arrays        examples      IDL  help  tostr 1 tostr a tostr indgen 4 tostr a jkfjo           STRING       1           STRING       a           STRING       0 1 2 3           STRING       a jkfjo       IDL  print  tostr c est bon c est bon        c est bon c est bon       history   Sebastien Masson  smasson lodyc jussieu fr                         18 10 1999      version    Id: tostr pro 142 2006 07 21 12:47:49Z navarro             FUNCTION tostr  input     compile_opt idl2  strictarrsubs       case 1 of       size input   type  LE 5:BEGIN           if size input   type  EQ 1 then input   long input           if n_elements input  EQ 1 then res   strtrim input  1             ELSE BEGIN              res    strtrim input 0  1              for i   1   n_elements input 1 do res   res strtrim input i  1              res   res           ENDELSE        END       size input   type  eq 7:BEGIN           if n_elements input  EQ 1 then BEGIN             sinput   strrepl input                  res    sinput           ENDIF ELSE BEGIN              res    strrepl input 0                  for i   1   n_elements input 1 do res   res strrepl input i                  res   res           ENDELSE        END       ELSE:BEGIN           ras   report la fonction tostr ne marche pas pour input qui est de type  size input   tname           res           END    ENDCASE     return  res end"); 
     314a[312] = new Array("./ToBeReviewed/STRUCTURE/chkstru.html", "chkstru.pro", "", "       file_comments   check validity of a structure and test if necessary   fields are contained      categories   tools      param  STRUCTURE  in required    The structure to be tested  If STRUCTURE is   not of type structure  the function will return 0      param FIELDS  in required    A string or string array with field names to    be contained in STRUCTURE  CHKSTRU returns 1  true    only if all field names are contained in STRUCTURE    The entries of FIELDS may be upper or lowercase       keyword INDEX   A named variable that will contain the indices of   the required field names in the structure  They can then   be assessed through structure index i    Index will   contain  1 for all fields entries that are not in the   structure       keyword VERBOSE   set this keyword to return an error message    in case of an error       keyword EXTRACT   set this keyword to extract a fields from the   structure    1 is return is fields or structure  are   incorrect       returns   CHKSTRU returns 1 if successful  otherwise 0       examples          test     a:1  b:2  c:3            required    a c           if CHKSTRU test required  then print found a and c           IDL  print  CHKSTRU test b              1          IDL  print  CHKSTRU test b extract                  2      history          mgs  02 Mar 1998: VERSION 1 00          mgs  07 Apr 1998:   second parameter  FIELDS  now optional          12 Jan 2001: EXTRACT keyword by S  Masson  smasson lodyc jussieu fr        version    Id: chkstru pro 150 2006 08 09 10:12:54Z navarro         Copyright  C  1998  Martin Schultz  Harvard University   This software is provided as is without any warranty   whatsoever  It may be freely used  copied or distributed   for non commercial purposes  This copyright notice must be   kept with any copy of this software  If this software shall   be used commercially or sold as part of a larger package    please contact the author to arrange payment    Bugs and comments should be directed to mgs io harvard edu   with subject  IDL routine chkstru      function chkstru structure fields index index verbose verbose  extract   extract     compile_opt idl2  strictarrsubs             default index      index    1          first check number of parameters  must be at least 1       if  n_params  lt 1  then begin          if keyword_set verbose  then                ras   report CHKSTRU:   invalid number of parameters              if keyword_set extract  THEN return 1 ELSE return 0           endif            check if the user really passed a structure        s   size structure       if  s 1 s 0  ne 8  then begin          if keyword_set verbose  then                ras   report CHKSTRU:   No structure passed              if keyword_set extract  THEN return 1 ELSE return 0       endif          only one parameter: then we are finished      if  n_params  eq 1  then return 1            see if required field names are contained in the structure        and return indices of these fields        names   tag_names structure       index   intarr n_elements fields    1     default index to  not found        for i 0 n_elements fields 1 do begin          ind   where names eq strupcase fields i           if  ind 0  lt 0  then begin              if keyword_set verbose  then                   ras   report CHKSTRU:   Cannot find field  fields i               endif else index i    ind 0       endfor            check minimum value of index field:  1 indicates error      if keyword_set extract  then BEGIN         if index 0  NE  1 THEN return  structure index 0  ELSE return   1      ENDIF ELSE return min index  ge 0    end  "); 
     315a[313] = new Array("./ToBeReviewed/STRUCTURE/extractstru.html", "extractstru.pro", "", "           file_comments   extract elements of a structure to constitute a new structure       categories   utilities      param STRU  in required    A structure      param LISTE  in required    A vector of string including names of STRU to be deleted     by default  or to be kept  if KEEP is activated       keyword KEEP   Specify that the given liste concern elements of STRU to be kept       keyword DELETE:   Specify  that the given liste concern elements of STRU to be deleted    This keyword is activated by default       returns   A structure or  1 in case of problem      examples        IDL  extra get_extra ok  year 1999  age_capitaine 35        IDL  help  extra struct        Structure   3 tags  length 6  refs 1:         AGE_CAPITAINE   INT             35         OK              INT              1         YEAR            INT           1999      IDL  help  extractstru extra ok hhuihi YEAR stru        Structure   1 tags  length 2  refs 1:         AGE_CAPITAINE   INT             35      IDL  help  extractstru extra ok hhuihi YEAR keep stru        Structure   2 tags  length 4  refs 1:         OK              INT              1         YEAR            INT           1999      history   Sebastien Masson  smasson lodyc jussieu fr                         8 10 1999      version    Id: extractstru pro 150 2006 08 09 10:12:54Z navarro              FUNCTION extractstru  stru  liste  KEEP   keep  DELETE   delete     compile_opt idl2  strictarrsubs      if size stru   type  NE 8 then return    1    if size liste   type  NE 7 then return    1   cheking for keep and vire keywords    keep   keyword_set keep 1 keyword_set delete     delete   keyword_set delete 1 keyword_set keep   keyword_set delete  EQ keep       tname   tag_names stru     index   make_selection tname  strupcase liste   only_valid   quiet       if keep then BEGIN   We just keep the list       if index 0  EQ  1 then return    1       if n_elements index  EQ n_elements tname  then return  stru       res   create_struct tname index 0  stru index 0        if n_elements index  GT 1 then for i   1  n_elements index 1 do               res   create_struct res  tname index i  stru index i     ENDIF ELSE BEGIN   We delete the list       if n_elements index  EQ n_elements tname  then return    1       if index 0  EQ  1 then return  stru   We take the complementary one of index to obtain indexes we keep        index   different indgen n_elements tname  index        res   create_struct tname index 0  stru index 0        if n_elements index  GT 1 then for i   1  n_elements index 1 do               res   create_struct res  tname index i  stru index i     ENDELSE      return  res end"); 
     316a[314] = new Array("./ToBeReviewed/STRUCTURE/mixstru.html", "mixstru.pro", "", "             file_comments   Concatenate 2 structures together  The difference with CREATE_STRUCT    is  that if the 2 structure have same elements s name  then mixstru    do not break down but choose for the common element the value    specified by the first structure       categories   structure       param STRU1  in required    Structure which can have same elements s name than    STRU2 but with a different value       param STRU2  in required    Structure which can have same elements s name than    STRU1 but with a different value       returns   A stucture      restrictions   If STRU1 or  STRU2 is not a structure  mixstru send back  1      examples              IDL  a get_extra toto ok 123        IDL  b get_extra ok 111  year 1999  age_capitaine 35        IDL  help  a b struct         Structure   2 tags  length 4  refs 1:          OK              INT            123          TOTO            INT              1         Structure   3 tags  length 6  refs 1:          AGE_CAPITAINE   INT             35          OK              INT            111          YEAR            INT           1999       IDL  help  mixstru a b struct         Structure   4 tags  length 8  refs 1:          AGE_CAPITAINE   INT             35          YEAR            INT           1999          OK              INT            123          TOTO            INT              1       IDL  help  mixstru b a struct         Structure   4 tags  length 8  refs 1:          TOTO            INT              1          AGE_CAPITAINE   INT             35          OK              INT            111          YEAR            INT           1999      history   Sebastien Masson  smasson lodyc jussieu fr                         7 10 1999      version    Id: mixstru pro 150 2006 08 09 10:12:54Z navarro             FUNCTION mixstru  stru1  stru2     compile_opt idl2  strictarrsubs    cm_general     IF size stru1   type  EQ 0 AND size stru2   type  EQ 8 THEN return  stru2    IF size stru2   type  EQ 0 AND size stru1   type  EQ 8 THEN return  stru1    if size stru1   type  NE 8 then return    1    if size stru2   type  NE 8 then return    1    tname   tag_names stru2         str        FOR i   0  n_tags stru2 1 DO str   str   tname i    stru2    strtrim i  2          res   createfunc get_extra str _extra   stru1                    kwdlist    stru1   stru1  stru2   stru2                    stru1   stru1  stru2   stru2                   filename   myuniquetmpdir  for_createfunc pro      return  res  end"); 
     317a[315] = new Array("./ToBeReviewed/STRUCTURE/struct2string.html", "struct2string.pro", "", "              file_comments   Convert a structure to an  executable string       categories   utilities       param STRUCT  in required    A structure      keyword MAX_STRUCT_LENGTH   The maximum length of the structure   permetted to convert the structure to string  Default is   10000l       keyword DIRECT2STRING   To get a string instead an  executable string       keyword CUT_IN_STRING   Try it      restrictions   Use tostr pro  cf this function header       examples          IDL  print  struct2string d         create_struct NAME X X_SIZE 891 Y_SIZE 630 X_VSIZE          891 Y_VSIZE 630 X_CH_SIZE 6 Y_CH_SIZE 10 X_PX_CM          40 0000 Y_PX_CM 40 0000 N_COLORS 16777216 TABLE_SIZE           256 FILL_DIST 1 WINDOW 32 UNIT 0 FLAGS 328124 ORIGIN          0 0 ZOOM 1 1       history   Sebastien Masson  smasson lodyc jussieu fr                         2000 07 03      version    Id: struct2string pro 150 2006 08 09 10:12:54Z navarro             FUNCTION struct2string  struct  CUT_IN_STRING   cut_in_string  MAX_STRUCT_LENGTH   max_struct_length  DIRECT2STRING   direct2string      compile_opt idl2  strictarrsubs      if size struct   type  NE 8 then return        if NOT keyword_set max_struct_length  then max_struct_length   10000l    if n_tags struct   length  GT max_struct_length then begin       rien   report The structure is too big to be converted to string   C See the MAX_STRUCT_LENGTH keyword        return       endif    names   tag_names struct     case 1 of       keyword_set direct2string :BEGIN          res   names 0 tostr struct 0           if n_tags struct  GT 1 then begin             FOR i   1  n_tags struct 1 do begin                res   res   names i tostr struct i              endfor          endif                 END       keyword_set CUT_IN_STRING :BEGIN          res    create_struct names 0 tostr struct 0           if n_tags struct  GT 1 then begin             FOR i   1  n_tags struct 1 do begin                res    res   create_struct res names i tostr struct i              endfor          endif       END       ELSE:BEGIN          res    create_struct names 0 tostr struct 0           if n_tags struct  GT 1 then begin             FOR i   1  n_tags struct 1 do begin                res   res names i tostr struct i              endfor          endif          res   res        END    endcase    return  res end"); 
     318a[316] = new Array("./ToBeReviewed/STRUCTURE/where_tag.html", "where_tag.pro", "", "     file_comments   Like WHERE but works on structure tag names   Obtain subscripts of elements in structure array for which   a particular Tag has values in a range or matching specified values    Like the WHERE function but for use with structures       categories   Structures      param STRUCT  in required    structure array to search       keyword TAG_NAME   Scalar string specifying Tag Name       keyword TAG_NUMBER   Otherwise give the Tag Number        keyword RANGE     min max  range to search for in Struct       keyword VALUES   One or array of numbers to match for in Struct        keyword ISELECT   Specifies indices to select only part of structure array     use it to recycle subscripts from previous searches        keyword NOPRINT   Suppress informational messages about nothing found       returns   Nfound  out      of occurences found        restrictions   User  must  specify  1  TAG_NAME or TAG_NUMBER to search  and  2    the VALUES or RANGE to search on       examples         Suppose STR is a structure with tags CAT_NO:indgen 10  and                  NAME:strarr 10    Find the indices where STR CAT_NO is                 between 3 and 5            IDL  print  WHERE_TAG  str  TAG_NAME    CAT_NO  VALUE    3 4 5      or         IDL  print  WHERE_TAG  str  TAG_NUM   0  RANGE    3 5        history         written 1990 Frank Varosi STX   NASA GSFC         Stop printing  Tag  not found  with  NOPRINT  CD Pike 8 Jun 93      version    Id: where_tag pro 150 2006 08 09 10:12:54Z navarro        function where_Tag  Struct  Nfound      TAG_NAME Tag_Name                                                 TAG_NUMBER Tag_Num                                                ISELECT ipart  NOPRINT noprint                                            RANGE range  VALUES values  First check required parameters      compile_opt idl2  strictarrsubs            Ntag   N_tags  Struct            if  Ntag LE 1  then begin                 message expecting a Structure Array  try again CONTIN                 return 1             endif          if  N_elements  Tag_Num   NE 1  AND               N_elements  Tag_Name   NE 1  then begin                 message specify TAG_NAME  or TAG_NUMBER  to search CONTIN                 return 1             endif          Tags   Tag_names  Struct            if N_elements  Tag_Name   EQ 1 then begin                 Tag_Name   strupcase  Tag_Name                   Tag_Num   where  Tags EQ Tag_Name                   Tag_Num   Tag_Num 0                  if  Tag_Num LT 0  then begin                  if NOT keyword_set  noprint   then                           message Tag  not found CONTIN                         return 2                     endif            endif          if  Tag_Num LT 0  OR  Tag_Num GE Ntag  then begin                 message Tag      strtrim Tag_Num 2      exceeds Max Tag                                strtrim Ntag 1 2      in structure CONTIN                 return 1             endif          if N_elements  ipart   GT 0 then begin           check if any searching                                                           on a subset of input                  w   where  ipart GE 0  nf                   if  nf LE 0  then return 1                  if  nf LT N_elements  ipart   then ipart   ipart w             endif   Now find out where for RANGE :          if N_elements  range   EQ 2 then begin                  if N_elements  ipart   GT 0 then begin                       w   where   Struct ipart Tag_Num  GE range 0  AND                                    Struct ipart Tag_Num  LE range 1  Nfound                         if  Nfound GT 0  then windex   ipart w  else windex   w                   endif                     else  windex   where   Struct Tag_Num  GE range 0  AND                                            Struct Tag_Num  LE range 1  Nfound                    if  Nfound LE 0  AND  NOT keyword_set  noprint     then begin                         strnums   strtrim  range  2                           string   strnums 0        strnums 1                          message  NO values of  found in the Range     string    CONTIN                    endif  where Values:           endif else if N_elements  values   GE 1 then begin                  Nval   N_elements  values                   vals    values                  Nfound   0                  if N_elements  ipart   GT 0 then begin                      for v 0 Nval 1 do begin                         w   where  Struct ipart Tag_Num  EQ vals v  Nf                           if  Nf GT 0  then begin                                 if  Nfound GT 0  then ww    ww w  else ww   w                            endif                         Nfound   Nfound   Nf                       endfor                      if  Nfound GT 0  then windex   ipart ww sort  ww                                          else windex   w                   endif else begin                      for v 0 Nval 1 do begin                         w   where  Struct Tag_Num  EQ vals v  Nf                           if  Nf GT 0  then begin                                 if  Nfound GT 0  then ww    ww w  else ww   w                            endif                         Nfound   Nfound   Nf                       endfor                      if  Nfound GT 0  then windex   ww sort  ww                                          else windex   w                    endelse                  if  Nfound LE 0  AND  NOT keyword_set  noprint     then begin                         strnums   strtrim  vals  2                           string   strnums 0                          for i 1 Nval 1 do string   string       strnums i                          message  NO values of  found Equaling     string    CONTIN                    endif             endif else begin                  message must specify a RANGE   or VALUES s CONTIN                 windex 1              endelse  return  windex end"); 
     319a[317] = new Array("./ToBeReviewed/TRIANGULATION/ciseauxtri.html", "ciseauxtri.pro", "", "           file_comments    Delete arrays which do not have to be drawn thanks to 2 tests:       1  Corners of the array must be in the window       2  Lenghtes of side of triangles expressed in normalized           coordinates must not surpass a sill lenght        categories      param TRIANG       param GLAM       param GPHI       keyword ALL       keyword _EXTRA   Used to pass your keywords       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                          20 2 99      version    Id: ciseauxtri pro 150 2006 08 09 10:12:54Z navarro              FUNCTION ciseauxtri  triang  glam  gphi  ALL   all  _EXTRA   ex       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     IF NOT keyword_set key_periodic  AND NOT keyword_set key_irregular        AND NOT  map projection LE 7 AND  map projection NE 0        AND NOT  map projection EQ 14 OR  map projection EQ 15                OR  map projection EQ 18  THEN return  triang      tempsun   systime 1            For key_performance      taille   size glam     nx   taille 1     ny   taille 2      tempdeux   systime 1           For key_performance  2    z   convert_coord glam gphi data to_normal      x   z 0       y   z 1       tempvar   SIZE TEMPORARY z    delete z    IF testvar var   key_performance  EQ 2 THEN       print   temps ciseauxtri: convert_coord data to_normal  systime 1 tempdeux     Beware  following the projection  some points x or y can become NaN     see points behind the Earth in an orthographic projection     In this case  we have to remove all triangle which contain one of these points       if  map projection LE 7 AND  map projection NE 0        OR  map projection EQ 14 OR  map projection EQ 15 OR  map projection EQ 18 then begin       tempdeux   systime 1        For key_performance  2         test    x y triang        test   finite temporary test   nan        test   total temporary test  1        ind   where temporary test  EQ 0          if ind 0  NE  1 then triang   triang  temporary ind  ELSE return    1       trichanged   1b       IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: recherche points a NAN  systime 1 tempdeux    endif      seuil   5  indxtriang2       indxtriang   indxmin    nx 1 indxmin EQ 0 AND indxmax EQ  nx 1        ENDIF ELSE indxtriang   indxmin        listrect   nx indytriang indxtriang       IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: liste des rectangles  systime 1 tempdeux     Now we have this list  we will make sure that we do not have triangles    with only a common summit          test   bytarr nx  ny        test listrect    1       dejavire   1b test         tempdeux   systime 1        For key_performance  2       vire1   0       vire2   0       while  vire1 0  NE  1 OR vire2 0  NE  1  ne 0 do begin          vire1   where   test shift test   1   1                              1 shift test  0   1 1 shift test   1  0  EQ 1           if vire1 0  NE  1 THEN test vire1    0   We delete the rectangle          vire2   where   1 test 1 shift test   1   1                              shift test  0   1 shift test   1  0  EQ 1    We delete the top rectangle  same x index but equal to 1           if vire2 0  NE  1 THEN test vire2 nx    0        ENDWHILE  stop       test   test temporary dejavire          avirer   where temporary test  EQ 0        IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: determinationdes rectangles a virer  systime 1 tempdeux         if avirer 0  NE  1 then begin       tempdeux   systime 1        For key_performance  2       indnx   n_elements listrect        indny   n_elements avirer        ind   listrect replicate 1l  indny         ind   ind EQ replicate 1  indnx avirer        if indny GT 1 then ind   total ind  2        ind   where ind EQ 0        if ind 0  NE  1 then triang   triang  ind  ELSE return    1       endif       IF testvar var   key_performance  EQ 2 THEN          print   temps ciseauxtri: derniere retouche de la triangulation  systime 1 tempdeux    endif            if keyword_set key_performance  THEN print   temps ciseauxtri  systime 1 tempsun       return   triang end"); 
     320a[318] = new Array("./ToBeReviewed/TRIANGULATION/completecointerre.html", "completecointerre.pro", "", "PRO draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex     compile_opt idl2  strictarrsubs    cm_4mesh   the triangle must not be out of the domain   IF min lons  max   maxlon  GE lon1 AND maxlon LE lon2       AND min lats  max   maxlat  GE lat1 AND maxlat LE lat2 then BEGIN   the triangle must not be too big      z   convert_coord lons  lats   data   to_normal       alldist    z 0  2 z 0  0 2    z 1  2 z 1  0 2                     z 0  0 z 0  1 2    z 1  0 z 1  1 2                     z 0  1 z 0  2 2    z 1  1 z 1  2 2      IF max alldist  LT seuil 2 THEN polyfill  lons  lats           color   cont_color  _extra   ex     return   ENDIF  end              file_comments   To color cleanly continents      categories   graphic      keyword _EXTRA   Used to pass your keywords       keyword CONT_COLOR   The color of the continent  defaut value is    d n_colors   1   white      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         01 10 1999      version    Id: completecointerre pro 150 2006 08 09 10:12:54Z navarro             PRO completecointerre  COINMONTE   coinmonte  COINDESCEND   coindescend                            CONT_COLOR   cont_color  INDICEZOOM   indicezoom                            _extra   ex     compile_opt idl2  strictarrsubs    common       if NOT keyword_set coinmonte  then return     if NOT keyword_set coindescend  then return     if NOT keyword_set indicezoom  then return   tempsun   systime 1             For key_performance     definitions of vectors coinmont and coindesc     if keyword_set coinmonte  then coinmont   coinmonte     ELSE coinmont   twin_corners_up   if keyword_set coindescend  then coindesc   coindescend     ELSE coindesc   twin_corners_dn   IF NOT keyword_set cont_color  THEN cont_color    d n_colors 1     255     definition of coordinates of points numbered 1 2 3 4 5 6  see figures below      tempdeux   systime 1            For key_performance  2   if coinmont 0  NE  1 OR coindesc 0  NE  1 then BEGIN     if keyword_set indicezoom  then BEGIN   if we use key_stide  the t  u  v and f points are no more related to   the same cell because glamf and gphif has be recomputed to be in the   middle of two t points       IF total key_stride  EQ 3 AND finite glamv 0 gphiv 0  NE 0 THEN BEGIN         long1   glamv indicezoom    lati1   gphiv indicezoom        ENDIF ELSE BEGIN          long1   glamt indicezoom    lati1   gphif indicezoom        ENDELSE       IF total key_stride  EQ 3 AND finite glamu 0 gphiu 0  NE 0 THEN BEGIN         long2   glamu indicezoom    lati2   gphiu indicezoom        ENDIF ELSE BEGIN         long2   glamf indicezoom    lati2   gphit indicezoom        ENDELSE       long3   glamf indicezoom    lati3   gphif indicezoom      ENDIF ELSE BEGIN        IF total key_stride  EQ 3 AND finite glamv 0 gphiv 0  NE 0 THEN BEGIN         long1   glamv   lati1   gphiv       ENDIF ELSE BEGIN          long1   glamt   lati1   gphif       ENDELSE       IF total key_stride  EQ 3 AND finite glamu 0 gphiu 0  NE 0 THEN BEGIN         long2   glamu   lati2   gphiu       ENDIF ELSE BEGIN          long2   glamf   lati2   gphit       ENDELSE       long3   glamf   lati3   gphif     ENDELSE        nx    size long1   dimensions 0      ny    size long1   dimensions 1      seuil   5    min nx  ny 2      seuil   min p position 2 p position 0 seuil                       p position 3 p position 1 seuil      ENDIF     IF testvar var   key_performance  EQ 2 THEN       print   temps completecointerre: positions des points  systime 1 tempdeux       Case land corner in ascent:        2 land points in diagonal ascending with 2 ocean points on the descendant diagonal                          4           t i nx 1    u i nx        t i nx 1 0                                                                         1         3                  5         v i f i v i 1                                                                                 t i 0       2 u i           t i 1 1       if coinmont 0  NE  1 then BEGIN     tempdeux   systime 1          For key_performance  2     for id   0  n_elements coinmont 1 do BEGIN       i   coinmont id        ii   i MOD nx       ij   i nx   bottom triangle       lons    long1 i  long2 i  long3 i        lats    lati1 i  lati2 i  lati3 i        draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex   upper triangle       IF ii NE nx 1 AND ij NE ny 1 THEN BEGIN         lons    long3 i  long1 i 1  long2 i nx          lats    lati3 i  lati1 i 1  lati2 i nx          draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex       ENDIF      ENDFOR      IF testvar var   key_performance  EQ 2 THEN         print   temps completecointerre: trace de cointerremonte  systime 1 tempdeux   ENDIF     Case land corner in descent:        2 land points in diagonal descending with 2 ocean points on the ascendant diagonal                           4       t i nx 1    u i nx        t i nx 1 0                                                                                      3                  5         v i f i v i 1            1                                                                                                  t i 0      2 u i           t i 1 1     if coindesc 0  NE  1 then begin     tempdeux   systime 1          For key_performance  2     for id   0  n_elements coindesc 1 do BEGIN       i   coindesc id        ii   i MOD nx       ij   i nx       IF ii NE nx 1 AND ij NE ny 1 THEN BEGIN   left triangle         lons    long1 i  long3 i  long2 i nx          lats    lati1 i  lati3 i  lati2 i nx          draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex   right triangle         lons    long3 i  long2 i  long1 i 1          lats    lati3 i  lati2 i  lati1 i 1          draw_corner_triangle  lons  lats  seuil  CONT_COLOR   cont_color  _extra   ex       ENDIF     ENDFOR     IF testvar var   key_performance  EQ 2 THEN         print   temps completecointerre: trace de cointerredescend  systime 1 tempdeux   ENDIF      IF keyword_set key_performance  THEN print   temps completecointerre  systime 1 tempsun      return end"); 
     321a[319] = new Array("./ToBeReviewed/TRIANGULATION/definetri.html", "definetri.pro", "", "       file_comments   efine a triangulation array like TRIANGULATE             But in a VERY SIMPLE CASE:   the points are regulary gridded on nx ny array    Find a Delaunay triangulation for this set of points is easy:   Points define  nx 1 ny 1  rectangles which we can cut in 2   triangles  cf  figure above            ny 1                                                                                                                                            ny 2                                                                                                                                                    1                                                                                                                                         0                         0   1   2        nx 3  nx 2 nx 1      You have 2 ways to cut a rectangle:        1  the upward diagonal       2  the downward diagonal                                                                                                                                                                                                                              categories   utilities       param NX  in required    The x dimension array      param NY  in required    The y dimension array      param DOWNWARD  in optional    When downward is undefine all rectangles are cut   in using the upward diagonal  Downward is a vector which   contains the rectangles numbers which are cut in using the   downward diagonal    The rectangle number is define by the index  in a nx ny   vector  of the lower left corner of the rectangle       returns   triangles is a 2d array and is dimensions are 3 and   2 nx 1 ny 1    triangles is define like in the TRIANGULATE procedure       examples     triangles definetri 3 3 1 3    triangles will be a this kind of triangulation:                                                                                                                                                                       history   sebastien Masson  smlod ipsl jussieu fr                          4 3 1999      version    Id: definetri pro 150 2006 08 09 10:12:54Z navarro     FUNCTION definetri  nx  ny  downward     compile_opt idl2  strictarrsubs      nx   long nx     ny   long ny     if n_elements downward  NE 0 THEN BEGIN        if n_elements downward  GT  nx 1 ny 1  then begin          print   downward a trop d elements par rapport a nx et ny           return    1       endif       downward   long downward     ENDIF   we define triangles     triangles   lonarr 3  2 nx 1 ny 1      we cut the rectangles with the upward diagonal      if n_elements downward  NE  nx 1 ny 1  then BEGIN   there is some rectangle to cut    we define upward: upward is a vector which contains the rectangles   numbers which are cut in using the upward diagonal    The rectangle number is define by the index  in a nx ny vector  of   the lower left corner of the rectangle        upward   bytarr nx  ny 1       upward  ny 1    0       upward nx 1      0       if n_elements downward  NE 0 then upward downward    0       upward   where upward EQ 1        n1   n_elements upward       4 corners indexes of a rectangle number i are           i nx  i nx 1                                                                                                                                                                                   i   i 1         trinumber   2 upward upward nx    we define the right triangles       triangles 0  trinumber    upward       triangles 1  trinumber    upward 1       triangles 2  trinumber    upward 1 nx   we define the left triangles       triangles 0  trinumber 1    upward 1 nx       triangles 1  trinumber 1    upward nx       triangles 2  trinumber 1    upward    ENDIF ELSE n1   0     we cut the rectangles with the downward diagonal      if n_elements downward  NE 0 then BEGIN       n2   n_elements downward         trinumber   2 downward downward nx    we define the right triangles       triangles 0  trinumber    downward 1       triangles 1  trinumber    downward nx 1       triangles 2  trinumber    downward nx   we define the left triangles       triangles 0  trinumber 1    downward nx       triangles 1  trinumber 1    downward       triangles 2  trinumber 1    downward 1    endif     return  triangles end"); 
     322a[320] = new Array("./ToBeReviewed/TRIANGULATION/definetri_e.html", "definetri_e.pro", "", "function numtri  index  nx  ny     compile_opt idl2  strictarrsubs       y index nx    x index y nx    numtri    y NE 0 nx 1 2 y 1 1     2 y EQ  ny 1  OR y EQ  ny 1 x     return  numtri end          file_comments   Define a triangulation array like TRIANGULATE but for a   E grid type      categories   Make contours with E grid type       param NX  in required    The x dimension array      param NY  in required    The y dimension array      param SINGULAR  in optional    When singular is undefined all rectangles are cut   in using the vertical diagonal  Singular is a vector which   contains the rectangles numbers which are cut in using the   horizontal diagonal    The rectangle number is define by the index  in a nx ny   vector  of the lower left corner of the rectangle       keyword SHIFTED        returns   Triangles is a 2d array and is dimensions are 3 and    nx 1 ny 1    Triangles is defined like in the TRIANGULATE procedure               history   Sebastien Masson  smlod ipsl jussieu fr                          June 2001      version    Id: definetri_e pro 150 2006 08 09 10:12:54Z navarro        todo    seb: documenter SHIFTED   FUNCTION definetri_e  nx  ny  singular  SHIFTED   shifted     compile_opt idl2  strictarrsubs      nx   long nx     ny   long ny     triangles   lonarr 3  2 nx 1 ny 1      build the base triangulation with the diamond cut in two triangles   by the vertical diagonal     first line    index   lindgen nx 1     trinumber   index    triangles 0  trinumber    index    triangles 1  trinumber    index 1    triangles 2  trinumber    index nx 1 shifted    last line    index    ny 1 nx lindgen nx 1     trinumber   numtri index  nx  ny     triangles 0  trinumber    index    triangles 1  trinumber    index nx index nx 1 shifted  MOD 2     triangles 2  trinumber    index 1   other lines    if ny GT 2 then begin       index   lindgen nx  ny        index   index 0:nx 2  1:ny 2        index   index        oddeven    index nx 1 shifted  MOD 2       trinumber   numtri index  nx  ny        triangles 0  trinumber    index       triangles 1  trinumber    index nx oddeven       triangles 2  trinumber    index nx oddeven       triangles 0  trinumber 1    index nx oddeven       triangles 1  trinumber 1    index nx oddeven       triangles 2  trinumber 1    index 1    endif     cut the diamond specified by singular in two triangles   by the horizontal diagonal      IF keyword_set singular  then BEGIN       yindex   singular nx       otherline   where yindex NE 0 AND yindex NE  ny 1        if otherline 0  NE  1 then begin          index   singular otherline           oddeven    index nx 1 shifted  MOD 2          trinumber   numtri index  nx  ny           triangles 0  trinumber    index          triangles 1  trinumber    index nx oddeven          triangles 2  trinumber    index 1          triangles 0  trinumber 1    index          triangles 1  trinumber 1    index 1          triangles 2  trinumber 1    index nx oddeven       endif     endif    return  triangles end "); 
     323a[321] = new Array("./ToBeReviewed/TRIANGULATION/dessinetri.html", "dessinetri.pro", "", "             file_comments   Draw the triangulation      categories   utilities       param TRI  in optional    Array which define the triangulation  provided by triangule pro or triangulate        param X  in optional    The x position of points to which the trangulation refer to     see the x array provided in triangulate       param Y  in optional    The y position of points to which the trangulation refer to     see the y array provided in triangulate       keyword WAIT    x  to call wait x second between each triangle draw       keyword ONEBYONE   To draw the triangles one by one      keyword FILL   To fill the triangles  using polyfill  instead of plotting them      keyword CHANGECOLOR    n  To change the color of each traingle  n colors   will be used and repeted if necessary       uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: dessinetri pro 150 2006 08 09 10:12:54Z navarro              PRO dessinetri  tri  x  y  WAIT   wait  ONEBYONE   onebyone  FILL   fill  CHANGECOLOR   changecolor  _extra   ex     compile_opt idl2  strictarrsubs    common    tempsun   systime 1             For key_performance    a        if n_params  EQ 3 then BEGIN      CASE size x   n_dimensions size y   n_dimensions  OF        2:BEGIN          nx   n_elements x            ny   n_elements y            glam   x replicate 1  ny           gphi   replicate 1  nx y        END         4:BEGIN          glam   x          gphi   y        END        ELSE:BEGIN          dummy   report x and y inputs of dessinetri must have the same number of dimensions  1 or 2           return        END      ENDCASE    ENDIF ELSE BEGIN        grille mask glam gphi  tri   tri       undefine  mask       tri   ciseauxtri tri  glam  gphi     ENDELSE       IF keyword_set changecolor  THEN BEGIN       oldname    d name       if  d name EQ  PS  OR  d name EQ  Z  then BEGIN           thisos   strupcase strmid version os_family  0  3           CASE thisOS of              MAC : set_plot  thisOS              WIN : set_plot  thisOS             ELSE: set_plot   X           ENDCASE          ncolors d n_colors 1    255          set_plot  oldname        ENDIF ELSE ncolors d n_colors 1    255        color   1 indgen changecolor ncolors changecolor 1       ENDIF ELSE color   0      color   color replicate 1  n_elements tri 3 n_elements color 1        tempdeux   systime 1            For key_performance  2    for i   0L  n_elements tri 3 1 do begin       t    tri  i  tri 0  i        IF keyword_set fill  THEN           polyfill  glam t  gphi t  color   color i  _extra   ex         ELSE plots  glam t  gphi t  color   color i  _extra   ex       IF keyword_set wait  THEN wait  wait       IF keyword_set onebyone  THEN read  a  prompt    press a key     ENDFOR    IF testvar var   key_performance  EQ 2 THEN       print   temps dessinetri: trace des triangles  systime 1 tempdeux      if keyword_set key_performance  THEN print   temps dessinetri  systime 1 tempsun      return end"); 
     324a[322] = new Array("./ToBeReviewed/TRIANGULATION/drawcoast_c.html", "drawcoast_c.pro", "", "     file_comments        categories         param MASK         param XF         param YF         param NX         param NY         keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thick of the trait to trace continents   By default  it is 1       keyword XSEUIL   To eliminate segments of coasts which are to big  which link points which can    be close on the sphere but distant on the drawing  We delete all segments    whose the size surpass the size of the window following X XSEUIL  By default     XSEUIL 5  But it can be to big if we do a big zoom or a little one for some    projections  We specify it the keyword thanks to this keyword       keyword YSEUIL   See XSEUIL       keyword _EXTRA   Used to pass our keywords        returns          uses          restrictions          examples          history          version        todo    Seb: remplir le header       PRO drawcoast_c  mask  xf  yf  nx  ny  COAST_COLOR   coast_color  COAST_THICK   coast_thick  YSEUIL   yseuil  XSEUIL   xseuil  _extra   ex     compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      tempsun   systime 1            For key_performance       We trace vertical segments:      if NOT keyword_set yseuil  then yseuil   5     min nx  ny 2     distanceseuil    p position 3 p position 1 yseuil   list: list of points i for which we will trace a segment between the point i j 1 and i j    tempdeux   systime 1           For key_performance  2    liste   where mask shift mask   1  0  EQ 1                    AND  xf shift xf  0  1 2 yf shift yf  0  1 2  LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN   We recuperate lx an dly which are indexes in a 2d array of points given by list       ly   liste nx   lx   temporary liste nx ly       indice   where ly NE 0      We do not take points concerning       if indice 0  NE  1 then begin   the first line because in this case  the point j 1 is undefined           lx   lx indice    ly   ly temporary indice    Loop on concerned points and drawing of the segment    Comment: we use plots instead of plot because plots goes faster           IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: determiner liste des points concernes par un trait vertical  systime 1 tempdeux          tempdeux   systime 1     For key_performance  2          for pt   0L  n_elements lx 1 do BEGIN              i   lx pt    j   ly pt              plots   xf i  j 1  xf i  j   yf i  j 1  yf i  j                    color   coast_color  thick   coast_thick   normal  _extra   ex          endfor          IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: trace des traits verticaux  systime 1 tempdeux       endif    ENDIF     For the drawing of horizontal segments   it is the same thing but we have to be careful if it is periodic      If it is periodic  we duplicate the first column and we put it at the end      This is made not for the shift which is periodic by default but for the plots     tempdeux   systime 1           For key_performance  2    if keyword_set key_periodic  AND nx EQ jpi then begin       mask    mask  mask 0          xf    xf  xf 0          yf    yf  yf 0          nx   nx 1    ENDIF    if NOT keyword_set xseuil  then xseuil   5     min nx  ny 2     distanceseuil    p position 2 p position 0 xseuil    liste   where mask shift mask  0   1  EQ 1                    AND  xf shift xf  1  0 2 yf shift yf  1  0 2  LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN       ly   liste nx   lx   temporary liste nx ly       indice   where ly NE ny 1 AND lx NE 0        if indice 0  NE  1 then begin   We do not take points of the first column and of the last line  because we added artificially           lx   lx indice    ly   ly temporary indice           IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: determiner liste des points concernes par un trait horizontal  systime 1 tempdeux          tempdeux   systime 1     For key_performance  2          for pt   0L  n_elements lx 1 do BEGIN              i   lx pt    j   ly pt              plots   xf i 1  j  xf i  j   yf i 1  j  yf i  j                    color   coast_color  thick   coast_thick   normal  _extra   ex          endfor          IF testvar var   key_performance  EQ 2 THEN             print   temps tracecote: trace des traits horizontaux  systime 1 tempdeux       endif    endif      if keyword_set key_performance  THEN print   temps drawcoast_c  systime 1 tempsun    return end"); 
     325a[323] = new Array("./ToBeReviewed/TRIANGULATION/drawcoast_e.html", "drawcoast_e.pro", "", "     file_comments        categories         param MASK         param XF         param YF         param NX         param NY         keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thick of the trait to trace continents   By default  it is 1       keyword XSEUIL   To eliminate segments of coasts which are to big  which link points which can    be close on the sphere but distant on the drawing  We delete all segments    whose the size surpass the size of the window following X XSEUIL  By default     XSEUIL 5  But it can be to big if we do a big zoom or a little one for some    projections  We specify it the keyword thanks to this keyword       keyword YSEUIL   See XSEUIL      keyword _EXTRA   Used to pass our keywords        returns          uses          restrictions          examples          history          version       todo   Seb: remplir le header       PRO drawcoast_e  mask  xf  yf  nx  ny  COAST_COLOR   coast_color  COAST_THICK   coast_thick  YSEUIL   yseuil  XSEUIL   xseuil  onemore   onemore  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF      tempsun   systime 1            pour key_performance      if keyword_set key_periodic  AND nx EQ jpi then begin       mask    mask  mask 0          xf    xf  xf 0          yf    yf  yf 0          nx   nx 1    ENDIF     we plot the borders of the diamond in this sense :        if NOT keyword_set onemore  then onemore   0    if NOT keyword_set xseuil  then xseuil   5     min nx  ny 2     distanceseuil    p position 2 p position 0 xseuil   liste: liste des points i pourlesquels on va tracer un segment     index   lindgen nx  ny     index   index 0:nx 2  1:ny 1     indexbis   index nx index nx onemore  MOD 2     liste   where mask index 1 mask indexbis  EQ 1                    AND  xf index xf indexbis 2 yf index yf indexbis 2 LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN       index   index liste        indexbis   indexbis liste        for pt   0  n_elements index 1 do begin          plots   xf index pt  xf indexbis pt   yf index pt  yf indexbis pt                 color   coast_color  thick   coast_thick   normal  _extra   ex       endfor    ENDIF     we plot the borders of the diamond in this sense :        if NOT keyword_set xseuil  then xseuil   5     min nx  ny 2     distanceseuil    p position 2 p position 0 xseuil   liste: liste des points i pourlesquels on va tracer un segment     index   lindgen nx  ny 1     index   index 0:nx 2       indexbis   index nx index nx onemore  MOD 2     liste   where mask index 1 mask indexbis  EQ 1                    AND  xf index xf indexbis 2 yf index yf indexbis 2 LE distanceseuil 2     IF liste 0  NE  1 THEN BEGIN       index   index liste        indexbis   indexbis liste        for pt   0  n_elements index 1 do begin          plots   xf index pt  xf indexbis pt   yf index pt  yf indexbis pt                 color   coast_color  thick   coast_thick   normal  _extra   ex       endfor    ENDIF       if keyword_set key_performance  THEN print   temps drawcoast_e  systime 1 tempsun    return end"); 
     326a[324] = new Array("./ToBeReviewed/TRIANGULATION/drawsectionbottom.html", "drawsectionbottom.pro", "", "             file_comments   Fill and draw the bottom continents for a real section       categories       param MASKIN  in requierd       param XXAXISIN  in requierd        param DEPTHSIN  in requierd       keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thickness of the coastline    defaut value is 1      keyword CONT_COLOR   The color of the continent  defaut value is    d n_colors   1   white      uses   common pro      restrictions   Simple way to fill continents for a section  using the   fact that continents are wider at the bottom than at the top        history   Sebastien Masson  smasson lodyc jussieu fr                         June 14  2002      version    Id: drawsectionbottom pro 150 2006 08 09 10:12:54Z navarro        todo   Seb: definir params         PRO drawsectionbottom  maskin  xxaxisin  depthsin                            COAST_COLOR   coast_color  COAST_THICK   coast_thick                            CONT_COLOR   cont_color  CONT_NOFILL   cont_nofill                            OVERPLOT   overplot  _extra   ex       compile_opt idl2  strictarrsubs    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF      if keyword_set overplot  then return     mask is from bottom to top     boundaries conditions:   nx    size maskin 1    nz    size maskin 2 1     IF size xxaxisin   n_dimensions  EQ 1 THEN       xxaxisin   temporary xxaxisin replicate 1  nz    IF size depthsin   n_dimensions  EQ 1 THEN       depthsin   replicate 1  nx temporary depthsin    for the mask : we add ocean at the top then it is always possible to   find one ocean point on each water column    mask    maskin   replicate 1  nx    for x axis we also add one level    xxaxis    xxaxisin   xxaxisin  0    x axis must cover nx 1 points because we will draw the edge of the   mask    if it was mot possible in decoupeterre pro to extend the xxaxis we   do it now by hand   xxaxis   xxaxisin  0     if  size xxaxis 1  EQ nx then begin   if n_elements xxaxis  EQ nx then begin     deltax   abs x range 1 x range 0 10      xxaxis    xxaxis 0 deltax  xxaxis        x0   xxaxis 0 deltax      xxaxis    replicate x0  1  nz  xxaxis     ENDIF   for the depth    usepartial   total depthsin  2    usepartial   total usepartial NE usepartial 0  GE 1   depths   depthsin 0:nx 1    we add one level according to the ocean level we had to the mask     deltaz   abs y range 1 y range 0 10    zmax   max depthsin deltaz     depths    depths   replicate zmax  nx 1    depths    depths   replicate zmax  nx    if min depths  gt  1 then we must add one line at the bottom  this   appens when the bottom limit is defined between T k  and W k    points    IF min depthsin  GT  1 OR max total mask  2  EQ nz THEN BEGIN     zmin   min y range deltaz     depths    replicate zmin  nx   depths      mask    replicate 0  nx   mask      nz   nz 1   ENDIF       xleft   xxaxis 0:nx 1    xright   xxaxis 1:nx    looking for the position of the bottom of the ocean    pos   nz 1 total mask  2    depths   depths lindgen nx nx pos      xx   transpose xleft   xright    xx    x range 0    xx   zz    max y range      xx   float xx    zz   float zz      filling of the continents   IF NOT keyword_set cont_color  THEN cont_color    d n_colors   1    255     if NOT keyword_set cont_nofill  then         polyfill   min xx   max   maxx  xx  maxx                       min zz   max   mazz  zz  mazz                      color   cont_color    if NOT keyword_set cont_nofill  then        polyfill   min xx  max   maxx  xx  maxx                      y range 0  zz   y range 0  color   cont_color     drawing of the coast  bottom  line    we could have plot directly xx and yy but if countout ne 0  doing   this will draw an non existing bottom line along  y range values   which is not so good    we thus do this ugly for if loops to make sure that we don t draw   these lines but we keep all vertical lines     IF countout NE 0 THEN BEGIN      FOR i   0  countout  1 DO BEGIN        CASE 1 OF          out i  EQ 0:BEGIN    if we start with a out point            xxx    values f_nan            zzz    values f_nan                     END           i EQ 0:BEGIN    i eq 0 but out i  ne 0            xxx    xx 0:out i   values f_nan             zzz    zz 0:out i   values f_nan           END          ELSE:BEGIN   two consecutive out values at the same depth: we just keep    values f_nan values until the next change of depth            IF  out i 1  EQ out i 1  AND  zz out i 1  EQ zz out i  THEN BEGIN               xxx    xxx   values f_nan               zzz    zzz   values f_nan                          ENDIF ELSE BEGIN    we keep everything inbetween the out values  including themselves   for the vertical lines  but we had  values f_nan to remove the horizontal lines              xxx    xxx  xx out i 1 :out i   values f_nan               zzz    zzz  zz out i 1 :out i   values f_nan                          ENDELSE          END        ENDCASE        IF i EQ countout 1 AND out i  NE n_elements xx 1 THEN BEGIN          xxx    xxx  xx out i :           zzz    zzz  zz out i :                      ENDIF      ENDFOR      plots  xxx  zzz  color   coast_color  thick   coast_thick  _extra   ex    ENDIF ELSE plots  xx  zz  color   coast_color  thick   coast_thick  _extra   ex     return end "); 
     327a[325] = new Array("./ToBeReviewed/TRIANGULATION/fillcornermask.html", "fillcornermask.pro", "", "             file_comments   To color cleanly continents      categories   graphic      keyword _EXTRA   Used to pass your keywords       keyword CONT_COLOR   The color of the continent  defaut value is    d n_colors   1   white      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         8 8 2002      version    Id: fillcornermask pro 150 2006 08 09 10:12:54Z navarro             PRO fillcornermask  xin  yin  COINMONTE   coinmonte  COINDESCEND   coindescend                                     CONT_COLOR   cont_color  INDICEZOOM   indicezoom                         _extra   ex     compile_opt idl2  strictarrsubs    common     if NOT keyword_set coinmonte  AND NOT keyword_set coindescend  then return     tempsun   systime 1             For key_performance     IF NOT keyword_set cont_color  THEN cont_color    d n_colors 1     255         definition of coordinates of points numbered 1 2 3 4 5 6  see figures below        x1   reform xin    y1   reform yin    IF  size x1 0  EQ 2 THEN x1   x1   0    IF  size y1 0  EQ 2 THEN y1   y1  0      x2    5 x1 shift x1   1    y2    5 y1 shift y1   1    nx   n_elements x1    ny   n_elements y1           Case land corner in ascent:        2 land points in diagonal ascending with 2 ocean points on the descendant diagonal                          3           t i nx 1    u i nx        t i nx 1 0                                                                            1                            4         v i f i v i 1                                                                                 t i 0       2 u i           t i 1 1       if keyword_set coinmonte  then BEGIN     if coinmonte 0  NE  1 then BEGIN       iup   coinmonte MOD nx       jup   coinmonte nx       for id   0  n_elements coinmonte 1 do BEGIN         i   iup id          j   jup id          IF i NE nx 1 AND j NE ny 1 THEN BEGIN           polyfill   x1 i  x2 i  x2 i  x1 i 1  x1 i                   y2 j  y1 j  y1 j 1  y2 j  y2 j                  color   cont_color  _extra   ex         ENDIF       endfor     endif   endif     Case land corner in descent:        2 land points in diagonal descending with 2 ocean points on the ascendant diagonal                          4       t i nx 1    u i nx        t i nx 1 0                                                                                      3                  5         v i f i v i 1            1                                                                                               t i 0      2 u i           t i 1 1     if keyword_set coindescend  then BEGIN     if coindescend 0  NE  1 then begin       idw   coindescend MOD nx       jdw   coindescend nx       for id   0  n_elements coindescend 1 do BEGIN         i   idw id          j   jdw id          IF i NE nx 1 AND j NE ny 1 THEN BEGIN           polyfill   x1 i  x2 i  x2 i  x1 i 1  x1 i                   y2 j  y1 j 1  y1 j  y2 j  y2 j                  color   cont_color  _extra   ex         ENDIF       endfor     endif   endif      IF keyword_set key_performance  THEN print   temps fillcornermask  systime 1 tempsun      return end"); 
     328a[326] = new Array("./ToBeReviewed/TRIANGULATION/section.html", "section.pro", "", "     file_comments        categories         param FIELD         param RES         param GLAMAXE         param GPHIAXE         keyword ENDPOINTS           keyword BOXZOOM         keyword TYPE         keyword WDEPTH        keyword DIREC        keyword SHOWBUILD        keyword ONLYBOX        keyword _EXTRA    Used to pass your keywords       returns          uses   common pro       restrictions          examples          history   Sebastien Masson  smasson lodyc jussieu fr        version        PRO section  field  res  glamaxe  gphiaxe  ENDPOINTS   endpoints                  BOXZOOM   boxzoom  TYPE   type  WDEPTH   wdepth                  DIREC   direc  SHOWBUILD   showbuild  ONLYBOX   onlybox                  _extra   ex       include common     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF         definition of boxzoom in function of endpoints  then redefinition of the domain   boxzoom2d    min endpoints 0  endpoints 2  max   ma02  ma02                    min endpoints 1  endpoints 3  max   ma13  ma13      minprof   0    profdefault   200    if n_elements type  EQ 0 then type    nothing    Case N_Elements Boxzoom  OF     0:localbox    boxzoom2d  minprof  profdefault      1:localbox    boxzoom2d  minprof  boxzoom 0      2:localbox    boxzoom2d  boxzoom 0      4:if strpos type   z  NE  1 THEN         localbox    boxzoom2d  minprof  profdefault  ELSE localbox   boxzoom2d     5:localbox    boxzoom2d  minprof  boxzoom 4      6:localbox    boxzoom2d  boxzoom 4:5      Else:BEGIN       print  report Bad definition of the box        stop     END   ENDCASE   nelbox   n_elements localbox      if keyword_set wdepth  then grillechoice    vargrid   W      ELSE grillechoice   vargrid   domdef  localbox  GRIDTYPE   grillechoice   findalways  _extra   ex   grille   1   1   1   1  nx  ny   if less than 10 points where found  we apply domdef over the whole domain      problem  why 10 points as a test value    how can we find a good test value    IF nx   ny LE 10 THEN domdef  GRIDTYPE   grillechoice  _extra   ex   We redefine lon1    in case findalways has been used in domdef   lon1   min endpoints 0  endpoints 2  max   lon2    lat1   min endpoints 1  endpoints 3  max   lat2    we extend the box along the z axis   i that way the plot will be drawn   until its bottom part    if strpos type   z  NE  1 THEN BEGIN   We keep yranges  axis z  before changing the boxzoom       y range    localbox nelbox 1  localbox nelbox 2       if vargrid EQ  W  OR keyword_set wdepth  then BEGIN       firstzw   0    firstzw 1        lastzw    lastzw 1    firstzt 1        lastzt    lastzt 1    firstx   1    lastx    lastx   1    firsty   1    lasty    lasty   1     jpj  1       domdef  firstx  lastx  firsty  lasty  firstz  lastz                index  gridtype   vargrid    IF keyword_set onlybox  THEN return     grille  mask  glam  gphi  gdep  nx  ny  nz               firstx  firsty  firstz  lastx  lasty  lastz      We define the triangulation which will allows us to determinate the section     We recalculate it because it must be defined on the Earth and on oceans    Following the direction of the section  rather longitude or rather latitude     we define the way to triangulate    if strpos type   x  NE  1 then BEGIN      downward    lindgen nx  ny 0:nx 2  0:ny 2      tri   definetri nx  ny   downward     ENDIF ELSE tri   definetri nx  ny    If we have an irregular grid that is periodic  then it is possible that   some of the triangle have a very large size  neighborg points on the   sphere but far away when doing the projection  and should not be   taken into account     IF keyword_set key_irregular  AND keyword_set key_periodic  THEN BEGIN     glamtri   glam tri      glamtri   abs glamtri   shift glamtri  1  0      good   temporary glamtri  LT  10 max glam nx      good   where total temporary good  1  EQ 3      tri    temporary tri  temporary good    ENDIF     Equation of the line on which we do the section      abc   linearequation endpoints 0:1  endpoints 2:3    glamtri   glam tri    gphitri   gphi tri    Which points of the triangulation are above and below the line    if abc 1  NE 0 THEN       test   temporary gphitri  GE  abc 0 abc 1 temporary glamtri abc 2 abc 1      ELSE test   temporary glamtri  GE  abc 1 abc 0 temporary gphitri abc 2 abc 0     zero123   total test  1    to keep: triangles of the triangulation which are over the line    tokeep1   where zero123 EQ 1    tokeep2   where temporary zero123  EQ 2    tokeep    tokeep1  tokeep2     test   test  tokeep    tri   tri  tokeep    Which summit of the triangle is alone in a side of the line    single1   where test  0:n_elements tokeep1 1  EQ 1    single1   single1 single1 3 3   single2   where test  n_elements tokeep1 :n_elements tokeep 1  EQ 0    single2   single2 single2 3 3    undefine  tokeep   undefine  tokeep1   undefine  tokeep2   undefine  test    single    temporary single1  temporary single2    points1 the point  of the triangle  alone in a side of the line    point2 the other point of the triangle in the other side of the line    point1    single  single    point2    single EQ 0  1    single LE 1     undefine   single    ntri    size tri 2    index    lindgen ntri  lindgen ntri     points1   tri point1  index    points2   tri point2  temporary index    points : complex containing couples of points in a side and the other    side of the line  We have to delete duplicates    points   dcomplex points1  points2    points   points uniq points  sort points    symetrique   dcomplex imaginary points  double points    points   points where points shift temporary symetrique  1  NE 0    points1 coordinates of the point of the triangle which is alone in a side of the line    point2 coordinates of the other point of the triangle in the other side of the line    points1   complex glam    double points  gphi    double points    points2   complex glam imaginary points  gphi imaginary points    droites equations of line whose we look for the intersection wit the section    droites   linearequation points1  points2    inter   lineintersection droites  abc replicate 1  n_elements points1         Geographic coordinates of points we look for on the section    glamaxe   float inter    gphiaxe   imaginary inter    We arrange them in the growing order between boundaries of the section    if strpos type   x  NE  1 then BEGIN      sort   sort glamaxe      glamaxe   glamaxe sort      inbox   where glamaxe GE lon1 AND glamaxe LE lon2      glamaxe   glamaxe inbox      sort   sort inbox      gphiaxe   gphiaxe sort    ENDIF ELSE BEGIN     sort   sort gphiaxe      gphiaxe   gphiaxe sort      inbox   where gphiaxe GE lat1 AND gphiaxe LE lat2      gphiaxe   gphiaxe inbox      sort   sort inbox      glamaxe   glamaxe sort    ENDELSE   points   points sort    points1   points1 sort    points2   points2 sort    inter   inter sort    poids   abs points2 inter abs points2 points1       array   litchamp field    array   fitintobox array    if array 0  EQ  1 THEN BEGIN     res    1     return   ENDIF   if n_elements valmask  EQ 0 THEN valmask   1e20   taille   size array    if jpt GT 1 AND taille 0  GE 3 AND strpos type   t  EQ  1 then BEGIN     direc    t      array   grossemoyenne array   t      taille   size array      jpt   1   ENDIF   case 1 of    xy       taille 0  EQ 2:BEGIN       value1   array double points        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       value2   array imaginary points        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       res   poids value1 1 poids value2     END    xyz       taille 0  EQ 3 AND jpt EQ 1:BEGIN       npoints   n_elements points         index   double points replicate 1  nz replicate nx ny  npoints lindgen nz        value1   array index        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       index   imaginary points replicate 1  nz replicate nx ny  npoints lindgen nz        value2   array index        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       poids   poids replicate 1  nz        res   poids value1 1 poids value2   average following z         if strpos type   z  EQ  1 then begin         nan   where finite res  EQ 0          if vargrid EQ  W  then e3   e3w firstzw:lastzw  ELSE e3   e3t firstzt:lastzt          weight   replicate 1  npoints e3         if nan 0  NE  1 then weight nan     values f_nan         totalweight   total weight  2   nan          zero   where totalweight EQ 0          if zero 0  NE  1 then totalweight zero     values f_nan         res   total res weight  2   nan totalweight         direc    z string byte testvar var   toto        endif     END    xyt       taille 0  EQ 3 AND jpt NE 1:BEGIN       npoints   n_elements points         index   double points replicate 1  jpt replicate nx ny  npoints lindgen jpt        value1   array index        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       index   imaginary points replicate 1  jpt replicate nx ny  npoints lindgen jpt        value2   array index        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       poids   poids replicate 1  jpt        res   poids value1 1 poids value2     END    xyzt       taille 0  EQ 4:BEGIN       npoints   n_elements points         index   double points replicate 1  nz jpt replicate nx ny  npoints lindgen nz jpt        index   reform index  npoints  nz  jpt   over        value1   array index        terre   where value1 GT valmask 10        if terre 0  NE  1 then value1 terre     values f_nan       index   imaginary points replicate 1  nz jpt replicate nx ny  npoints lindgen nz jpt        index   reform index  npoints  nz  jpt   over        value2   array index        terre   where value2 GT valmask 10        if terre 0  NE  1 then value2 terre     values f_nan       poids   poids replicate 1  nz jpt        poids   reform poids  npoints  nz  jpt   over        res   poids value1 1 poids value2   average following z         if strpos type   z  EQ  1 then begin         nan   where finite res  EQ 0          if vargrid EQ  W  then e3   e3w firstzw:lastzw  ELSE e3   e3t firstzt:lastzt          weight   replicate 1  npoints e3         weight   weight replicate 1  jpt          weight   reform weight  npoints  nz  jpt   over          if nan 0  NE  1 then weight nan     values f_nan         totalweight   total weight  2   nan          zero   where totalweight EQ 0          if zero 0  NE  1 then totalweight zero     values f_nan         res   total res weight  2   nan totalweight         direc    z string byte testvar var   toto        endif     END   endcase      terre   where finite res  EQ 0    if terre 0  NE  1 then res terre    valmask    if n_elements showbuild  then BEGIN      winsave    window     psave    p     xsave    x     ysave    y     plt  findgen nx  ny   nodata   nofill   rempli  title     subtitle                  coast_thick   2  window   showbuild      p title          p subtitle          plots   endpoints 0  endpoints 2   endpoints 1  endpoints 3  color   50     plots   endpoints 0  endpoints 2   endpoints 1  endpoints 3  color   50  psym   2  thick   2      FOR i   0  n_elements points1 1 DO         plots   float points1 i  float points2 i                    imaginary points1 i  imaginary points2 i  color   150      plots  float points1  imaginary points1  color   150  psym   1     plots  float points2  imaginary points2  color   150  psym   1     plots  float inter  imaginary inter  color   250  psym   1       bug      IF terre 0  NE  1 THEN plots  float terre inter  imaginary terre inter  color   0  psym   1              dummy            read  dummy   prompt    press return to continue      IF  d name EQ  PS  THEN erase ELSE wset  winsave      p   psave      x   xsave      y   ysave   ENDIF     restoreboxparam   boxparam4section dat       return end"); 
     329a[327] = new Array("./ToBeReviewed/TRIANGULATION/tracecote.html", "tracecote.pro", "", "             file_comments   Draw coasts in plt       categories   graphic        INPUTS:mask le tableau mask sur la zone consideree pour le dessin      keyword SURFACE_COASTLINE   To draw the surface coast line instead of   the coast line at level firstz tw  Usefull only for deep   plots       keyword _EXTRA   used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr                         30 9 1999      version    Id: tracecote pro 150 2006 08 09 10:12:54Z navarro             PRO tracecote  SURFACE_COASTLINE   surface_coastline  _EXTRA   ex     include commons     compile_opt idl2  strictarrsubs    cm_4data  cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      tempsun   systime 1            For key_performance    if n_elements key_gridtype  EQ 0 then key_gridtype    c      We enlarge a bit the frame defined by firsts  lasts  in order to    recuperate edges of the coast which are in the edging of the domain          tempdeux   systime 1           For key_performance  2    firstx   0    min firstxt  firstxf 1     lastx    max lastxt  lastxf 1    min firstyt  firstyf 1     lasty    max lastyt  lastyf 1     jpj 1     nx   lastx firstx 1    ny   lasty firsty 1   Which vertical level choose     IF keyword_set surface_coastline  THEN firstz   0 ELSE        IF strupcase vargrid  eq  W  THEN firstz   firstzw ELSE firstz   firstzt   Attribution of the mask and of coordinates  delimiting limits of the land  coordinates f     mask   tmask firstx:lastx  firsty:lasty  firstz     xf   glamf firstx:lastx  firsty:lasty     yf   gphif firstx:lastx  firsty:lasty       IF testvar var   key_performance  EQ 2 THEN       print   temps tracecote: determiner mask xf yf  systime 1 tempdeux      if key_gridtype EQ  e  then onemore   xf 0  0  gT xf 0  1    We pass in normalized coordinates to be able to become independant from the projection s    type choosen and from the support on which we do the drawing  screen or postscript     z   convert_coord xf yf data to_normal      xf   reform z 0    nx  ny     yf   reform z 1    nx  ny     tempvar   SIZE TEMPORARY z      Beware  following the projection  some points x or y can become NaN  see point    behind the earth in an orthographic projection      We put points to be eliminated at a very big value so that they will not pass the    test with distanceseuil  see further       if  map projection LE 7 AND  map projection NE 0        OR  map projection EQ 14 OR  map projection EQ 15 OR  map projection EQ 18 then begin       ind   where finite xf yf  EQ 0        IF ind 0  NE  1 THEN BEGIN           xf ind    1e5          yf ind    1e5       ENDIF    ENDIF    ind   where xf LT  p position 0  OR xf GT  p position 2     IF ind 0  NE  1 THEN xf ind    1e5    ind   where yf LT  p position 1  OR yf GT  p position 3     IF ind 0  NE  1 THEN yf ind    1e5    tempvar   SIZE TEMPORARY ind    we delete ind      if n_elements key_gridtype  EQ 0 then key_gridtype    c     case key_gridtype of        c :drawcoast_c  mask  xf  yf  nx  ny  _extra   ex        e :drawcoast_e  mask  xf  yf  nx  ny  onemore   onemore  _extra   ex    endcase    if keyword_set key_performance  THEN print   temps tracecote  systime 1 tempsun    return end"); 
     330a[328] = new Array("./ToBeReviewed/TRIANGULATION/tracemask.html", "tracemask.pro", "", "             file_comments   Draw contours of a mask      categories   utilities       param MASKENTREE  in required    2d array specifing the mask       param XIN  in required    2d array specifing longitude coordinates        param YIN  in required    2d array specifing latitude coordinates       keyword COAST_COLOR   The color of the coastline    defaut value is 0   black      keyword COAST_THICK   The thick of the trait to trace continents   It is 1 by default       keyword OVERPLOT   To do a plot over an other one       keyword _EXTRA   used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: tracemask pro 150 2006 08 09 10:12:54Z navarro             PRO tracemask  maskentree  xin  yin  COAST_COLOR   coast_color  COAST_THICK   coast_thick  OVERPLOT   overplot  _extra   ex       compile_opt idl2  strictarrsubs      if keyword_set overplot  then return    cm_general   IF NOT keyword_set key_forgetold  THEN BEGIN  updatekwd   ENDIF       tempsun   systime 1            For key_performance   We avoid edging problems:    tempdeux   systime 1           For key_performance  2    tailleentree   size maskentree     nx   tailleentree 1 1    ny   tailleentree 2 1   we check the input axis   IF n_elements xin  EQ 0 THEN xentree   findgen nx 1  ELSE xentree   xin   IF  size xentree 0  EQ 1 THEN xentree   xentree replicate 1 ny 1    IF n_elements yin  EQ 0 THEN yentree   findgen ny 1  ELSE yentree   yin   IF  size yentree 0  EQ 1 THEN yentree   replicate 1 nx 1 yentree   We enlarge the mask by 1 column to the left an d1 line to the bottom    mask   intarr tailleentree 1 1  tailleentree 2 1     mask 1:tailleentree 1  1:tailleentree 2    maskentree   The 2 first columns are identical     mask 0  1:tailleentree 2    maskentree 0      The 2 first lines are identical     mask 1:tailleentree 1  0    maskentree  0    We calculate the position following x of points which will serve to trace the mask  They are situated between each points of the mask  exept for the last column we can not calculate and so we put at max  x range     xrange    x range sort x range    if REVERSE_X is used    xentree    5 xentree shift xentree   1  0     IF not keyword_set overplot  THEN xentree nx 2      xrange 1       ELSE xentree nx 2      xentree nx 3      we sill    xentree   xrange 0    xentree  yentree   yrange 1     yf   fltarr nx  ny     yf 1:nx 1  1:ny 1    yentree    yf 0  1:ny 1    yentree 0       IF not keyword_set overplot  THEN BEGIN        if yinverse then yf  0    yrange 1  ELSE yf  0    yrange 0     ENDIF ELSE yentree  0    yentree  1       IF testvar var   key_performance  EQ 2 THEN       print   temps tracemask: determination du mask et des ses coordonnes  systime 1 tempdeux     We trace vertical segments:      tempdeux   systime 1           For key_performance  2    liste   where mask shift mask   1  0  EQ 1     IF liste 0  NE  1 THEN BEGIN   We recuperate lx and ly which are indexes in a 2d array of points given by list       ly   liste nx   lx   temporary liste nx ly       indice   where ly NE 0    We do not take points concernining    the first line because in this case  the point j 1 is not defined        if indice 0  NE  1 then begin          lx   lx indice    ly   ly temporary indice           IF testvar var   key_performance  EQ 2 THEN             print   temps tracemask: liste traits verticaux  systime 1 tempdeux          tempdeux   systime 1     For key_performance  2   loop on concerned points and drawing of the segment    comments: we use plots instead of plot because plots is faster           for pt   0L  n_elements lx 1 do BEGIN              i   lx pt    j   ly pt              plots   xf i  j 1  xf i  j   yf i  j 1  yf i  j                    color   coast_color  thick   coast_thick  _extra   ex             if pt LT 5 then begin             endif          endfor          IF testvar var   key_performance  EQ 2 THEN             print   temps tracemask: trace traits verticaux  systime 1 tempdeux       endif    ENDIF     We trace horizontal segments:      tempdeux   systime 1           For key_performance  2    liste   where mask shift mask  0   1  EQ 1     IF liste 0  NE  1 THEN BEGIN       ly   liste nx   lx   temporary liste nx ly       indice   where lx NE 0      We do not take point sof the first column        if indice 0  EQ  1 then return       lx   lx indice    ly   ly temporary indice        IF testvar var   key_performance  EQ 2 THEN          print   temps tracemask: liste traits horizontaux  systime 1 tempdeux       tempdeux   systime 1        For key_performance  2       for pt   0L  n_elements lx 1 do BEGIN           i   lx pt    j   ly pt           plots   xf i 1  j  xf i  j   yf i 1  j  yf i  j                 color   coast_color  thick   coast_thick  _extra   ex       endfor       IF testvar var   key_performance  EQ 2 THEN          print   temps tracemask: trace traits horizontaux  systime 1 tempdeux    endif        if keyword_set key_performance  THEN print   temps tracemask  systime 1 tempsun         return end     "); 
     331a[329] = new Array("./ToBeReviewed/TRIANGULATION/triangule.html", "triangule.pro", "", "         todo   seb       FUNCTION triangule  maskentree  BASIC   basic  COINMONTE   coinmonte  COINDESCEND   coindescend  _extra   ex     compile_opt idl2  strictarrsubs    common     szmsk   size maskentree    IF szmsk 0  EQ 0 THEN BEGIN     nx   jpi     ny   jpj   ENDIF ELSE BEGIN      nx   szmsk 1      ny   szmsk 2    ENDELSE   IF nx EQ 1 OR ny EQ 1 THEN return   1     IF arg_present coinmonte  THEN coinmonte   1   IF arg_present coindescend  THEN coindescend   1      if keyword_set basic  then        return  triangule_c maskentree   BASIC  COINMONTE   coinmonte                              COINDESCEND   coindescend  _extra   ex       if n_elements key_gridtype  EQ 0 then key_gridtype    c     if n_elements maskentree  EQ 0 then maskentree   tmask    0     case key_gridtype of        e :res   triangule_e maskentree  _extra   ex         c :res   triangule_c maskentree  COINMONTE   coinmonte  COINDESCEND   coindescend  _extra   ex     endcase    return  res end"); 
     332a[330] = new Array("./ToBeReviewed/TRIANGULATION/triangule_c.html", "triangule_c.pro", "", "             file_comments   Construct the triangulation array      The idea is: construct a list of triangle which link points between them     This is automatically done by the function TRIANGULATE    Here:   we consider the fact that points are disposed on a grid  regular or not     but not unstructured  that is to say that points are written following a    rectangular matrix  A easy way to do triangles between all points is then:          for each point  i j  of the matrix  exept those of the last line and of       the last column  we call rectangle  i j  the rectangle made of the four       points  i j   i 1 j   i j 1   i 1 j 1  To trace all triangle  we just       have to trace the 2 triangles contained in rectangles  i j      We notice that each rectangle  i j  have 2 diagonals  it is true  Make a   drawing to make sure  so there are two possible choice for each rectangle   we want to cut in 2 triangles       It is thanks to this choice that we will be able to trace coast with right   angles  At each angle of coast remarkable by the existence of an unique land   point or of an unique ocean point on one of the four summit of a rectangle  i j    we have to cut the rectangle following the diagonal passing by this point        categories   graphic      param MASKENTREE  in optional    It is a 2d array which will serve to mask the field we will trace after with CONTOUR      TRIANGULATION triangule mask    If this argument is not specified  the function use tmask      keyword BASIC   Specify that the mask is on a basic grid  use the triangulation for vertical cuts and hovmoellers       keyword KEEP_CONT   To keep the triangulation even on the continents      keyword COINMONTE   It is an array  To obtain the array of  ascending land corner  to be treated with    completecointerre pro in the variable array instead of make it pass by the global    variable twin_corners_up       keyword COINDESCEND   It is an array  See COINMONTE      returns   res: tableau 2d  3 nbre de triangles    Each line of res represent indexes of points constituing summits of a triangle     See how we trace triangles in definetri pro      uses   common pro   different pro   definetri pro      restrictions   Datas whose we want to do the contour must be disposed in a matrix     On the other hand  in the matrix  the points s arrangement can not be    irregular  If it is  use TRIANGULE       history   Sebastien Masson  smasson lodyc jussieu fr                          26 4 1999      version    Id: triangule_c pro 150 2006 08 09 10:12:54Z navarro        todo   seb L 267 268 je ne pense pas que ce soit ce que tu voulais dire mais    c est la traduction de ce qu il y avait  crit  Correction si besoin          FUNCTION triangule_c  maskentree  COINMONTE   coinmonte  COINDESCEND   coindescend  BASIC   basic  KEEP_CONT   keep_cont   compile_opt idl2  strictarrsubs   tempsun   systime 1               For key_performance    cm_4mesh IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew ENDIF     Is the mask given or do we have to take tmask      msk   maskentree taille   size msk  nx   taille 1  ny   taille 2    IF n_elements keep_cont  EQ 0 THEN keep_cont   1 key_irregular   if keyword_set key_periodic nx EQ jpi      AND NOT keyword_set basic  then BEGIN      msk    msk  msk 0        nx   nx 1 ENDIF     We will find the list of rectangles  i j located by their left    bottom corner  we have to cut folowing a descendant diagonal     We will call this list : pts_downward    pts_downward   0    We construct the test which allow to find this triangle :             shift msk   0   1 shift msk   1   1                                                                                                                                                                                                            msk shift msk   1   0    sum1   msk shift msk   1  0 shift msk   1   1      points which surround the left top point  sum2   msk shift msk  0   1 shift msk   1   1      points which surround the right bottom point    tempdeux   systime 1              For key_performance  2   The left top land point surrounded by ocean points liste   where   4 sum1 1 shift msk  0   1  EQ 1   if liste 0  NE  1 THEN pts_downward    pts_downward liste     The left top ocean point surrounded by land points liste   where   1 sum1 shift msk  0   1  EQ 1  if liste 0  NE  1 THEN pts_downward    pts_downward liste     The right bottom land point surrounded by ocean points liste   where   4 sum2 1 shift msk   1   0  EQ 1  if liste 0  NE  1 THEN pts_downward    pts_downward liste     The right bottom ocean point surrounded by land points liste   where   1 sum2 shift msk   1   0  EQ 1  if liste 0  NE  1 THEN pts_downward    pts_downward liste   undefine  liste   IF testvar var   key_performance  EQ 2 THEN     print   temps triangule: trouver pts_downward  systime 1 tempdeux   if  NOT keyword_set basic  OR keyword_set coinmonte  OR keyword_set coindescend  then begin     tempdeux   systime 1          For key_performance  2  2 land points in ascendant diagonal with 2 ocean points in descendant diagonal      coinmont   where   1 msk 1 shift msk   1   1                           shift msk  0   1 shift msk   1   0  EQ 1        if coinmont 0  NE  1 THEN pts_downward    pts_downward  coinmont        IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: trouver coinmont  systime 1 tempdeux     tempdeux   systime 1          pour key_performance  2       coindesc   where   1 shift msk   0   1 1 shift msk   1  0                            msk shift msk   1   1  EQ 1       2 land points in descendant diagonal with 2 ocean points in ascendant diagonal      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: trouver coindesc  systime 1 tempdeux   ENDIF   if n_elements pts_downward  EQ 1 then BEGIN      tempdeux   systime 1          For key_performance  2       triang   definetri nx  ny        IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: definetri  systime 1 tempdeux     coinmont    1     coindesc    1 ENDIF ELSE BEGIN      tempdeux   systime 1          For key_performance  2     pts_downward   pts_downward 1:n_elements pts_downward 1      pts_downward   pts_downward uniq pts_downward  sort pts_downward    None rectangle can have an element of the last column or of the    last line as left bottom corner    so we have to remove these points if they has been selected in pts_downward      derniere_colonne    lindgen ny 1 nx 1      derniere_ligne   lindgen nx ny 1 nx      pts_downward  different pts_downward derniere_colonne       pts_downward  different pts_downward derniere_ligne       if  NOT keyword_set basic  OR keyword_set coinmonte  OR keyword_set coindescend  then begin         if coinmont 0  NE  1 then begin             coinmont  different coinmont derniere_colonne               coinmont  different coinmont derniere_ligne           endif         if coindesc 0  NE  1 then begin             coindesc  different coindesc derniere_colonne               coindesc  different coindesc derniere_ligne           endif     ENDIF ELSE BEGIN          coinmont    1         coindesc    1     ENDELSE      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: menage ds pts_downward coinmont et coindesc  systime 1 tempdeux       tempdeux   systime 1          For key_performance  2     if  pts_downward 0  EQ  1 then triang   definetri nx  ny        ELSE triang   definetri nx  ny  pts_downward      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: definetri  systime 1 tempdeux ENDELSE      We delete land points which only contain land points          if  NOT keyword_set basic  AND  NOT keyword_set keep_cont  then begin     tempdeux   systime 1          For key_performance  2   We delete rectangles which are entirely in the land      recdsterre   where 1 msk 1 shift msk   1  0 1 shift msk  0   1 1 shift msk   1   1  EQ 1      IF testvar var   key_performance  EQ 2 THEN         print   temps triangule: tous les recdsterre  systime 1 tempdeux    We do an other sort :   We have to do not remove rectangles which only have one common summit    t1   systime 1      indice   intarr nx  ny      trimask   intarr nx  ny      trimask 0:nx 2  0:ny 2    1     IF recdsterre 0  NE  1 then BEGIN          tempdeux   systime 1      For key_performance  2         indice recdsterre    1         if NOT keyword_set basic  then begin             vire1   0             vire2   0             while  vire1 0  NE  1 OR vire2 0  NE  1  ne 0 do begin   Delete rectangles we have to remove from recsterre  in fact those we have    to keep although they ar eentirely in the land                  vire1   where   indice shift indice   1   1                                     1 shift indice  0   1 1 shift indice   1  0 trimask  EQ 1                  if vire1 0  NE  1 THEN BEGIN                      indice vire1    0                 indice vire1 nx 1    0                 endif                                  vire2   where   1 indice 1 shift indice   1   1                                     shift indice  0   1 shift indice   1  0 trimask  EQ 1                  if vire2 0  NE  1 THEN BEGIN                      indice vire2 1    0                 indice vire2 nx    0                 endif             endwhile             IF testvar var   key_performance  EQ 2 THEN                 print   temps triangule: trier les recdsterre  systime 1 tempdeux         endif         indice  ny 1    1       The last column and the last line         indice nx 1      1       can not define any rectangle            tempdeux   systime 1      For key_performance  2         recgarde   where indice EQ 0    We recuperate numbers of triangles we will keep          trigarde   2 recgarde recgarde nx          trigarde   transpose temporary trigarde          trigarde    trigarde  trigarde 1             triang   triang  temporary trigarde          IF testvar var   key_performance  EQ 2 THEN             print   temps triangule: virer les triangle de la liste  systime 1 tempdeux     endif endif   print   temps tri triangles  systime 1 t1      When key_periodic equal 1  triang is a list of indexes s array which    have a surplus column    We have to put it back to the initial matrix by putting indexes of    the last column equal to these of the last column    tempdeux   systime 1              For key_performance  2 if keyword_set key_periodic nx 1 EQ jpi      AND NOT keyword_set basic  then BEGIN      indicey   triang nx     indicex   triang indicey nx     nx   nx 1     liste   where indicex EQ nx      if liste 0  NE  1 then indicex liste    0     triang   indicex nx indicey     nx   nx 1     if coinmont 0  NE  1 then begin         indicey   coinmont nx         indicex   coinmont indicey nx         nx   nx 1         liste   where indicex EQ nx          if liste 0  NE  1 THEN indicex liste    0         coinmont   indicex nx indicey         nx   nx 1     endif     if coindesc 0  NE  1 then begin         indicey   coindesc nx         indicex   coindesc indicey nx         nx   nx 1         liste   where indicex EQ nx          if liste 0  NE  1 THEN indicex liste    0         coindesc   indicex nx indicey         nx   nx 1     endif endif IF testvar var   key_performance  EQ 2 THEN     print   temps triangule: finitions  systime 1 tempdeux    if keyword_set coinmonte  THEN coinmonte   coinmont ELSE twin_corners_up   coinmont if keyword_set coindescend  THEN coindescend   coindesc ELSE twin_corners_dn   coindesc   IF NOT keyword_set key_forgetold  THEN BEGIN     updateold ENDIF   IF keyword_set key_performance  THEN print   temps triangule  systime 1 tempsun   return  triang  END "); 
     333a[331] = new Array("./ToBeReviewed/TRIANGULATION/triangule_e.html", "triangule_e.pro", "", "           file_comments   Buid the triangulation for a E grid type      categories   graphic       param MASKENTREE  in optional    It is a 2d array which will serve to mask the field we will trace after with CONTOUR      TRIANGULATION triangule mask    If this argument is not specified  the function use tmask       keyword BASIC   Specify that the mask is on a basic grid  use the triangulation for vertical cuts and hovmoellers        keyword COINMONTE   It is an array  To obtain the array of  ascending land corner  to be treated with    completecointerre pro in the variable array instead of make it pass by the global    variable twin_corners_up       keyword COINDESCEND   It is an array  See COINMONTE      keyword SHIFTED       uses   common pro       history   Sebastien Masson  smasson lodyc jussieu fr                         june 2001       version     Id: triangule_e pro 150 2006 08 09 10:12:54Z navarro         todo   seb L 152 153 je ne pense pas que ce soit ce que tu voulais dire mais    c est la traduction de ce qu il y avait  crit  Correction si besoin          FUNCTION triangule_e  maskentree  COINMONTE   coinmonte  COINDESCEND   coindescend                       SHIFTED   shifted  BASIC   basic       compile_opt idl2  strictarrsubs    cm_4mesh   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF      tempsun   systime 1            For key_performance     Is the mask given or do we have to take tmask         msk   maskentree    sizem   size msk     nx   sizem 1     ny   sizem 2       if keyword_set key_periodic nx EQ jpi        AND NOT keyword_set basic  then BEGIN        msk    msk  msk 0          nx   nx 1    ENDIF     we will find the diamond that must be cut in two triangle using the   horizontal diagonal       index   lindgen nx  ny     index   index 0:nx 2  1:ny 2     if n_elements shifted  EQ 0 then shifted   1    oddeven    index nx 1 shifted  MOD 2    msk1   msk index     msk2   msk index 1     sum   msk index nx oddeven msk index nx oddeven     sum1   msk2 sum    sum2   msk1 sum     horizontal      singularpoint   where msk1 EQ 0 AND sum1 EQ 3  OR  msk1 EQ 1 AND sum1 EQ 0                             OR  msk2 EQ 0 AND sum2 EQ 3  OR  msk2 EQ 1 AND sum2 EQ 0                             OR  sum EQ 0 AND  msk1 msk2  EQ 2       if singularpoint 0  NE  1 then begin       horizontal   index singularpoint        triang   definetri_e nx  ny  horizontal  SHIFTED   shifted     ENDIF ELSE triang   definetri_e nx  ny  SHIFTED   shifted       coinmont   index where sum EQ 2 AND  msk1 msk2  EQ 0       coindesc   index where sum EQ 0 AND  msk1 msk2  EQ 2      we keep only the triangles which are outside the land   but for some reasons we will in fact delete the land diamond        allrecinland   where sum1 msk1 EQ 0       indexallinland   index allrecinland       otherrec    lindgen nx  ny 0:nx 2  1:ny 2       otherrec   different otherrec  indexallinland           index   lindgen nx  ny       index   index 0:nx 3  2:ny 3       out   inter index  indexallinland       IF out 0  NE  1 THEN begin         out   inter out 1  indexallinland          IF out 0  NE  1 THEN begin            out   out 1            oddeven    out nx 1 shifted  MOD 2            out   inter out nx oddeven  otherrec             IF out 0  NE  1 THEN begin               out   inter out 2 nx  otherrec                IF out 0  NE  1 THEN begin                  out   out nx out nx shifted  MOD 2                endif            endif         endif      ENDIF      help   out          index   lindgen nx  ny       index   index 0:nx 3  2:ny 3       out   inter index  otherrec       IF out 0  NE  1 THEN begin         out   inter out 1  otherrec          IF out 0  NE  1 THEN begin            out   out 1            oddeven    out nx 1 shifted  MOD 2            out   inter out nx oddeven  indexallinland             IF out 0  NE  1 THEN begin               out   inter out 2 nx  indexallinland                IF out 0  NE  1 THEN begin                  out   out nx out nx shifted  MOD 2                endif            endif         endif      endif      help   out          IF out 0  EQ  1 THEN out   different indexallinland  out  ELSE out   indexallinland      triout   numtri out  nx  ny       triout    triout  triout 1       goodtri   lindgen 2 nx 1 ny 1       goodtri   different goodtri  triout       triang   triang  temporary goodtri           When key_periodic equal 1  triang is a list of indexes s array which    have a surplus column    We have to put it back to the initial matrix by putting indexes of    the last column equal to these of the last column       tempdeux   systime 1           For key_performance  2    if keyword_set key_periodic nx 1 EQ jpi        AND NOT keyword_set basic  then BEGIN        indicey   triang nx       indicex   triang indicey nx       nx   nx 1       liste   where indicex EQ nx        if liste 0  NE  1 then indicex liste    0       triang   indicex nx indicey       nx   nx 1         if coinmont 0  NE  1 then begin            indicey   coinmont nx            indicex   coinmont indicey nx            nx   nx 1            liste   where indicex EQ nx             if liste 0  NE  1 THEN indicex liste    0            coinmont   indicex nx indicey            nx   nx 1         endif         if coindesc 0  NE  1 then begin            indicey   coindesc nx            indicex   coindesc indicey nx            nx   nx 1            liste   where indicex EQ nx             if liste 0  NE  1 THEN indicex liste    0            coindesc   indicex nx indicey            nx   nx 1         endif    endif    IF testvar var   key_performance  EQ 2 THEN       print   temps triangule: finitions  systime 1 tempdeux        if arg_present coinmonte  THEN coinmonte   coinmont ELSE twin_corners_up   coinmont     if arg_present coindescend  THEN coindescend   coindesc ELSE twin_corners_dn   coindesc     IF NOT keyword_set key_forgetold  THEN BEGIN      updateold    ENDIF        IF keyword_set key_performance  THEN print   temps triangule  systime 1 tempsun      return  triang  END "); 
     334a[332] = new Array("./ToBeReviewed/UTILITAIRE/get_extra.html", "get_extra.pro", "", "     todo    seb       elle fait quoi      elle permet :      soit de creer une variable extra contenant les mots clefs que tu   desires      soit de completer une variable extra avec des mots clefs que tu   rajoutes     imagine :    tu es dans une routine et tu veux passer un mot clef en extra car la   routine que tu appelles ne le connait pas mais la routine suivante oui    tu fais     extra get_extra ok  year 1999  age_capitaine 35      et tu obtiens la bonne variable extra  fait un help extra struc     ou alors  tu completes un extra existant :    extra get_extra _extra extra  name Guillaume     FUNCTION get_extra  _extra   extra     compile_opt idl2  strictarrsubs       return  extra END "); 
     335a[333] = new Array("./ToBeReviewed/UTILITAIRE/oups.html", "oups.pro", "", ""); 
     336a[334] = new Array("./ToBeReviewed/UTILITAIRE/vzoom.html", "vzoom.pro", "", ""); 
     337a[335] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildcmd.html", "buildcmd.pro", "", "             file_comments   This function send back a string which contain the reading command    and drawing s parameters       param BASE  in required       keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword FORCETYPE      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: buildcmd pro 152 2006 08 10 07:01:35Z smasson        todo   seb: documenter le param BASE et le keyword FORCETYPE           FUNCTION buildcmd  base  BOXZOOM   boxzoom  FORCETYPE   forcetype       we get back the ids of the widget parts       compile_opt idl2  strictarrsubs     txtcmdid   widget_info base  find_by_uname    txtcmd    domainid   widget_info base  find_by_uname    domain    actionid   widget_info base  find_by_uname    action      optionid   widget_info base  find_by_uname    option      widget_control  base  get_uvalue   top_uvalue   smallin   extractatt top_uvalue   smallin    numdessinin   smallin 2 1   smallout   extractatt top_uvalue   smallout    numdessinout   smallout 2 1     options   extractatt top_uvalue   options       optionsflag   extractatt top_uvalue   optionsflag    portrait    strtrim optionsflag where options EQ  Portrait Landscape  0  1 0        We determinate which procedure we will call to do the drawing and the type     IF keyword_set forcetype  THEN type   forcetype     ELSE type   widget_info actionid   combobox_gettext    case type of      pltz diag up :procedure    pltz       pltz diag dn :procedure    pltz       pltt diag up :procedure    pltt       pltt diag dn :procedure    pltt       xy :procedure    plt       xz :procedure    pltz       yz :procedure    pltz       xt :procedure    pltt       yt :procedure    pltt       zt :procedure    pltt       x :procedure    plt1d       y :procedure    plt1d       z :procedure    plt1d       t :procedure    pltt      ELSE:procedure   type   endcase      Search of options     options   extractatt top_uvalue   options       optionsflag   extractatt top_uvalue   optionsflag    flags   optionsflag  numdessinin    xindex    flags where options EQ  Longitude   x index 0    yindex    flags where options EQ  Latitude   y index 0    drawvecteur    flags where options EQ  Vecteur 0 procedure eq  plt    drawover    flags where options EQ  Overlay 0      alreadyread   extractatt top_uvalue   alreadyread    alreadyvector   extractatt top_uvalue   alreadyvector    alreadyover   extractatt top_uvalue   alreadyoer    What must we read     case 1 of     alreadyover NE  1:BEGIN       toread   alreadyover 1       readswitch    over      END     alreadyvector NE  1 AND alreadyvector NE  pi:BEGIN       toread   alreadyvector 1       readswitch    vector      END     alreadyread NE  1 AND alreadyread NE  pi AND alreadyread NE 2 pi:BEGIN       toread   alreadyread 1       readswitch    classic      END     else:BEGIN       case 1 of         alreadyvector eq  pi:BEGIN           toread   alreadyover 1           readswitch    over          END         alreadyread EQ  pi:BEGIN           toread   alreadyvector 1           readswitch    vector          END         alreadyread EQ 2 pi:BEGIN           toread   alreadyover 1           readswitch    over          END         ELSE:BEGIN           toread   alreadyread 1           readswitch    classic          END       endcase     END   ENDCASE     widget_control  txtcmdid  get_value   widcmd   widcmd    strtrim widcmd  2    IF widcmd 0  EQ   THEN widcmd    zzz       cutcmd  widcmd 0  toread  numberofread  prefix  nameexp  ending     readcmd   buildreadcmd base   nameexp  procedure  type                              BOXZOOM   boxzoom  complete   readswitch EQ  classic  AND alreadyread EQ  1    we look for the line containing funclec_name   currentfile   extractatt top_uvalue   currentfile    readparameters    extractatt top_uvalue   readparameters currentfile    i   0   while strpos readcmd i  readparameters funclec_name     EQ  1 do i   i 1              case readswitch of      classic :BEGIN       if alreadyread 1 EQ 0 then BEGIN   we start the reading command         readcmd     beginning of reading the field to draw  readcmd          readcmd i 1     field       prefix   readcmd i 1        ENDIF ELSE BEGIN   we complet the reading command         oldrdcmd   extractatt top_uvalue   currentreadcmd          nl   n_elements oldrdcmd           oldrdcmd nl 1    oldrdcmd nl 1                readcmd i    prefix   readcmd i          readcmd    temporary oldrdcmd  temporary readcmd        ENDELSE   exit if we have to read other fields        if alreadyread 1 NE numberofread 1 THEN BEGIN           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd          top_uvalue 1  findline top_uvalue   alreadyread    alreadyread 1          top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field number  strtrim alreadyread 3  1          return           ENDIF   we finalize the reading command       IF ending NE   THEN BEGIN          nl   n_elements readcmd           readcmd nl 1    readcmd nl 1                readcmd    temporary readcmd  ending        ENDIF       readcmd    temporary readcmd                        field   create_struct arr:temporary field  grid:vargrid  unit:varunit  experiment:varexp  name:varname                         end of reading the field to draw      we get back _EXTRA:       extra   extractatt top_uvalue   extra        if xindex NE 0 then extra   create_struct extra   xindex  xindex        if yindex NE 0 then extra   create_struct extra   yindex  yindex        exextra   cw_specifie_get_value base        extra    mixstru exextra  extra        sextra   struct2string extra        readcmd    temporary readcmd   extra    sextra           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd       case 1 of         drawvecteur:BEGIN   we have to read the vectors            top_uvalue 1  findline top_uvalue   alreadyread     pi            top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the zonal component of vector            return             END         drawover:BEGIN   we have to read the field to overlay             top_uvalue 1  findline top_uvalue   alreadyread    2 pi            top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field to overlay            return             END   finished  we draw the plot          ELSE: top_uvalue 1  findline top_uvalue   alreadyread     1       endcase     END      vector :BEGIN   for the vectors  there is 2 components  we read u when alreadyvector   is a interger and v when alreadyvector is a interger 0 5       if floor alreadyvector 1 EQ 0 then begin         if floor alreadyvector  EQ alreadyvector then begin           readcmd     beginning of reading the zonal component of vector  readcmd            readcmd i 1     fieldu       prefix   readcmd i 1          ENDIF ELSE BEGIN           readcmd     beginning of reading the meridional component of vector  readcmd            readcmd i 1     fieldv       prefix   readcmd i 1          ENDELSE         readcmd    extractatt top_uvalue   currentreadcmd  temporary readcmd        ENDIF ELSE BEGIN         oldrdcmd   extractatt top_uvalue   currentreadcmd          nl   n_elements oldrdcmd           oldrdcmd nl 1    oldrdcmd nl 1                readcmd i    prefix   readcmd i          readcmd    temporary oldrdcmd  temporary readcmd        ENDELSE         case alreadyvector 1 of         numberofread 1:BEGIN   we finalize the reading command           IF ending NE   THEN BEGIN              nl   n_elements readcmd               readcmd nl 1    readcmd nl 1                    readcmd    temporary readcmd  ending            ENDIF           readcmd    temporary readcmd                            fieldu   create_struct arr:temporary fieldu  grid:vargrid  unit:varunit  experiment:varexp  name:varname                             end of reading the zonal component of vector               top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd   we finished zonal component reading    we know switch to meridional component             top_uvalue 1  findline top_uvalue   alreadyvector     5            top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the meridional component of vector            return             END         numberofread 0 5:BEGIN   we finalize the reading command           IF ending NE   THEN BEGIN              nl   n_elements readcmd               readcmd nl 1    readcmd nl 1                    readcmd    temporary readcmd  ending            ENDIF           readcmd    temporary readcmd                             fieldv   create_struct arr:temporary fieldv  grid:vargrid  unit:varunit  experiment:varexp  name:varname                             end of reading the meridional component of vector      we finished meridional component reading      we get back _EXTRA of the vector and we complet extra already build           extra   extractatt top_uvalue   extra            exextra   cw_specifie_get_value base            extra    mixstru exextra  extra            sextra   struct2string extra            readcmd    readcmd   vectorextra    sextra   extra mixstru extra vectorextra               top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd             if drawover then BEGIN   shall we do an overlay               top_uvalue 1  findline top_uvalue   alreadyvector     pi              top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field to overlay              return               ENDIF ELSE BEGIN   it is done know               top_uvalue 1  findline top_uvalue   alreadyread     1              top_uvalue 1  findline top_uvalue   alreadyvector     1           ENDELSE         END         ELSE:BEGIN   we still need to read some vector components             top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd            top_uvalue 1  findline top_uvalue   alreadyvector    alreadyvector 1           if floor alreadyvector  EQ alreadyvector then text     zonal               ELSE text     meridional              top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the  strtrim floor alreadyread 3  1 text component of vector            return             END       endcase     END      over :BEGIN       if alreadyover 1 EQ 0 then begin   we start the reading          readcmd     beginning of reading the field to overdraw  readcmd          readcmd i 1     fieldover     prefix  readcmd i 1          readcmd    extractatt top_uvalue   currentreadcmd  temporary readcmd        ENDIF ELSE BEGIN         oldrdcmd   extractatt top_uvalue   currentreadcmd          nl   n_elements oldrdcmd           oldrdcmd nl 1    oldrdcmd nl 1                readcmd i    prefix   readcmd i          readcmd    temporary oldrdcmd  temporary readcmd        ENDELSE         if alreadyover 1 NE numberofread 1 THEN BEGIN    we still need to read some files           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd          top_uvalue 1  findline top_uvalue   alreadyover    alreadyover 1          top_uvalue 1  findline top_uvalue   noticebase    xnotice Select the field number  strtrim alreadyover 3  1  to overlay          return           ENDIF   we finalize the reading command       IF ending NE   THEN BEGIN          nl   n_elements readcmd           readcmd nl 1    readcmd nl 1                readcmd    temporary readcmd  ending        ENDIF   on finalise la commande de lecture       readcmd    readcmd                       fieldover   create_struct arr:temporary fieldover  grid:vargrid  unit:varunit  experiment:varexp  name:varname                         end of reading the field to overdraw      we get back _EXTRA of over and we complet extra already build       extra   extractatt top_uvalue   extra        exextra   cw_specifie_get_value base        extra    mixstru exextra  extra        sextra   struct2string extra        readcmd    readcmd   overextra    sextra   extra mixstru extra overextra           top_uvalue 1  findline top_uvalue   currentreadcmd    readcmd   we reinitialize        top_uvalue 1  findline top_uvalue   alreadyread     1        top_uvalue 1  findline top_uvalue   alreadyvector     1        top_uvalue 1  findline top_uvalue   alreadyover     1     END   endcase                   determination of the boxzoom s name    if NOT keyword_set boxzoom  then widget_control  domainid  get_value   boxzoom   Writting of this one as a string   box    strtrim boxzoom 0  1    for i   1   n_elements boxzoom 1     3 2 strpos type   z  EQ  1  do       box   box   strtrim boxzoom i  1    For  plots in z  box must have by default 0 profmax   if strpos type   z  NE  1 then BEGIN   If more than 1 level is selected:      widget_control  widget_info base  find_by_uname    dthlv1  get_value   niv1     niv1   niv1 combobox_index     widget_control  widget_info base  find_by_uname    dthlv2  get_value   niv2     niv2   niv2 combobox_index     if niv1 NE niv2 then begin       box   box strtrim boxzoom 4  1 strtrim boxzoom 5  1      ENDIF ELSE BEGIN       if chkstru exextra   profmax  then  pmax   exextra profmax         ELSE pmax   200       box   box 0 strtrim pmax  1      ENDELSE   endif   box   box    IF strpos type    diag up  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 2  1                            strtrim boxzoom 1  1          strtrim boxzoom 3  1        ENDIF   IF strpos type    diag dn  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 3  1                            strtrim boxzoom 1  1          strtrim boxzoom 2  1        ENDIF     We determinate typein       IF strpos type    diag   NE  1 THEN typein    strmid type  0  4        ELSE typein    type        determination of small     ssmall   tostr smallout      We will define the string which will contain the command to be executed by widgetdessine pro     Cmd    readCmd  procedure    field                       boxzoom    box   findalways  typein typein  small ssmall      IF drawvecteur then Cmd    Cmd         vecteur    u: fieldu v: fieldv      IF drawover then Cmd    Cmd         contour   fieldover     IF n_elements sendpoints  NE 0 then Cmd    Cmd         endpoints       sendpoints         Cmd    Cmd         _extra  mixstru ex  extra  portrait       portrait     NOERASE noerase        print         for i   0  n_elements Cmd 1 do print  Cmd i       print        We complete and or update the structure top_uvalue       top_uvalue 1  findline top_uvalue   nameprocedures numdessinout    procedure    top_uvalue 1  findline top_uvalue   types numdessinout    type    top_uvalue 1  findline top_uvalue   domaines  numdessinout    boxzoom    top_uvalue 1  findline top_uvalue   txtcmd numdessinout    widcmd    top_uvalue 1  findline top_uvalue   optionsflag  numdessinout    flags    top_uvalue 1  findline top_uvalue   exextra numdessinout    extra     return  Cmd end  "); 
     338a[336] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html", "buildreadcmd.pro", "", "        param BASE  in required     The id of the widget where apply the drawing       param SNAMEEXP  in required         param PROCEDURE  in required         param TYPE  in required          keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword COMPLETE          keyword NAMEFIELD        uses   common pro       history   Sebastien Masson  smasson lodyc jussieu fr        version     Id: buildreadcmd pro 150 2006 08 09 10:12:54Z navarro        todo   seb: documenter les param et les keyword qui ne le sont pas      FUNCTION buildreadcmd  base  snameexp  procedure  type  BOXZOOM   boxzoom                            COMPLETE   complete  NAMEFIELD   namefield       compile_opt idl2  strictarrsubs    cm_4cal   for key_caltype     get back widgets IDs     vlstid   widget_info base  find_by_uname    varlist    date1id   widget_info base  find_by_uname    calendar1    date2id   widget_info base  find_by_uname    calendar2    domainid   widget_info base  find_by_uname    domain      optionid   widget_info base  find_by_uname    option      widget_control  base  get_uvalue   top_uvalue   numdessinin    extractatt top_uvalue   smallin 2 1   numdessinout    extractatt top_uvalue   smallout 2 1     name of the file     currentfile   extractatt top_uvalue   currentfile    filelist   extractatt top_uvalue   filelist    filename   filelist currentfile    sfilename    filename      name of the variable     if keyword_set namefield  then namevar   namefield     ELSE namevar   widget_info vlstid   combobox_gettext    snamevar    namevar      get the options     options   extractatt top_uvalue   options       flags   extractatt top_uvalue   optionsflag    flags   flags  numdessinin    xindex    flags where options EQ  Longitude   x index 0    yindex    flags where options EQ  Latitude   y index 0      extra   extractatt top_uvalue   extra    if xindex NE 0 then extra   create_struct extra   xindex  xindex    if yindex NE 0 then extra   create_struct extra   yindex  yindex    exextra   cw_specifie_get_value base    exextra   extractstru exextra   min   max   inter   lct    if size exextra   type  EQ 8 then extra   mixstru exextra  extra    sextra   struct2string extra      find date1 and date2     key_caltype    extractatt top_uvalue   fileparameters currentfile caltype   widget_control  date1id  get_value   date1   widget_control  date2id  get_value   date2    if procedure EQ  pltt  AND date1 EQ date2 then BEGIN   we redefine the dates to the begining and end of the calendar     calendar    extractatt top_uvalue   fileparameters currentfile time_counter     date1   jul2date calendar 0      date2   jul2date calendar n_elements calendar 1      widget_control  date1id  set_value   date1     widget_control  date2id  set_value   date2   endif     fakecal    extractatt top_uvalue   fileparameters currentfile fakecal   IF keyword_set fakecal  THEN BEGIN     date1   date2jul date1    fakecal     date2   date2jul date2    fakecal   ENDIF   sdate1   strtrim date1  1    sdate2   strtrim date2  1      find boxzoom     if NOT keyword_set boxzoom  then widget_control  domainid  get_value   boxzoom   put boxzoom into a string   box    strtrim boxzoom 0  1    for i   1   n_elements boxzoom 1     3 2 strpos type   z  EQ  1  do        box   box   strtrim boxzoom i  1    if strpos type   z  NE  1 then BEGIN        common       min   min gdept  gdepw  max   max        box   box strtrim floor min  1 strtrim ceil max  1      endif   box   box    IF strpos type    diag up  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 2  1                            strtrim boxzoom 1  1          strtrim boxzoom 3  1        ENDIF   IF strpos type    diag dn  NE  1 THEN BEGIN     sendpoints       strtrim boxzoom 0  1          strtrim boxzoom 3  1                            strtrim boxzoom 1  1          strtrim boxzoom 2  1        ENDIF     find funclec_name  readparameters  meshparameters     readparameters    extractatt top_uvalue   readparameters currentfile    funclec_name   readparameters funclec_name   if keyword_set complete  then begin     sreadparameters   struct2string readparameters      meshparameters    extractatt top_uvalue   meshparameters currentfile      smeshparameters   struct2string meshparameters          We will define the string which will contain the command to be executed for the reading        Cmd     Definition of extra structure:   extra    sextra                  Definition of readparameters structure:   readparameters    sreadparameters                  Do we change of reading :   dummy   changeread readparameters                   Definition of meshparameters structure:   meshparameters    smeshparameters                  Do we change the grid :   dummy   changegrid meshparameters                   Read the data                  if n_elements date1in  ne 0 then date1   date1in else date1       sdate1                 if n_elements date2in  ne 0 then date2   date2in else date2       sdate2                funclec_name snamevar  date1  date2   snameexp                  timestep    strtrim keyword_set fakecal  1  parent    strtrim base  2                          boxzoom    box   findalways                         filename    sfilename        if n_elements sendpoints  NE 0 then          Cmd    Cmd         endpoints       sendpoints     type       type            Cmd    Cmd         _extra   mixstru ex  extra   nostruct       top_uvalue 1  findline top_uvalue   varinfo  numdessinout     filename  namevar       top_uvalue 1  findline top_uvalue   dates  numdessinout     date1  date2    ENDIF ELSE BEGIN     Cmd    funclec_name snamevar   sdate1   sdate2   snameexp                  timestep    strtrim keyword_set fakecal  1  parent    strtrim base  1                          boxzoom    box   findalways                         filename    sfilename        if n_elements sendpoints  NE 0 then          Cmd    Cmd         endpoints       sendpoints     type       type            Cmd    Cmd         _extra   mixstru ex  extra   nostruct    ENDELSE      print   ::::::::::::::::::::::       for i   0  n_elements Cmd 1 do print  Cmd i       print   ::::::::::::::::::::::         return  cmd end"); 
     339a[337] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefield.html", "changefield.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing       param NEWFIELDNAME         keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef        returns          uses          restrictions          examples          history          version     Id: changefield pro 150 2006 08 09 10:12:54Z navarro        todo   seb     PRO changefield  base  newfieldname  BOXZOOM   boxzoom       compile_opt idl2  strictarrsubs     widget_control  base  get_uvalue   top_uvalue     Change exextra :   exextra   definedefaultextra newfieldname    specifieid   widget_info base  find_by_uname    specifie    widget_control  specifieid  set_value   exextra   Change the variable   Do we need to change the vertical axis   according to the tye of points  T or W    dthlv1id   widget_info base  find_by_uname    dthlv1    widget_control  dthlv1id  get_uvalue   dthlv1_uval   oldzgridt   dthlv1_uval grid_t   get the type of point   currentfile   extractatt top_uvalue   currentfile    listgrid    extractatt top_uvalue   fileparameters currentfile listgrid   listvar    extractatt top_uvalue   fileparameters currentfile listvar     for i   0   n_elements listvar 1 do print   listvar i    listgrid i    indexvar   where listvar EQ newfieldname    indexvar   0   indexvar 0    zgridt   strupcase listgrid indexvar  NE  W    if we change the type of point   if zgridt NE oldzgridt then BEGIN   update dthlv1_uval grid_t     dthlv1_uval grid_t   zgridt     widget_control  dthlv1id  set_uvalue   dthlv1_uval   update cw_domain     if NOT keyword_set boxzoom  THEN          widget_control  widget_info base  find_by_uname    domain  get_value   boxzoom     widget_control  widget_info base  find_by_uname    domain  set_value   boxzoom   endif     return end"); 
     340a[338] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/changefile.html", "changefile.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing       param NEWFILENAME         keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef        keyword DATE1       keyword DATE2      keyword FIELDNAME          returns          uses          restrictions          examples          history          version     Id: changefile pro 150 2006 08 09 10:12:54Z navarro        todo   seb     PRO changefile  base  newfilename  BOXZOOM   boxzoom  DATE1   date1  DATE2   date2  FIELDNAME   fieldname       compile_opt idl2  strictarrsubs     widget_control  base   hourglass   widget_control  base  get_uvalue   top_uvalue   filelist   extractatt top_uvalue   filelist    IF size newfilename   type  EQ 7 THEN newfile    where filelist EQ newfilename 0      ELSE newfile   newfilename      it is already the index of the new file   if newfile EQ  1 then begin     nothing   report invalid filename      return   endif   oldfile   extractatt top_uvalue   currentfile    oldfilename   filelist oldfile     did we really change the file    if oldfile EQ newfile AND NOT  keyword_set BOXZOOM  OR keyword_set DATE1  OR keyword_set DATE2  OR keyword_set FIELDNAME  then return      widget_control  base  update   0       we update currentfile element of the top_uvalue      top_uvalue 1  findline top_uvalue   currentfile    newfile     Calendar     oldcalendar    extractatt top_uvalue   fileparameters oldfile time_counter   newcalendar    extractatt top_uvalue   fileparameters newfile time_counter   Did we change the calendar    if array_equal oldcalendar  newcalendar  NE 1 then begin  cm_4cal    for key_caltype     key_caltype    extractatt top_uvalue   fileparameters newfile caltype   fake or real calendar      fakecal    extractatt top_uvalue   fileparameters newfile fakecal   Which dates were selected          date1id   widget_info base  find_by_uname    calendar1      if NOT keyword_set date1  then widget_control  date1id  get_value   date1     jdate1   date2jul date1      if  where newcalendar EQ jdate1 0  EQ  1 then jdate1   newcalendar 0      date2id   widget_info base  find_by_uname    calendar2      if NOT keyword_set date2  then widget_control  date2id  get_value   date2     jdate2   date2jul date2      if  where newcalendar EQ jdate2 0  EQ  1 then jdate2   date1     if jdate2 LT jdate1 THEN jdate2   jdate1     widget_control  date1id   destroy     widget_control  date2id   destroy     basecal   widget_info base  find_by_uname    basecal      rien   cw_calendar basecal  newcalendar  jdate1  uname    calendar1                             FAKECAL   fakecal  uvalue    name: calendar1   frame      rien   cw_calendar basecal  newcalendar  jdate2  uname    calendar2                             FAKECAL   fakecal  uvalue    name: calendar2   frame    ENDIF ELSE BEGIN      if keyword_set date1  then begin       date1id   widget_info base  find_by_uname    calendar1        widget_control  date1id  set_value   date1     endif     if keyword_set date2  then begin       date2id   widget_info base  find_by_uname    calendar2        widget_control  date2id  set_value   date2     endif   ENDELSE     Grid parameters and domain     newgrid    extractatt top_uvalue   meshparameters newfile    change   changegrid newgrid    if change OR keyword_set boxzoom  then BEGIN     if NOT keyword_set boxzoom  then boxzoom    1     domainid   widget_info base  find_by_uname    domain      widget_control  domainid  set_value   boxzoom   endif     file name     IF oldfile NE newfile THEN BEGIN      flstid   widget_info base  find_by_uname    filelist      widget_control  flstid  set_combobox_select    newfile   ENDIF      Variables name     vlstid   widget_info base  find_by_uname    varlist    oldfieldname   widget_info vlstid   combobox_gettext    did we really change the liste of variables    oldlistvar    extractatt top_uvalue   fileparameters oldfile listvar   newlistvar    extractatt top_uvalue   fileparameters newfile listvar   if array_equal oldlistvar  newlistvar  NE 1 THEN        widget_control  vlstid  set_value   newlistvar   set the liste of variables to the new variable name   if keyword_set fieldname  then newfieldname   fieldname ELSE newfieldname   oldfieldname   indexvar   where newlistvar EQ newfieldname    indexvar   0   indexvar 0    widget_control  vlstid  set_combobox_select   indexvar   newfieldname   newlistvar indexvar    did we change the name of the variable    if newfieldname NE oldfieldname then BEGIN     changefield  base  newfieldname  BOXZOOM   boxzoom   ENDIF       widget_control  base  update   1     return end"); 
     341a[339] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/createhistory.html", "createhistory.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing       param SMALL   Vector composed of 3 or 4 elements  applyed to make a drawing on a small    portion of a page or screen  It delimit the zone where the drawing will    be done  If there is 4 elements: then is constituated of coordinates  expressed    in cm located from the up and left corner of the page or the window  in portrait    like in lanscape  of the bottom and left corner and of the up and right corner    of the drawing zone  If there is 3 elements: in this case  we divide the page or    the screen in small 0  columns and in small 1  lines the drawing made in the box    numbered small 2  The numerotation starting up and left by the number 1 and then     following the writing direction  By default  we make the largest drawing we can do     conserving the aspect rapport  exept when REMPLI is activated        returns          uses          restrictions          examples          history          version     Id: createhistory pro 150 2006 08 09 10:12:54Z navarro        todo   seb: je ne suis pas sur pour les param    documenter le reste      PRO createhistory  base  small       we save globalcommand in globaloldcommand     compile_opt idl2  strictarrsubs      widget_control base  get_uvalue   top_uvalue    globalcommand   extractatt top_uvalue   globalcommand      top_uvalue 1  findline top_uvalue   globaloldcommand    globalcommand   portrait or landscape      options   extractatt top_uvalue   options        optionsflag   extractatt top_uvalue   optionsflag     portrait    optionsflag where options EQ  Portrait Landscape  0 0    composition du text contennu ds history pro    texte    common                                       if keyword_set postscript  then begin                        noerase   1                       openps  infowidget   infowidget  portrait       strtrim portrait  2                   endif                                        beginning of 1                                      end of 1     if small 0 small 1  GT 1 then begin       for draw   1  small 0 small 1 1  do begin          texte    texte                         beginning of  strtrim draw 1  2                         noerase 1                          end of  strtrim draw 1  2        endfor    ENDIF    texte    texte                  if keyword_set postscript  then begin                       closeps  infowidget   infowidget                       printps                   endif    the new globalcommand     top_uvalue 1  findline top_uvalue   globalcommand    texte      for i   0  n_elements texte 1 do print  texte i       return end"); 
     342a[340] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd.html", "cutcmd.pro", "", "     file_comments        categories         param WIDCMD        param TOREAD        param NUMBEROFREAD        param PREFIX        param NAMEEXP        param ENDING         returns          uses          restrictions          examples          history          version     Id: cutcmd pro 150 2006 08 09 10:12:54Z navarro         todo   seb     PRO cutcmd  widcmd  toread  numberofread  prefix  nameexp  ending       compile_opt idl2  strictarrsubs     dummy   where byte widcmd  EQ  byte 0  nbdblquote     CASE 1 OF     nbdblquote MOD 2: stop   odd numbers are impossibles      nbdblquote GT 0:     nbdblquote EQ 0:BEGIN   widcmd is an expression of type:   numb1 a   numb2 b     numb   we will change into the form   numb1 a    numb2 b      numb   in order to suits the new method of cutcmd       widcmd   strtrim widcmd  2    we force to start with a   or         case 1 of         strpos widcmd    EQ 0:         strpos widcmd    EQ 0:         ELSE:widcmd       widcmd       ENDCASE       separator   strsplit widcmd     extract   regex        other   strsplit widcmd     extract        IF n_elements separator  NE n_elements other  THEN stop       widcmd           FOR i   0  n_elements other 1 DO BEGIN          IF isnumber other i  LT 1 THEN other i        other i              widcmd   widcmd   separator i    other i        ENDFOR        print  widcmd     END    ENDCASE    cutted   strsplit widcmd     extract    IF strpos widcmd    EQ 0 THEN start   0 ELSE start   1   nameexp   cutted start: :2    numberofread   n_elements nameexp     IF toread GE numberofread then begin     dummy   report toread cannot be larger than numberofread      stop   ENDIF   other   cutted 1 start: :2    make sure that we have a prefix for each nameexp   IF start EQ 0 THEN other     other      nameexp   nameexp toread    prefix   other toread    IF n_elements other  EQ numberofread   1 THEN ending   other numberofread  ELSE ending        help  prefix  nameexp  ending     return end"); 
     343a[341] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/definedefaultextra.html", "definedefaultextra.pro", "", "     file_comments        categories         param NOMVARIABLE         returns          uses          restrictions          examples          history          version    Id: definedefaultextra pro 150 2006 08 09 10:12:54Z navarro          todo   seb     FUNCTION definedefaultextra  nomvariable     compile_opt idl2  strictarrsubs      case strlowcase nomvariable  of          sn :BEGIN            return  get_extra min   31  max   37  inter    2  lct   33 nocontout          END          tn :BEGIN            return  get_extra min   20  max   31  inter    5  lct   39          END          un :BEGIN            return  get_extra min    1  max   1  inter    1  lct   64          END          vn :BEGIN            return  get_extra min    1  max   1  inter    1  lct   64          END       ELSE:    ENDCASE     return  get_extra min     max     inter     lct   39  end"); 
     344a[342] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/doubleclickaction.html", "doubleclickaction.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: doubleclickaction pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO doubleclickaction  event       compile_opt idl2  strictarrsubs      widget_control  event id   get_uvalue   uval    widget_control  event top  get_uvalue   top_uvalue   We activate the right window    widget_control  event id  get_value   win    wset  win   What is the selected drawing     smallin   extractatt top_uvalue   smallin     smallout   extractatt top_uvalue   smallout     x    convert_coord uval x 0 uval y 0   device   to_normal 0     y    convert_coord uval x 0 uval y 0   device   to_normal 1     numcolonne   n_elements where findgen smallin 0 smallin 0  lt x 1    numligne   n_elements where findgen smallin 1 smallin 1  lt 1 y 1    numdessin   numcolonne numligne smallin 0 1   Choice of the type of action     case uval press of       1:BEGIN           if top_uvalue smallin 2  NE numdessin then begin          tracecadre  smallin   erase          if total smallin EQ smallout  EQ 3 then             tracecadre  smallout   out          smallin    smallin 0:1  numdessin            top_uvalue 1  findline top_uvalue   smallin    smallin          tracecadre  smallin           p    extractatt top_uvalue   penvs numdessin 1            x    extractatt top_uvalue   xenvs numdessin 1            y    extractatt top_uvalue   yenvs numdessin 1          END       2:BEGIN            if top_uvalue smallout 2  NE numdessin then begin          tracecadre  smallout   erase          if total smallin EQ smallout  EQ 3 then             tracecadre  smallin          smallout    smallin 0:1  numdessin            top_uvalue 1  findline top_uvalue   smallout    smallout          tracecadre  smallout   out           endif       END       4:BEGIN          tracecadre   smallin 0:1  numdessin   fill          inserthistory  event top      beginning of  strtrim numdessin  2                  end of  strtrim numdessin  2    Putting at 0 of attributes of the value concerning the drawing:            numdessin   numdessin 1           top_uvalue 1  findline top_uvalue   varinfo  numdessin                  top_uvalue 1  findline top_uvalue   dates  numdessin     0l  0l            top_uvalue 1  findline top_uvalue   nameprocedures numdessin                top_uvalue 1  findline top_uvalue   types numdessin                top_uvalue 1  findline top_uvalue   domaines  numdessin    fltarr 6            top_uvalue 1  findline top_uvalue   txtcmd numdessin                if numdessin EQ smallin 2  then             tracecadre  smallin          if numdessin EQ smallout 2  then             tracecadre  smallout   out        END        ELSE:    endcase    updatewidget  event top      return end"); 
     345a[343] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt.html", "extractatt.pro", "", "     file_comments        categories         param TOP_UVALUE        param NAME         returns          uses          restrictions          examples          history          version     Id: extractatt pro 150 2006 08 09 10:12:54Z navarro         todo   seb     FUNCTION extractatt  top_uvalue  name     compile_opt idl2  strictarrsubs      taille   size top_uvalue     j    1    repeat BEGIN       j   j 1       if j EQ  size top_uvalue 2  then return   1    endrep until  top_uvalue 0  j  EQ name    return   top_uvalue 1  j  end"); 
     346a[344] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html", "findline.pro", "", "     file_comments        categories         param TOP_UVALUE        param NAME         returns          uses          restrictions          examples          history          version     Id: findline pro 150 2006 08 09 10:12:54Z navarro         todo   seb     FUNCTION findline  top_uvalue  name     compile_opt idl2  strictarrsubs      taille   size top_uvalue     j    1    repeat BEGIN       j   j 1       if j EQ  size top_uvalue 2  then return   1    endrep until  top_uvalue 0  j  EQ name    return  j end"); 
     347a[345] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/identifyclick.html", "identifyclick.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: identifyclick pro 150 2006 08 09 10:12:54Z navarro          todo   seb     FUNCTION identifyclick  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval   no_copy    thisEvent   TAG_NAMES event   Structure     if thisEvent EQ  WIDGET_TIMER  then press   0 ELSE press   event press      d 0 1  t 1 0 d 2 0     long click            d 1 0 t 2 0   normal click                          d 2 1 d 3 0 t 0 0  double click                                              t 3 0 d 0 0  double click    type    inutile     case 1 OF   d 0 0 1er reascending       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 0 AND press EQ 0:   d 0 1 1er click of the series       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 0 AND press ge 1:BEGIN          uval x    event x  0           uval y    event y  0           uval press   press          uval click   1          widget_control  event id  timer    3       END   d 1 0 1er reascending       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 1 AND press EQ 0:uval click   2   d 2 0 End of the long click       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 2 AND press EQ 0:BEGIN          type    long           uval x    uval x 0 event x    uval x   uval x sort uval x           uval y    uval y 0 event y    uval y   uval y sort uval y           uval click   0          uval press   event release       END   d 2 1       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 2 AND press ge 1:BEGIN          type    double           uval press   press          uval click   3       END   d 3 0 reascending and end of the double click       thisEvent EQ  WIDGET_DRAW  AND uval click EQ 3 AND press EQ 0:uval click   0   t 0 0 End of the double click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 0 AND press EQ 0:   t 1 0 long click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 1 AND press EQ 0:uval click   2   t 2 0 normal click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 2 AND press EQ 0:BEGIN           type    single           press   uval press          uval click   0       END   t 3 0 End of the double click       thisEvent EQ  WIDGET_TIMER  AND uval click EQ 3 AND press EQ 0:uval click   0   Imposible case in theory:       ELSE:BEGIN          print  thisEvent  uval click  press          print   Probleme  cas normalement impossible        END    endcase     widget_control  event id  set_uvalue uval   no_copy    return   type:type  end"); 
     348a[346] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html", "inserthistory.pro", "", "     file_comments        categories         param BASE        param TEXT        param LINE1        param LINE2         returns          uses          restrictions          examples          history          version    Id: inserthistory pro 150 2006 08 09 10:12:54Z navarro          todo   seb       PRO inserthistory   base  text  line1  line2     compile_opt idl2  strictarrsubs      widget_control base  get_uvalue   top_uvalue    globalcommand   extractatt top_uvalue   globalcommand      top_uvalue 1  findline top_uvalue   globaloldcommand    globalcommand     for i   0  n_elements globalcommand 1 do print  globalcommand i    we insert text between line1 and line2     index1   where globalcommand EQ line1    index1   index1 0 1     if index1  EQ  1 then begin        rien   report line1  n est pas trouve ds globalcommand         return     endif     index2   where globalcommand EQ line2    index2   index2 0      if index2  EQ  1 then begin        rien   report line2  n est pas trouve ds globalcommand         return     ENDIF   the new text:     globalcommand    globalcommand 0:index1  text  globalcommand index2:n_elements globalcommand 1    the new globalcommand      top_uvalue 1  findline top_uvalue   globalcommand    globalcommand       return end"); 
     349a[347] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/letsdraw.html", "letsdraw.pro", "", "     file_comments    It si the procedure lauching the drawing     If we do not give the command to it  it call    construitcommande to know what to trace       categories         param BASE  in required    The id of the widget where apply the drawing        keyword COMMANDE   A string of the style: read_data sst       keyword _EXTRA   Used to pass your keywords        uses   common pro        history   Sebastien Masson  smasson lodyc jussieu fr        version     Id: letsdraw pro 150 2006 08 09 10:12:54Z navarro        PRO letsdraw  base  COMMANDE   commande  _extra   ex     compile_opt idl2  strictarrsubs    common   we recuperate the uvalue of base   widget_control base  get_uvalue   top_uvalue   print      help   top_uvalue   struct   help   top_uvalue exextra   struct    if NOT keyword_set commande  then       commande   buildcmd base  _extra ex     if commande 0  EQ   then return   on recupere la uvalue de base    widget_control  base   hourglass    widget_control base  get_uvalue   top_uvalue   print      help   top_uvalue   struct   print       help   top_uvalue exextra   struct    help   top_uvalue extra   struct   print      print  commande   help mixstru top_uvalue exextra top_uvalue extra   struct       we recuperate the id of the graphic associated to the widget of id base     graphid   extractatt top_uvalue   graphid     widget_control  graphid  get_value   win   We select it  we will pass to it all commands concerning the window     wset  win     erase  255                         we clean the window   We make sure that  if we work with a screen coding colors on 24 bits  the specified background color  p background is the one applied       if  d n_colors gt 256 then begin         device  decomposed 1          p background ffffff x         plot 0 0          device  decomposed 0      ENDIF      smallout   long extractatt top_uvalue   smallout     numdessinout   smallout 2 1      tracecadre  smallout   fill        options   extractatt top_uvalue   options        optionsflag   extractatt top_uvalue   optionsflag     portrait    strtrim optionsflag where options EQ  Portrait Landscape  0  1 0           createpro   common                      noerase   1                      key_portrait     portrait                    Commande          filename    myuniquetmpdir    xxx_oneplot pro       inserthistory  base  Commande  beginning of  strtrim smallout 2  1            end of  strtrim smallout 2  1        top_uvalue 1  findline top_uvalue   penvs numdessinout     p     top_uvalue 1  findline top_uvalue   xenvs numdessinout     x     top_uvalue 1  findline top_uvalue   yenvs numdessinout     y     return end"); 
     350a[348] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/loadgrid.html", "loadgrid.pro", "", "     file_comments        categories         param MESHFILEIN         keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: loadgrid pro 150 2006 08 09 10:12:54Z navarro        todo   seb     PRO loadgrid  meshfilein  _extra   ex          compile_opt idl2  strictarrsubs    cm_4mesh   ccmeshparameters filename   meshfilein   split the name according to   delimiter   meshfile   strsplit meshfilein     extract    meshfile   strtrim meshfile  2    try to find a  pro file with this name    filepro    find meshfile 0   firstfound   onlypro 0    if this is an idl batch file or a procedure     if filepro NE  NOT FOUND  THEN BEGIN     CASE protype filepro  OF   this is a procedure        proc :listing   file_basename filepro   pro    this is a function  this case is not coded         func :stop   this is an IDL batch file        batch :listing    file_basename filepro   pro      ENDCASE   ENDIF ELSE BEGIN     filenc    find meshfile 0   firstfound   onlync 0      if filenc EQ  NOT FOUND  THEN stop     listing    initncdf      filenc     ENDELSE   add the arguments and keywords if necessary   IF n_elements meshfile  GT 1 AND strmid listing  0  1  NE   THEN BEGIN      FOR i   1 filepro NE  NOT FOUND  n_elements meshfile 1 DO listing   listing         meshfile i    ENDIF    IF strmid listing  0  1  NE   THEN listing   listing     strcalling       meshfilein     _extra   ex     createpro  listing  filename   myuniquetmpdir  for_createpro pro  _extra   ex  return END "); 
     351a[349] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/longclickaction.html", "longclickaction.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: longclickaction pro 152 2006 08 10 07:01:35Z smasson          todo   seb     PRO longclickaction  event     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uval   widget_control  event top  get_uvalue   top_uvalue   What is the selected drawing    smallout   extractatt top_uvalue   smallout    smallin   extractatt top_uvalue   smallin    small   smallin   x    convert_coord uval x 0  uval y 0   device   to_normal 0    y    convert_coord uval x 0  uval y 0   device   to_normal 1    numcolonne   n_elements where findgen small 0 small 0  lt x 1   numligne   n_elements where findgen small 1 small 1  lt 1 y 1   numdessin   numcolonne numligne small 0    we put on numdessin as the leader plot   tracecadre  smallin   erase   if total smallin EQ smallout  EQ 3 then        tracecadre  smallout   out   smallin    smallin 0:1  numdessin 1     top_uvalue 1  findline top_uvalue   smallin    smallin   tracecadre  smallin    p    extractatt top_uvalue   penvs numdessin     x    extractatt top_uvalue   xenvs numdessin     y    extractatt top_uvalue   yenvs numdessin      actionid   widget_info event top  find_by_uname    action    type   widget_info actionid   combobox_gettext      Change the domain box:     coor    convert_coord uval x  uval y   device   to_data    x    coor 0  0  coor 0  1    y    coor 1  0  coor 1  1    domainid   widget_info event top  find_by_uname    domain    IF type EQ  pltv  THEN BEGIN      currentfile   extractatt top_uvalue   currentfile      listgrid    extractatt top_uvalue   fileparameters currentfile listgrid     listvar    extractatt top_uvalue   fileparameters currentfile listvar     vlstid   widget_info event top  find_by_uname    varlist      namevar   widget_info vlstid   combobox_gettext      indexvar   where listvar EQ namevar      vargrid   strupcase listgrid indexvar      grille   1  glam  gphi     boxzoom    glam x 0  y 0  glam x 1  y 1  gphi x 0  y 0  gphi x 1  y 1    ENDIF ELSE boxzoom    x  y    Do we have to pass the boxzoom in indexes     currentplot    extractatt top_uvalue   smallin 2 1   options   extractatt top_uvalue   options       flags   extractatt top_uvalue   optionsflag    flags   flags  currentplot    changex    flags where options EQ  Longitude   x index 0  EQ 1   changey    flags where options EQ  Latitude   y index 0  EQ 1   if changex OR changey then begin   We want to find the type of grid which is used     currentfile   extractatt top_uvalue   currentfile      listgrid    extractatt top_uvalue   fileparameters currentfile listgrid     listvar    extractatt top_uvalue   fileparameters currentfile listvar     vlstid   widget_info event top  find_by_uname    varlist      namevar   widget_info vlstid   combobox_gettext      indexvar   where listvar EQ namevar      vargrid   strupcase listgrid indexvar      domdef  boxzoom  gridtype   vargrid     grille   1   1   1   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz     if changex then boxzoom 0:1     firstx  lastx      if changey then boxzoom 2:3     firsty  lasty    endif     widget_control  domainid  set_value   boxzoom     case uval press of     1:BEGIN       nodates    type EQ  xt  OR type EQ  yt  OR type EQ  zt  OR type EQ  t        updatewidget  event top   noboxzoom  nodates   nodates  notype   type NE  plt        letsdraw  event top     END     2:BEGIN        IF type EQ  plt  THEN BEGIN           top_uvalue 1  findline top_uvalue   types smallout 2 1     pltz          forcetype    pltz        ENDIF        updatewidget  event top   noboxzoom       letsdraw  event top     END     4:BEGIN       IF type EQ  plt  THEN BEGIN           top_uvalue 1  findline top_uvalue   types smallout 2 1     pltt          forcetype    pltt        ENDIF        updatewidget  event top   noboxzoom   nodates       letsdraw  event top  forcetype   forcetype     END   endcase     return end"); 
     352a[350] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html", "read_vermair.pro", "", "     file_comments        categories         param NAME        param DEBUT        param FIN        param NOMEXP        keyword PARENT   same as DIALOG_PARENT de dialog_message pro      keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword _EXTRA   Used to pass your keywords        returns          uses          restrictions          examples          history          version     Id: read_vermair pro 150 2006 08 09 10:12:54Z navarro        todo   seb      FUNCTION read_vermair  name  debut  fin  nomexp  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex     compile_opt idl2  strictarrsubs    common       if name EQ  un  then name    vozocrtx     if name EQ  vn  then name    vomecrty     if debut EQ fin then begin       res   lec name debut nomexp  BOXZOOM boxzoom  _EXTRA   ex     ENDIF ELSE res   lect name debut fin  nomexp  BOXZOOM boxzoom  _EXTRA   ex        return   tab:res  grille:vargrid  unite:  experience:varexp  nom:varname  end"); 
     353a[351] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/scanfile.html", "scanfile.pro", "", "     file_comments        categories         param NAMEFILE         keyword GRID        keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: scanfile pro 150 2006 08 09 10:12:54Z navarro        todo   seb : I don t know what to do with that            liste des presupposes:         1  le fichier a lire est un fichier netcdf         2  le nom de ce fichier finit         par U nc  V nc  W nc  T nc ou F nc  la lettre avant le         nc designant la grille a laquelle se rapporte la champ          Si tel n est pas la cas  le fichier est attribue a la grille         T          3  ce fichier contient une dimension infinie qui doit etre         celle qui se rapporte au temps et au mois 2 autres dimensions         dont les noms sont  x lon xi_  et  y lat  ou          eta_  ou bien en majuscule          4  il doit exiter ds ce fichier une unique variable n ayant         qu une dimension et etant la dimension temporelle  cette         variable sera prise comme axe des temps  Rq: si plusieurs         variables verifient ces criteres on considere la premiere         variable         5  Cette variable axe des temps doit contenir l attribut          units qui doit etre ecrit suivant la syntaxe:                  seconds since 0001 01 01 00:00:00                    hours since 0001 01 01 00:00:00                    days since 1979 01 01 00:59:59                    months since 1979 01 01 00:59:59                    years since 1979 01 01 00:59:59       je crois que c est tout             GRID UTVWF  to specify the type of grid  Defaut is  1           based on the name of the file if the file ends by          GRID _ TUVFW NC  not case sensible  or  2  T if case  1           is not found      FUNCTION scanfile  namefile  GRID   GRID  _extra   ex     compile_opt idl2  strictarrsubs    common     res    1     filename     fullname   isafile filename   namefile  IODIRECTORY   iodir  _extra   ex      open file     cdfid   ncdf_open fullname      What contains the file      infile   ncdf_inquire cdfid       find vargrid     IF keyword_set grid  THEN vargrid   strupcase grid  ELSE BEGIN     vargrid    T                  default definition     IF finite glamu 0  EQ 1 THEN BEGIN       pattern    GRID   GRID_   GRID   UPID_   30ID_        gdtype    T   U   V   W   F        fnametest   strupcase fullname        FOR i   0  n_elements pattern 1 DO BEGIN         FOR j   0  n_elements gdtype 1 DO BEGIN           substr   pattern i gdtype j            pos   strpos fnametest  substr            IF pos NE  1 THEN                vargrid   strmid fnametest  pos strlen substr 1  1          ENDFOR       ENDFOR     ENDIF   ENDELSE     name of all dimensions     namedim   strarr infile ndims    for dimiq   0  infile ndims 1 do begin     ncdf_diminq  cdfid  dimiq  tmpname  value      namedim dimiq    strlowcase tmpname    ENDFOR   we are looking for a x dimension    dimidx   where namedim EQ  x  OR strmid namedim  0  3  EQ  lon  OR strmid namedim  0  3  EQ  xi_  OR namedim EQ  xt_i7_156    dimidx   dimidx 0    if dimidx EQ  1 then begin     print   one of the dimensions must have the name:  x  or  lon  or  xi_  or  xt_i7_156      stop   endif   we are looking for a y dimension    dimidy   where namedim EQ  y  OR strmid namedim  0  3  EQ  lat  OR strmid namedim  4  EQ  eta_  OR namedim EQ  yt_j6_75    dimidy   dimidy 0    if dimidy EQ  1 then begin     print   one of the dimensions must have the name:  y  or  lat  or  eta_  or  yt_j6_75      stop   endif     name of all variables     we keep only the variables containing at least x  y and time dimension  if existing    namevar   strarr infile nvars    for varid   0  infile nvars 1 do begin     invar   ncdf_varinq cdfid  varid    what contains the variable      if  where invar dim EQ dimidx 0  NE  1 AND           where invar dim EQ dimidy 0  NE  1 AND           where invar dim EQ infile recdim 0  NE  1 OR infile recdim EQ  1        THEN namevar varid    invar name    ENDFOR   namevar   namevar where namevar NE     listgrid   replicate vargrid  n_elements namevar      time axis     date0fk   date2jul 19000101    IF infile recdim EQ  1 THEN BEGIN      jpt   1     time   date0fk     fakecal   1   ENDIF ELSE BEGIN     ncdf_diminq  cdfid  infile recdim  timedimname  jpt   we look for the variable containing the time axis   we look for the first variable having for only dimension infile recdim     varid   0     repeat BEGIN       invar   ncdf_varinq cdfid  varid         varid   varid 1     endrep until n_elements invar dim  EQ 1 AND invar dim 0  EQ infile recdim     varid   varid 1       CASE 1 OF       varid EQ  1:BEGIN          dummy   report the file  fullname  has no time axis C we create a fake calendar           fakecal   1         time   date0fk   lindgen jpt        END       invar natts EQ 0:BEGIN          dummy   report the variable  invar name  has no attribut C we create a fake calendar           fakecal   1         time   date0fk   lindgen jpt        END       ELSE:BEGIN     we want to know which attributes are attached to the time variable            attnames   strarr invar natts          for attiq   0  invar natts 1 do attnames attiq    ncdf_attname cdfid  varid  attiq          if  where attnames EQ  units 0  EQ  1 then BEGIN           dummy   report Attribut  units  not found for the variable  varid name C we create a fake calendar             fakecal   1           time   date0fk   lindgen jpt          ENDIF ELSE BEGIN    we read the time axis           ncdf_varget  cdfid  varid  time           time   double time            ncdf_attget  cdfid  varid   units  value   time_counter:units    seconds since 0001 01 01 00:00:00      time_counter:units    hours since 0001 01 01 00:00:00      time_counter:units    days since 1979 01 01 00:00:00      time_counter:units    months since 1979 01 01 00:00:00      time_counter:units    years since 1979 01 01 00:00:00              value   strtrim strcompress string value  2            mots   str_sep value                unite   mots 0            debut   str_sep mots 2        now we try to find the attribut called calendar    the the attribute  calendar  exists    If no  we suppose that the calendar is gregorian calendar             if  where attnames EQ  calendar 0  NE  1 then BEGIN             ncdf_attget  cdfid  varid   calendar  value             value   string value              CASE value OF                noleap :key_caltype    noleap                 360d :key_caltype    360d                 greg :IF n_elements key_caltype  EQ 0 THEN key_caltype    greg                ELSE:BEGIN              notused   report Unknown calendar:  value  we use greg calendar                   key_caltype    greg                END             ENDCASE           ENDIF ELSE BEGIN          notused   report Unknown calendar  we use  key_caltype  calendar               IF n_elements key_caltype  EQ 0 THEN key_caltype    greg            ENDELSE     BEWARE we have to recuperate the calendar attribute and ajust TIME by consequence        We pass TIME in IDL julian days             unite   strlowcase unite            IF strpos unite   s  strlen unite 1  NE  1 THEN unite   strmid unite  0  strlen unite 1            IF strpos unite   julian_  NE  1 THEN unite   strmid unite  7            case unite of              second :time   julday debut 1  debut 2  debut 0 time 86400 d              hour :time   julday debut 1  debut 2  debut 0 time 24 d              day :time   julday debut 1  debut 2  debut 0 time              month :BEGIN                if total fix time  NE time  NE 0 then     we switch to days with 30d m                  time   julday debut 1  debut 2  debut 0 round time 30                  ELSE for t   0  n_elements time 1 DO                    time t    julday debut 1 time t  debut 2  debut 0              END              year :BEGIN               if total fix time  NE time  NE 0 then     we switch to days with 365d y                  time   julday debut 1  debut 2  debut 0 round time 365                  ELSE for t   0  n_elements time 1 do                    time t    julday debut 1  debut 2  debut 0 time t              END           ENDCASE     high frequency calendar: more than one element per day           IF max histogram long time time 0  GT 1 THEN fakecal   1 ELSE fakecal   0           date0fk   date2jul 19000101            IF keyword_set fakecal  THEN time   date0fk lindgen jpt              ELSE time   long time            ENDELSE       END     ENDCASE   ENDELSE     ncdf_close  cdfid     return   filename:fullname  time_counter:time  listvar:namevar                listgrid:strupcase listgrid  caltype:key_caltype                fakecal:date0fk fakecal  end"); 
     354a[352] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html", "selectfile.pro", "", "  PRO selectfile_event  event       compile_opt idl2  strictarrsubs    common     widget_control  event id  get_uvalue   eventuvalue   default definition of messenger when selectfile_event is called   directly without calling xmanager   widget_control  event handler  get_uvalue   messenger    messenger    1    IF chkstru eventuvalue   name  EQ 0 THEN return    case eventuvalue name of   cancel button      Global Cancel :BEGIN        widget_control  event handler  get_uvalue   messenger        messenger    1       widget_control  event handler   destroy     END   data file informations      datafilename :BEGIN       widget_control  event id  get_value   filename       filename   isafile filename   filename 0   onlync                              title    data file name   tryfind   fully_qualify_path        if size filename   type  NE 7 then BEGIN          widget_control  event id  set_value             return       ENDIF       widget_control  event id  set_value   filename     END      browse datafilename :BEGIN       filename   isafile onlync  title    data file name   tryfind   fully_qualify_path        if size filename   type  NE 7 then return       widget_control  widget_info event handler  find_by_uname    datafilename                            set_value   filename     END   switch automatic by and mesh definition buttons      gridload :BEGIN       IF event select EQ 1 THEN BEGIN          widget_control  widget_info event handler  find_by_uname    argtxt  set_value             widget_control  widget_info event handler  find_by_uname    kwdtxt  set_value             widget_control  widget_info event handler  find_by_uname    kwd base  sensitive   1         CASE event value OF            via initnetcdf :BEGIN             widget_control  widget_info event handler  find_by_uname    meshload  set_value    initncdf  editable   0             widget_control  widget_info event handler  find_by_uname    arg base  sensitive   0             widget_control  widget_info event handler  find_by_uname    kwdlab  set_value    initncdf keywords:            END            via perso :BEGIN             widget_control  widget_info event handler  find_by_uname    meshload  set_value     editable   1             widget_control  widget_info event handler  find_by_uname    arg base  sensitive   1             widget_control  widget_info event handler  find_by_uname    kwdlab  set_value    keywords of IDL procedure:            END          ENDCASE       ENDIF      END   name of the procedure or batch file      meshload :BEGIN       widget_control  event id  get_value   filename       filename    find filename 0   onlypro   firstfound 0        if filename EQ  NOT FOUND  then begin         widget_control  event id  set_value             return       endif        CASE protype filename  OF   this is a procedure          proc :BEGIN            widget_control  widget_info event handler  find_by_uname    arg base  sensitive   1           widget_control  widget_info event handler  find_by_uname    kwd base  sensitive   1           widget_control  widget_info event handler  find_by_uname    kwdlab  set_value   file_basename filename   pro  keywords:          END   this is a function  this case is not accepted          func :BEGIN            widget_control  event id  set_value               return         END   this is an IDL batch file          batch :BEGIN            widget_control  widget_info event handler  find_by_uname    arg base  sensitive   0           widget_control  widget_info event handler  find_by_uname    kwd base  sensitive   0           widget_control  widget_info event handler  find_by_uname    kwdlab  set_value    no keywords:          END       ENDCASE       widget_control  widget_info event handler  find_by_uname    argtxt  set_value           widget_control  widget_info event handler  find_by_uname    kwdtxt  set_value           widget_control  event id  set_value   file_basename filename   pro      END      browse meshload :BEGIN       filename   isafile iodir   homedir   onlypro  title    to load the grid file        if size filename   type  NE 7 then return       meshload_id   widget_info event handler  find_by_uname    meshload        widget_control  meshload_id  set_value   filename       selectfile_event   ID:meshload_id  TOP:event top  HANDLER:event handler      END    Lets Go  button      Lets Go :BEGIN       widget_control  widget_info event handler  find_by_uname    datafilename                            get_value   datafilename       datafilename   datafilename 0        IF datafilename EQ   THEN return       datafilename   isafile filename   datafilename   tryfind   onlync                                  title    data file name   fully_qualify_path        if size datafilename   type  NE 7 then BEGIN          widget_control  widget_info event handler  find_by_uname    datafilename                              set_value             return       ENDIF        widget_control  widget_info event handler  find_by_uname    gridload                            get_value   gridload       widget_control  widget_info event handler  find_by_uname    argtxt                            get_value   argtxt       argtxt   strtrim argtxt 0  2        IF strpos argtxt    EQ 0 THEN argtxt   strmid argtxt  1        widget_control  widget_info event handler  find_by_uname    kwdtxt                            get_value   kwdtxt       kwdtxt   strtrim kwdtxt 0  2        IF strpos kwdtxt    EQ 0 THEN kwdtxt   strmid kwdtxt  1         CASE gridload 0  OF          via perso :BEGIN           meshload_id   widget_info event handler  find_by_uname    meshload            widget_control  meshload_id  get_value   meshload           meshload   meshload 0            IF meshload EQ   THEN return           meshload    find meshload 0   onlypro   firstfound 0            if meshload EQ  NOT FOUND  then begin             widget_control  meshload_id  set_value                 return           endif          END           via initnetcdf :meshload   datafilename       ENDCASE       IF strlen argtxt  NE 0 THEN meshload   meshload         argtxt       IF strlen kwdtxt  NE 0 THEN meshload   meshload         kwdtxt       widget_control  event handler  get_uvalue   messenger        messenger   create_struct datafilename  datafilename   meshload  meshload        widget_control  event handler   destroy     END    endcase   return end        file_comments        categories         param DATAFILENAME        param IDLFILE        param ARGSPRO         keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: selectfile pro 152 2006 08 10 07:01:35Z smasson         todo   seb: documenter les params      FUNCTION selectfile  datafilename  idlfile  argspro  _extra   ex       compile_opt idl2  strictarrsubs    common         We create a pointer in the uvalue to recuperate answers at setted    questions atthe time of the use of this widget  So when the widget    is deleted in the procedure  event pro  the variable on which the    pointer pointed  contained in the uvalue of the widget  is not    deleted and we can recuperate the result      messenger   ptr_new allocate_heap    base   widget_base column  title    selectfile   align_center  uvalue   messenger  _EXTRA   ex    cancel button   dummyid   widget_button base  value    Cancel  uvalue    name: Global Cancel    data file informations   basea   widget_base base   row   align_center    dummyid   widget_label basea  value    Data file name:     database   widget_text basea  value     uvalue    name: datafilename                              uname    datafilename  xsize   45   EDITABLE    dummyid   widget_button basea  value    Browse  uvalue    name: browse datafilename    switch automatic by and mesh definition buttons   baseb   widget_base base   row   align_center    gdldid   cw_bgroup baseb   automatic grid construction with initncdf pro                                     grid construction with other IDL batch or procedure                             exclusive  set_value   0  uvalue    name: gridload                            uname    gridload  button_uvalue    via initnetcdf   via perso    name of the procedure or batch file   basec   widget_base base   row   align_center  uname    pro base    dummyid   widget_label basec  value    IDL batch file of procedure    basemeshload   widget_text basec  value    initncdf  uvalue    name: meshload                              uname    meshload  xsize   45  editable   0    dummyid   widget_button basec  value    Browse  uvalue    name: browse meshload    arguments informations   based   widget_base base   row   align_center  uname    arg base  sensitive   0    dummyid   widget_label based  value    procedure arguments    agrbase   widget_text based  value     uvalue    name: argtxt                              uname    argtxt  xsize   45   EDITABLE    keyword informations   basee   widget_base base   row   align_center  uname    kwd base    dummyid   widget_label basee  uname    kwdlab  value         keywords of initncdf:    dummyid   widget_text basee  value                                 uvalue    name: kwdtxt  uname    kwdtxt  xsize   45   EDITABLE     Lets Go  button   basego   widget_button base  value    Lets Go  uvalue    name: Lets Go       IF n_elements datafilename  NE 0 THEN BEGIN      widget_control  database  set_value   datafilename     selectfile_event   ID:database  TOP:base  HANDLER:base    ENDIF    IF n_elements idlfile  NE 0 THEN BEGIN      widget_control  basemeshload  set_value   idlfile     selectfile_event   ID:basemeshload  TOP:base  HANDLER:base      widget_control  basemeshload  get_value   idlfile2     IF idlfile2 0  NE   THEN widget_control  gdldid  set_value   1   ENDIF    IF n_elements argspro  NE 0 THEN widget_control  argbase  set_value   argspro     IF n_elements datafilename  EQ 0 THEN BEGIN      widget_control  base   realize     xmanager   selectfile  base  event_handler    selectfile_event  no_block   0   ENDIF ELSE selectfile_event   ID:basego  TOP:base  HANDLER:base      get back the information from selectfile_event   res    messenger   ptr_free  messenger   if size res   type  NE 8 then return   1    loadgrid  res meshload  _extra   ex    ccreadparameters    funclec_name: read_ncdf                jpidta:jpidta  jpjdta:jpjdta  jpkdta:jpkdta               ixmindta:ixmindta  ixmaxdta:ixmaxdta               iymindta:iymindta  iymaxdta:iymaxdta               izmindta:izmindta  izmaxdta:izmaxdta     res3   scanfile res datafilename  _extra   ex    if size res3   type  NE 8 then return    1    return   fileparameters:res3  readparameters:ccreadparameters  meshparameters:ccmeshparameters   end"); 
     355a[353] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/singleclickaction.html", "singleclickaction.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: singleclickaction pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO singleclickaction  event     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data  return      widget_control  event id  get_uvalue   uval   widget_control  event top  get_uvalue   top_uvalue   actionid   widget_info event top  find_by_uname    action    type   widget_info actionid   combobox_gettext    IF type NE  plt  THEN return   We activate the right window   widget_control  event id  get_value   win   wset  win   choice of the type of action   case uval press of     1:BEGIN       coor    convert_coord uval x 0  uval y 0   device   to_data        x   coor 0        y   coor 1        help   x   y       oldgrid   vargrid       CASE strupcase vargrid  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     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 RETURN       IF y GT  y range 1  THEN RETURN       IF y LT  y range 0  THEN RETURN         cell   inquad x  y  x1  y1  x2  y2  x3  y3  x4  y4                         onsphere   key_onearth            x1    1                   free memory         y1    1                   free memory         x2    1                   free memory         y2    1                   free memory         x3    1                   free memory         y3    1                   free memory         x4    1                   free memory         y4    1                   free memory              IF cell 0  EQ  1 OR n_elements cell  GT 1 THEN RETURN               yy   cell 0 nx 1 key_periodic nx EQ jpi        xx   cell 0  MOD  nx 1 key_periodic nx EQ jpi          CASE strupcase vargrid  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         print  glamt xx  yy  gphit xx  yy          cmd    buildcmd event top  boxzoom   boxzoom        END     ELSE:   endcase    RETURN end"); 
     356a[354] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/tracecadre.html", "tracecadre.pro", "", "     file_comments        categories         param SMALL         keyword OUT        keyword ERASE        keyword FILL          returns          uses          restrictions          examples          history          version    Id: tracecadre pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO tracecadre  small  out   out  erase   erase  fill   fill     determination of the column and of the line corresponding in input to small     compile_opt idl2  strictarrsubs      numdessin   small 2 1    numligne   numdessin small 0     numcolonne   numdessin numligne small 0    determination of poscadre    largeurcolonne   1 small 0     largeurligne   1 small 1     cadre    numcolonne largeurcolonne 1 numligne 1 largeurligne                   numcolonne 1 largeurcolonne  1 numligne largeurligne     decale   0 001    cadre   cadre decale decale decale decale     reinitplt     p position    0  0  1  1     IF keyword_set fill  then begin       polyfill   cadre 0  cadre 2  cadre 2  cadre 0  cadre 0              cadre 1  cadre 1  cadre 3  cadre 3  cadre 1  color   255   normal    ENDIF ELSE BEGIN       plot   cadre 0  cadre 2  cadre 2  cadre 0  cadre 0              cadre 1  cadre 1  cadre 3  cadre 3  cadre 1             xrange    0  1  yrange    0  1  linestyle   2 keyword_set out              noerase   normal  thick   2  color   0 255 keyword_set erase     ENDELSE      return end"); 
     357a[355] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/updatewidget.html", "updatewidget.pro", "", "     file_comments        categories         param BASE  in required    The id of the widget where apply the drawing        keyword NOBOXZOOM        keyword NODATES        keyword NOTYPE          returns          uses          restrictions          examples          history          version    Id: updatewidget pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO updatewidget  base  NOBOXZOOM   noboxzoom  NODATES   nodates  NOTYPE   notype       compile_opt idl2  strictarrsubs      widget_control base  get_uvalue   top_uvalue    smallin   extractatt top_uvalue   smallin     numdessinin   smallin 2 1        widget_control  base  update   0     date1 et date2      if keyword_set nodates  then begin       date1   0       date2   0     ENDIF ELSE BEGIN        dates    extractatt top_uvalue   dates  numdessinin        date1   dates 0    date2   dates 1     ENDELSE     domain      boxzoom    extractatt top_uvalue   domaines  numdessinin     if total boxzoom  EQ 0 then boxzoom    1    if keyword_set noboxzoom  then boxzoom   0     varinfo: filename   namevar      varinfo    extractatt top_uvalue   varinfo  numdessinin     filename   varinfo 0    nomvar   varinfo 1       if filename NE   OR nomvar NE   THEN BEGIN       changefile  base  filename  fieldname   nomvar  BOXZOOM   boxzoom  DATE1   date1  DATE2   date2    ENDIF ELSE BEGIN       if date1 NE 0 then begin          date1id   widget_info base  find_by_uname    calendar1           widget_control  date1id  set_value   date1       endif       if date2 NE 0 then begin          date2id   widget_info base  find_by_uname    calendar2           widget_control  date2id  set_value   date2       endif       if keyword_set boxzoom  then BEGIN           domainid   widget_info base  find_by_uname    domain           widget_control  domainid  set_value   boxzoom       endif    ENDELSE     exextra      if n_elements extractatt top_uvalue   exextra numdessinin  NE 0 then begin       exextra    extractatt top_uvalue   exextra numdessinin        specifieid   widget_info base find_by_uname    specifie        widget_control  specifieid  set_value   exextra    endif     text command      txtcmd    extractatt top_uvalue    txtcmd numdessinin     if txtcmd NE   then begin       txtcmdid   widget_info base  find_by_uname    txtcmd        widget_control  txtcmdid  set_value   txtcmd    endif     graphtype         if NOT keyword_set notype  then BEGIN       graphtype    extractatt top_uvalue   types numdessinin        if graphtype NE   then begin          actionid   widget_info base find_by_uname    action           widget_control  actionid  get_value   action_value          widget_control  actionid  set_combobox_select    where action_value EQ graphtype 0        endif    endif      widget_control  base  update   1        return end"); 
     358a[356] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xcreateanim.html", "xcreateanim.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version    Id: xcreateanim pro 150 2006 08 09 10:12:54Z navarro          todo   seb     pro xcreateanim_event  event      compile_opt idl2  strictarrsubs    common   We recuperate arguments contained in the widget   if tag_names event   structure_name  NE  WIDGET_BUTTON  then return   widget_control  event id  get_uvalue   uval   if n_elements uval  EQ 0 then return   if uval EQ  cancel  then begin     widget_control  event top   destroy     return   ENDIF   We will write the animation      widget_control  event top  get_uvalue   local_uvalue   widget_control  local_uvalue parent  get_uvalue   top_uvalue     calendar    extractatt top_uvalue   fileparameters local_uvalue indexfile time_counter   key_caltype    extractatt top_uvalue   fileparameters local_uvalue indexfile caltype   fakecal    extractatt top_uvalue   fileparameters local_uvalue indexfile fakecal     widget_control  widget_info event top  find_by_uname    Filename                        get_value   nomfic   nomfic   nomfic 0      widget_control  widget_info event top  find_by_uname    directorie                        get_value   animdir   animdir   animdir 0      widget_control  widget_info event top  find_by_uname    debut                        get_value   vdate1   index1   where calendar eq date2jul vdate1    index1   index1 0     if index1 EQ  1 then return     widget_control  widget_info event handler  find_by_uname    fin                        get_value   vdate2   index2   where calendar eq date2jul vdate2    index2   index2 0     if index2 EQ  1 OR index2 LE index1 then return   We delete the widget before create the file  ps   widget_control  event top   destroy     creation of the routine which will serve us to do the drawing     We recuperate the list of instructions    globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program   createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                   KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript  DATE1IN   date1in  DATE2IN   date2in     creation of the file       we recuperate the number of octets on which we code the palette    device  get_visual_depth   depth   Picture s size  in number of pixels :   xsize    d x_size   ysize    d y_size     We check that the file s name end by  gif   if strpos nomfic   gif  EQ  1 then nomfic   nomfic gif     current_window    d window   window   free   pixmap  xsize   xsize  ysize   ysize     indication of the number of the picture we are creating   base   widget_base    sliderid   widget_slider base  minimum   1  maximum   index2 index1 1  value   1                                title    image number:     widget_control  base   realize     Beginning of the gif file  Writting of an empty  picture    IF keyword_set fakecal  THEN date   index1 ELSE date   jul2date calendar index1    xxx2ps   noerase  date1in   date  date2in   date       image   tvrd true   depth GT 8    If an 8 bit image was read  reduce the number of colors   if depth le 8 then begin     tvlct  red  green  blue   get     reduce_colors  image  index     red   red index      green   green index      blue   blue index    endif                 if depth gt 8 then     Convert 24 bit image to 8 bit   image   color_quan image  1  red  green  blue  colors   256  get_translation   translation   map_all        write_gif  animdir nomfic  image  red  green  blue   multiple   wdelete   d window     Creation and writting loop in the file      IF index2 GT index1 THEN BEGIN     FOR ind   index1 1  index2 do BEGIN         widget_control  sliderid  set_value   ind index1 1   We move the slider          window   free   pixmap  xsize   xsize  ysize   ysize       IF keyword_set fakecal  THEN date   ind ELSE date   jul2date calendar ind        xxx2ps   noerase  date1   date  date2   date               image   tvrd true   depth GT 8          if depth gt 8 then           image   color_quan image  1  aaa  bbb  ccc  colors   256  translation   translation            write_gif  animdir nomfic  image  red  green  blue   multiple       wdelete   d window     ENDFOR   ENDIF    We put a last white picture   window   free   pixmap  xsize   xsize  ysize   ysize   reinitplt   plot    0    0   nodata   image   tvrd true   depth GT 8      if depth gt 8 then       image   color_quan image  1  aaa  bbb  ccc  colors   256  translation   translation        write_gif  animdir nomfic  image  red  green  blue   multiple   wdelete   d window   File s closing    write_gif  animdir nomfic   close    widget_control  base   destroy    Rerock in  normal  mode   thisOS   strupcase strmid version os_family  0  3      wset  current_window    If we are under x  we try to lauch xanim     if thisOS NE  MAC  AND thisOS NE  WIN  then begin     spawn   which xanim  result     if strpos result 0   xanim  EQ strlen result 0 5 then spawn   xanim  animdir nomfic      endif        return end        file_comments        categories         param PARENT         returns          uses          restrictions          examples          history          version    Id: xcreateanim pro 150 2006 08 09 10:12:54Z navarro          todo   seb     PRO xcreateanim  parent     compile_opt idl2  strictarrsubs    common      widget_control  parent  get_uvalue   top_uvalue     We will make sure that all procedure are not in pltt      procedures   extractatt top_uvalue   nameprocedures     if total procedures EQ  pltt  NE 0 then begin       nothing   report Certains des plots ont un axe se rapportant au temps   C Animation impossible   error        return    ENDIF     We will make sure that all figure have the same calendar      filelist   extractatt top_uvalue    filelist     filenames    extractatt top_uvalue    varinfo 0       filenames   reform filenames     filenames   filenames uniq filenames  sort filenames     if strtrim filenames 0  1  EQ   then filenames   filenames 1:n_elements filenames 1     indexfile    where filelist EQ filenames 0 0     calendar    extractatt top_uvalue   fileparameters indexfile time_counter      key_caltype    extractatt top_uvalue   fileparameters indexfile caltype    fakecal    extractatt top_uvalue   fileparameters indexfile fakecal    if n_elements filenames  GT 1 then begin       for i   1  n_elements filenames 1 do begin          indexfilebis    where filelist EQ filenames i 0           calendarbis    extractatt top_uvalue   fileparameters indexfilebis time_counter          if n_elements calendarbis  NE n_elements calendar   then begin             nothing   report Les diffrents plots n utilisent pas le meme calendrier   C Animation impossible   error              return          ENDIF          if total calendar NE calendarbis  NE 0 then begin             nothing   report Les diffrents plots n utilisent pas le meme calendrier   C Animation impossible   error              return          endif       endfor    endif     It is possible to do an animation       base   widget_base column  title    animation creation  uvalue    parent:parent  indexfile:indexfile        rien   widget_label base  value    animation name     rien   widget_text base value anim_idl gif  uname Filename   editable     rien   widget_label base  value    animation directory     if n_elements animdir  EQ 0 then cd  current   animdir    rien   widget_text base value animdir  uname directorie   editable     rien   widget_label base  value    starting date     rien   cw_calendar base  calendar  calendar 0                            FAKECAL   fakecal  uname    debut  uvalue    name: calendar   frame     rien   widget_label base  value    ending date     rien   cw_calendar base  calendar  calendar n_elements calendar 1                            FAKECAL   fakecal  uname    fin  uvalue    name: calendar   frame     rien   widget_button base value OK  uvalue    ok     rien   widget_button base value Cancel  uvalue    cancel       widget_control base realize    xmanager xcreateanim  base   no_block        return end"); 
     359a[357] = new Array("./ToBeReviewed/WIDGET/AUTOUR_de_XXX/xxxmenubar_event.html", "xxxmenubar_event.pro", "", "     file_comments        categories         param EVENT         returns          uses          restrictions          examples          history          version     Id: xxxmenubar_event pro 150 2006 08 09 10:12:54Z navarro        todo    seb     PRO xxxmenubar_event  event     compile_opt idl2  strictarrsubs    common     case event value of      Open  :begin        oldmeshparams   ccmeshparameters       newfile   selectfile        if size newfile   type  NE 8 then return       widget_control  event top   hourglass       widget_control  event top  update   0       widget_control  event top  get_uvalue   top_uvalue   We take care of filelist       filelist   extractatt top_uvalue   filelist        filelist    filelist  newfile fileparameters filename        currentfile   n_elements filelist 1   We update the widget       filelistid   widget_info event top  find_by_uname    filelist        widget_control  filelistid  combobox_additem   file_basename newfile fileparameters filename        widget_control  filelistid  set_combobox_select   currentfile   We update filelist and currentfile s elements of the top_value        top_uvalue 1  findline top_uvalue   filelist    filelist       oldfile    top_uvalue 1  findline top_uvalue   currentfile         top_uvalue 1  findline top_uvalue   currentfile    currentfile   We take care of the name of the variable       vlstid   widget_info event top  find_by_uname    varlist    What is the selected field   Do we reselect it         fieldname   widget_info vlstid   combobox_gettext        index   where newfile fileparameters listvar EQ fieldname         widget_control  vlstid  set_value   newfile fileparameters listvar       widget_control  vlstid  set_combobox_select   0   index 0    We take care of the calendar        key_caltype   newfile fileparameters caltype       date1id   widget_info event top  find_by_uname    calendar1        widget_control  date1id  get_value   date1       widget_control  date1id   destroy       jdate1   jul2date date1        if  where newfile fileparameters time_counter EQ jdate1 0  EQ  1         then jdate1   newfile fileparameters time_counter 0        date2id   widget_info event top  find_by_uname    calendar2        widget_control  date2id  get_value   date2       widget_control  date2id   destroy       jdate2   jul2date date2        if  where newfile fileparameters time_counter EQ jdate2 0  EQ  1 then jdate2   jdate1       basecal   widget_info event top  find_by_uname    basecal        fakecal   newfile fileparameters fakecal       rien   cw_calendar basecal  newfile fileparameters time_counter  jdate1  uname    calendar1                               FAKECAL   fakecal  uvalue    name: calendar1   frame        rien   cw_calendar basecal  newfile fileparameters time_counter  jdate2  uname    calendar2                               FAKECAL   fakecal  uvalue    name: calendar2   frame    We update fileparameters  readparameters et meshparameters elements of the top_value       newfileparameters   ptrarr currentfile 1   allocate_heap        FOR i   0  currentfile 1 DO             newfileparameters i     extractatt top_uvalue   fileparameters i         newfileparameters currentfile    newfile fileparameters       ptr_free  extractatt top_uvalue   fileparameters         top_uvalue 1  findline top_uvalue   fileparameters    newfileparameters         newreadparameters   ptrarr currentfile 1   allocate_heap        FOR i   0  currentfile 1 DO             newreadparameters i     extractatt top_uvalue   readparameters i         newreadparameters currentfile    newfile readparameters       ptr_free  extractatt top_uvalue   readparameters         top_uvalue 1  findline top_uvalue   readparameters    newreadparameters         newmeshparameters   ptrarr currentfile 1   allocate_heap        FOR i   0  currentfile 1 DO             newmeshparameters i     extractatt top_uvalue   meshparameters i         newmeshparameters currentfile    newfile meshparameters       ptr_free  extractatt top_uvalue   meshparameters         top_uvalue 1  findline top_uvalue   meshparameters    newmeshparameters   We update the widget        if cmpgrid oldmeshparams  then BEGIN         domainid   widget_info event top  find_by_uname    domain          widget_control  domainid  set_value    1       endif       widget_control  event top  update   1     end      New xxx  :BEGIN       widget_control  event top  get_uvalue   top_uvalue       extra   extractatt top_uvalue   extra        xxx  CALLERWIDID   event top  _extra   extra     end      Quit :begin        widget_control  event top  get_uvalue   top_uvalue       ptr_free  extractatt top_uvalue   exextra        ptr_free  extractatt top_uvalue   fileparameters        ptr_free  extractatt top_uvalue   readparameters        ptr_free  extractatt top_uvalue   meshparameters        ptr_free  top_uvalue       widget_control  event top   destroy  We shut the widget     end      PostScript  :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save as postscript in demo mode          return       ENDIF       widget_control  event top  get_uvalue   top_uvalue   We recuperate the list of instructions       globalcommand   extractatt top_uvalue   globalcommand         for i   0  n_elements globalcommand 1 do print  globalcommand i    We complete by first and last lines of the program        createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                       KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript                       PORTRAIT   portrait  LANDSCAPE   landscape                       DATE1IN   date1in  DATE2IN   date2in                        POSTSCRIPT     END      Animated gif  :begin        IF float strmid version release 0 3  GE 6 2 THEN xcreateanim  event top     end      Gif  :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save as an image in demo mode          return       ENDIF       widget_control  event top  get_uvalue   top_uvalue       smallin   extractatt top_uvalue   smallin        numdessinin   smallin 2 1       smallout   extractatt top_uvalue   smallout        numdessinout   smallout 2 1       tracecadre  smallin   erase       tracecadre  smallout   erase       filename   xquestion dans quelle fichier gif voulez vous sauver  C l ecran de xxx   xxx_image gif        if rstrpos filename   gif  NE strlen filename 4 then filename   filename gif        filename   isafile file   filename  io   imagedir   new        saveimage  filename   quiet     end      IDL procedure :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save as a idl program file in demo mode          return       ENDIF   We recuperate the name of the file       filename   xquestion dans quelle procedure IDL voulez vous sauver  C la realisation de ce graph   xxx_figure pro    We complete it by a  pro       if rstrpos filename   pro  NE strlen filename 4 then filename   filename pro        filename   isafile file   filename  io   homedir   new        widget_control  event top  get_uvalue   top_uvalue   portrait or landscape         options   extractatt top_uvalue   options           optionsflag   extractatt top_uvalue   optionsflag        portrait    optionsflag where options EQ  Portrait Landscape  0 0    We read commands to do a plot       globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program       thisOS   strupcase strmid version os_family  0  3        CASE thisOS of          MAC :sep    :           WIN :sep             ELSE:sep           ENDCASE       poslastsep   rstrpos filename  sep        proname   strmid filename  poslastsep 1  strlen filename poslastsep 1 4        globalcommand    pro  proname  NOERASE   noerase  POSTSCRIPT   postscript  PORTRAIT   portrait  LANDSCAPE   landscape  DATE1IN   date1in  DATE2IN   date2in  _extra   ex                                                                 globalcommand                                                            return                              end    We write it in a program       putfile  filename  globalcommand     END      RESTORE kwd of xxx :BEGIN       IF lmgr demo  EQ 1 THEN BEGIN         dummy   report impossible to save the widget in demo mode          return       ENDIF   We recuperate the name of the file       filename   xquestion dans quel fichier bianire voulez vous sauver le widget    xxx_widget dat    We complete it by a  dat       if rstrpos filename   dat  NE strlen filename 4 then filename   filename dat        filename   isafile file   filename  io   homedir   new          widget_control  event top  get_uvalue   uvalue       widget_control  extractatt uvalue   graphid  get_value   win       wshow  win       wset  win       image   tvrd true        save  uvalue  image  filename   filename     END      Print to prompt :BEGIN       commande   getfile myuniquetmpdir    xxx_oneplot pro        for i   0   n_elements commande 1 do print  commande i      end     Portrait Landscape  :begin        widget_control  event top  get_uvalue   top_uvalue       options   extractatt top_uvalue   options        index   where options EQ  Portrait Landscape    index   index 0        optionsflag   extractatt top_uvalue   optionsflag        key_portrait   1 optionsflag index  0         top_uvalue 1  findline top_uvalue   optionsflag index      key_portrait   Separated windows or windows stuck to the widget        if widget_info event top  find_by_uname    graph  EQ 0 then BEGIN   We delete the window         graphid   extractatt top_uvalue   graphid          widget_control  widget_info graphid   parent   destroy   We recreate it          basegraph   widget_base title    xxx window   group_leader   event top  uvalue   event top   uname    basegraph          windsize   givewindowsize          graphid   widget_draw basegraph  uname    graph                                    uvalue    name: graph  press:0  click:0  x: 0  0  y: 0  0                                     button_events  retain   2                                   xsize   windsize 0  ysize   windsize 1          widget_control  basegraph   realize         xmanager   xxx  basegraph   no_block   We redraw what their were into it   We recuperate the list of instructions         globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program         createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                         KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript  PORTRAIT   portrait  LANDSCAPE   landscape                         KWDUSED      noerase  PORTRAIT   portrait    We reattribute the graphic element of the top_value          top_uvalue 1  findline top_uvalue   graphid    graphid       ENDIF ELSE BEGIN         extra   extractatt top_uvalue   extra          xxx  CALLERWIDID   event top   redraw  _extra   extra         widget_control  event top   destroy  We shut the widget       ENDELSE     end      Overlay  :begin        widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Overlay    We change the flag on Longitude   x index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag     end      Vecteur :BEGIN       widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Vecteur    We change the flag on Longitude   x index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag     end      Longitude   x index :BEGIN       widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Longitude   x index    We change the flag on Longitude   x index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag   Now we will change sliders defining the boxzoom       domainid   widget_info event top  find_by_uname    domain        boxzoom    extractatt top_uvalue   domaines  numdessinin    We want to find the type of grid which is used       currentfile   extractatt top_uvalue   currentfile        listgrid    extractatt top_uvalue   fileparameters currentfile listgrid       listvar    extractatt top_uvalue   fileparameters currentfile listvar       vlstid   widget_info event top  find_by_uname    varlist        namevar   widget_info vlstid   combobox_gettext        indexvar   where listvar EQ namevar        vargrid   strupcase listgrid indexvar        if flag EQ 0 then BEGIN     longitudes   We do a domdef to find the lon1 lon2 corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid   xindex                     yindex    flags where options EQ  Latitude   y index  numdessinin 0          widget_control  domainid  set_value    lon1  lon2  boxzoom 2:3        ENDIF ELSE BEGIN            xindex   now we want to find firstx  lastx corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid                     yindex    flags where options EQ  Latitude   y index  numdessinin 0          grille   1   1   1   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz         widget_control  domainid  set_value    firstx  lastx  boxzoom 2:3        ENDELSE   We update the top_uvalue       widget_control  domainid  get_value   boxzoom        top_uvalue 1  findline top_uvalue   domaines  numdessinin    boxzoom     end      Latitude   y index :begin        widget_control  event top  get_uvalue   top_uvalue       numdessinin    extractatt top_uvalue   smallin 2 1       options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        index   where options EQ  Latitude   y index    We change the flag on Latitude   y index       flag   1 flags index  numdessinin    flag   flag 0    We reattribute it        top_uvalue 1  findline top_uvalue   optionsflag index  numdessinin    flag   Now we will change sliders defining the boxzoom       domainid   widget_info event top  find_by_uname    domain        boxzoom    extractatt top_uvalue   domaines  numdessinin    We want to find the type of grid which is used       currentfile   extractatt top_uvalue   currentfile        listgrid    extractatt top_uvalue   fileparameters currentfile listgrid       listvar    extractatt top_uvalue   fileparameters currentfile listvar       vlstid   widget_info event top  find_by_uname    varlist        namevar   widget_info vlstid   combobox_gettext        indexvar   where listvar EQ namevar        vargrid   strupcase listgrid indexvar        if flag EQ 0 then BEGIN     latitudes   We do a domdef to find the lat1 lat2 corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid   yindex                     xindex    flags where options EQ  Longitude   x index  numdessinin 0          widget_control  domainid  set_value    boxzoom 0:1  lat1  lat2        ENDIF ELSE BEGIN            yindex   now we want to find firsty  lasty corresponding to the boxzoom defined on the widget          domdef  boxzoom  gridtype   vargrid                     xindex    flags where options EQ  Longitude   x index  numdessinin 0          grille   1   1   1   1  nx  ny  nz  firstx  firsty  firstz  lastx  lasty  lastz         widget_control  domainid  set_value    boxzoom 0:1  firsty  lasty        ENDELSE   We update the top_uvalue       widget_control  domainid  get_value   boxzoom        top_uvalue 1  findline top_uvalue   domaines  numdessinin    boxzoom     END   endcase   return end"); 
     360a[358] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html", "cw_bgroup.pro", "", "pro CW_BGROUP_SETV  id  value   compile_opt hidden  idl2  strictarrsubs    ON_ERROR  2                        return to caller    stash   WIDGET_INFO id   CHILD    WIDGET_CONTROL  stash  GET_UVALUE state   NO_COPY    case state type of     0: message unable to set plain button group value      1: begin       WIDGET_CONTROL  SET_BUTTON 0  state ids state excl_pos        state excl_pos   value       WIDGET_CONTROL   SET_BUTTON  state ids value      end     2: begin       n   n_elements value 1       for i   0  n do begin         state nonexcl_curpos i    value i          WIDGET_CONTROL  state ids i  SET_BUTTON value i        endfor     end   endcase    WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY end    function CW_BGROUP_GETV  id  value    compile_opt hidden  idl2  strictarrsubs   ON_ERROR  2                        return to caller    stash   WIDGET_INFO id   CHILD    WIDGET_CONTROL  stash  GET_UVALUE state   NO_COPY    case state type of     0: message   unable to get plain button group value       1: ret   state excl_pos     1: ret   state ret_arr state excl_pos       2: ret   state nonexcl_curpos     2: BEGIN        index   where state nonexcl_curpos NE 0        if index 0  EQ  1 then begin         if size state ret_arr   type  EQ 7 then ret     ELSE ret    1       ENDIF ELSE ret   state ret_arr index      END   endcase      WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY    return  ret  end    function CW_BGROUP_EVENT  ev   compile_opt hidden  idl2  strictarrsubs   WIDGET_CONTROL  ev handler  GET_UVALUE stash   WIDGET_CONTROL  stash  GET_UVALUE state   NO_COPY   WIDGET_CONTROL  ev id  get_uvalue uvalue    ret   1            Assume we return a struct   case state type of     0:     1: if  ev select eq 1  then begin       state excl_pos   uvalue     ENDIF else begin       if  state no_release ne 0  then ret   0     ENDELSE     2: begin         Keep track of the current state       state nonexcl_curpos uvalue    ev select           if  state no_release ne 0  and  ev select eq 0  then ret   0     end   endcase    if ret then begin      Return a struct        ret     ID:state base  TOP:ev top  HANDLER:0L  SELECT:ev select               VALUE:state ret_arr uvalue          efun   state efun       WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY       if efun ne   then return  CALL_FUNCTION efun  ret          else return  ret   endif else begin       Trash the event       WIDGET_CONTROL  stash  SET_UVALUE state   NO_COPY       return  0   endelse end            file_comments   CW_BGROUP is a compound widget that simplifies creating   a base of buttons  It handles the details of creating the   proper base  standard  exclusive  or non exclusive  and filling   in the desired buttons  Events for the individual buttons are   handled transparently  and a CW_BGROUP event returned  This   event can return any one of the following:          The Index of the button within the base           The widget ID of the button           The name of the button           An arbitrary value taken from an array of User values       categories   Compound widgets       param PARENT  in required    The ID of the parent widget        param NAMES   A string array  containing one string per button    giving the name of each button       keyword BUTTON_UVALUE   An array of user values to be associated with   each button and returned in the event structure        keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword EVENT_FUNCT   The name of an optional user supplied event function   for buttons  This function is called with the return   value structure whenever a button is pressed  and   follows the conventions for user written event functions        keyword EXCLUSIVE   Buttons will be placed in an exclusive base  with   only one button allowed to be selected at a time        keyword FONT   The name of the font to be used for the button   titles  If this keyword is not specified  the default   font is used        keyword FRAME   Specifies the width of the frame to be drawn around the base        keyword IDS   A named variable into which the button IDs will be   stored  as a longword vector        keyword LABEL_LEFT   Creates a text label to the left of the buttons        keyword LABEL_TOP   Creates a text label above the buttons        keyword MAP   If set  the base will be mapped when the widget   is realized  the default        keyword NONEXCLUSIVE   Buttons will be placed in an non exclusive base    The buttons will be independent        keyword NO_RELEASE   If set  button release events will not be returned        keyword RETURN_ID   If set  the VALUE field of returned events will be   the widget ID of the button        keyword RETURN_INDEX   If set  the VALUE field of returned events will be   the zero based index of the button within the base    THIS IS THE DEFAULT        keyword RETURN_NAME   If set  the VALUE field of returned events will be   the name of the button within the base        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword SCROLL   If set  the base will include scroll bars to allow   viewing a large base through a smaller viewport        keyword SET_VALUE   The initial value of the buttons  This is equivalent   to the later statement:     WIDGET_CONTROL  widget  set_value value      keyword SPACE   The space  in pixels  to be left around the edges   of a row or column major base  This keyword is   ignored if EXCLUSIVE or NONEXCLUSIVE are specified        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword XOFFSET   The X offset of the widget relative to its parent        keyword XPAD   The horizontal space  in pixels  between children   of a row or column major base  Ignored if EXCLUSIVE   or NONEXCLUSIVE are specified        keyword XSIZE   The width of the base     keyword X_SCROLL_SIZE   The width of the viewport if SCROLL is specified        keyword YOFFSET   The Y offset of the widget relative to its parent        keyword YPAD   The vertical space  in pixels  between children of   a row or column major base  Ignored if EXCLUSIVE   or NONEXCLUSIVE are specified        keyword YSIZE   The height of the base        keyword Y_SCROLL_SIZE   The height of the viewport if SCROLL is specified       returns   The ID of the created widget is returned       restrictions   This widget generates event structures with the following definition:           event     ID:0L  TOP:0L  HANDLER:0L  SELECT:0  VALUE:0       The SELECT field is passed through from the button event  VALUE is   either the INDEX  ID  NAME  or BUTTON_UVALUE of the button    depending on how the widget was created       restrictions   Only buttons with textual names are handled by this widget    Bitmaps are not understood       history   15 June 1992  AB   7 April 1993  AB  Removed state caching    6 Oct  1994  KDB  Font keyword is not applied to the label    10 FEB 1995  DJC  fixed bad bug in event procedure  getting                           id of stash widget    11 April 1995  AB Removed Motif special cases      Copyright  c  1992 2005  Research Systems  Inc   All rights reserved      Unauthorized reproduction prohibited       version    Id: cw_bgroup pro 150 2006 08 09 10:12:54Z navarro            function CW_BGROUP  parent  names        BUTTON_UVALUE   button_uvalue  COLUMN column  EVENT_FUNCT   efun        EXCLUSIVE excl  FONT font  FRAME frame  IDS ids  LABEL_TOP label_top        LABEL_LEFT label_left  MAP map        NONEXCLUSIVE nonexcl  NO_RELEASE no_release  RETURN_ID return_id        RETURN_INDEX return_index  RETURN_NAME return_name        ROW row  SCROLL scroll  SET_VALUE sval  SPACE space        TAB_MODE tab_mode  UVALUE uvalue        XOFFSET xoffset  XPAD xpad  XSIZE xsize  X_SCROLL_SIZE x_scroll_size      YOFFSET yoffset  YPAD ypad  YSIZE ysize  Y_SCROLL_SIZE y_scroll_size        UNAME uname     IF  N_PARAMS  ne 2  THEN MESSAGE   Incorrect number of arguments     ON_ERROR  2                        return to caller      Set default values for the keywords   version   WIDGET_INFO version    if  version toolkit eq  OLIT  then def_space_pad   4 else def_space_pad   3   IF  N_ELEMENTS column  eq 0       then column   0   IF  N_ELEMENTS excl  eq 0         then excl   0   IF  N_ELEMENTS frame  eq 0        then frame   0   IF  N_ELEMENTS map  eq 0      then map 1   IF  N_ELEMENTS nonexcl  eq 0      then nonexcl   0   IF  N_ELEMENTS no_release  eq 0   then no_release   0   IF  N_ELEMENTS row  eq 0      then row   0   IF  N_ELEMENTS scroll  eq 0       then scroll   0   IF  N_ELEMENTS space  eq 0        then space   def_space_pad   IF  N_ELEMENTS uname  eq 0       then uname    CW_BGROUP_UNAME    IF  N_ELEMENTS uvalue  eq 0       then uvalue   0   IF  N_ELEMENTS xoffset  eq 0      then xoffset 0   IF  N_ELEMENTS xpad  eq 0         then xpad   def_space_pad   IF  N_ELEMENTS xsize  eq 0        then xsize   0   IF  N_ELEMENTS x_scroll_size  eq 0    then x_scroll_size   0   IF  N_ELEMENTS yoffset  eq 0      then yoffset 0   IF  N_ELEMENTS ypad  eq 0         then ypad   def_space_pad   IF  N_ELEMENTS ysize  eq 0        then ysize   0   IF  N_ELEMENTS y_scroll_size  eq 0    then y_scroll_size   0       top_base   0L   if  n_elements label_top  ne 0  then begin     next_base   WIDGET_BASE parent  XOFFSET xoffset  YOFFSET yoffset   COLUMN      if keyword_set font then          junk   WIDGET_LABEL next_base  value label_top font font        else    junk   WIDGET_LABEL next_base  value label_top      top_base   next_base   endif else next_base   parent    if  n_elements label_left  ne 0  then begin     next_base   WIDGET_BASE next_base  XOFFSET xoffset  YOFFSET yoffset   ROW      if keyword_set font then          junk   WIDGET_LABEL next_base  value label_left  font font        else junk   WIDGET_LABEL next_base  value label_left      if  top_base eq 0L  then top_base   next_base   endif     We need some kind of outer base to hold the users UVALUE   if  top_base eq 0L  then begin     top_base   WIDGET_BASE parent  XOFFSET xoffset  YOFFSET yoffset      next_base   top_base   endif   If  top_base EQ next_base  THEN        next_base   WIDGET_BASE top_base  Xpad 1  Ypad 1  Space 1       Set top level base attributes   WIDGET_CONTROL  top_base  MAP map        FUNC_GET_VALUE CW_BGROUP_GETV  PRO_SET_VALUE CW_BGROUP_SETV        SET_UVALUE uvalue  SET_UNAME uname      Tabbing   if  n_elements tab_mode  ne 0  then begin     WIDGET_CONTROL  top_base  TAB_MODE tab_mode     WIDGET_CONTROL  next_base  TAB_MODE tab_mode   end      The actual button holding base   base   WIDGET_BASE next_base  COLUMN column  EXCLUSIVE excl  FRAME frame        NONEXCLUSIVE nonexcl  ROW row  SCROLL scroll  SPACE space        XPAD xpad  XSIZE xsize  X_SCROLL_SIZE x_scroll_size        YPAD ypad  YSIZE ysize  Y_SCROLL_SIZE y_scroll_size        EVENT_FUNC CW_BGROUP_EVENT        UVALUE WIDGET_INFO top_base   child      n   n_elements names    ids   lonarr n    for i   0  n 1 do begin     if  n_elements font  eq 0  then begin       ids i    WIDGET_BUTTON base  value names i  UVALUE i          UNAME uname _BUTTON STRTRIM i 2      endif else begin       ids i    WIDGET_BUTTON base  value names i  FONT font          UVALUE i  UNAME uname _BUTTON STRTRIM i 2      endelse   endfor      Keep the state info in the real  inner  base UVALUE      Pick an event value type:     0   Return ID     1   Return INDEX     2   Return NAME   ret_type   1   if KEYWORD_SET RETURN_ID  then ret_type   0   if KEYWORD_SET RETURN_NAME  then ret_type   2   if KEYWORD_SET BUTTON_UVALUE  then ret_type   3     case ret_type of       0: ret_arr   ids       1: ret_arr   indgen n        2: ret_arr   names       3: ret_arr   button_uvalue     endcase   type   0   if  excl ne 0  then type   1    if  nonexcl ne 0  then type   2   if n_elements efun  le 0 then efun       state     type:type         0 Standard  1 Exclusive  2 Non exclusive         base: top_base        cw_bgroup base          ret_arr:ret_arr       Vector of event values         efun : efun       Name of event fcn         nonexcl_curpos:intarr n      If non exclus  tracks state         excl_pos:0                If exclusive  current button         ids:ids               Ids of buttons         no_release:no_release     WIDGET_CONTROL  WIDGET_INFO top_base   CHILD  SET_UVALUE state   NO_COPY    if  n_elements sval  ne 0  then CW_BGROUP_SETV  top_base  sval    return  top_base END"); 
     361a[359] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html", "cw_calendar.pro", "", "  IDL  testwid julday 1 1 1980 lindgen 100 5     PRO testwid_event  event       ComboboxId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          set :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value   value         END          get :BEGIN             widget_control  ComboboxId  get_value   value            help   value   struct         END         ELSE:      endcase      return   end   PRO testwid  calendar  date0  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_calendar base calendar  date0  _extra   ex  uname    c est lui  uvalue    c est lui      print   cw_calendar ID   nothing          nothing   widget_label base  value    end of the test        nothing   widget_text base  value   string calendar 0  uvalue    set   editable        nothing   widget_button base  value    get  uvalue    get        nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   END       PRO cw_calendar_set_value  id  value     compile_opt strictarr  strictarrsubs       cm_4cal   get back the calendar and its related informations   winfo_id   widget_info id  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   key_caltype   infowid caltype      high freqeuncy calendar   IF keyword_set infowid fakecal  THEN BEGIN     value2   date2jul long value    infowid fakecal     IF value2 LT n_elements infowid calendar  AND value2 GE 0 THEN BEGIN         stepid   widget_info id  find_by_uname    step        widget_control  stepid  set_value    combobox_select:value2        infowid date   jul2date value2   infowid fakecal        widget_control  winfo_id  set_uvalue   infowid     ENDIF   ENDIF ELSE BEGIN        value   long value 0    make sure the value correspond     value   jul2date date2jul value    define year month day     year   value 10000l     month    value MOD 10000L 100L     day   value MOD 100L   check that the date exists in the calendar   if  where infowid calendar EQ julday month  day  year 0  EQ   1 then return   update the value of infocal     infowid date   value     widget_control  winfo_id  set_uvalue   infowid   update the combobox if needed      possiblecase    day   month   year      for name   2  0   1 do BEGIN   call set_cal_combobox with out   2 to specify that the call is coming   from cw_calendar_set_value       if widget_info id  find_by_uname   possiblecase name  NE 0 then            set_cal_combobox   handler:id  out:2  possiblecase name  value     ENDFOR   ENDELSE     return end   FUNCTION cw_calendar_get_value  id     compile_opt strictarr  strictarrsubs      winfo_id   widget_info id  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   return  infowid date END   FUNCTION get_cal_value  id  winfoid      compile_opt strictarr  strictarrsubs      winfo_id   widget_info id  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   oldate   infowid date  day    wid_id   widget_info id  find_by_uname    day    if wid_id NE 0 then BEGIN     widget_control  wid_id  get_value   wid_value     date   long wid_value combobox_gettext    ENDIF ELSE date   oldate MOD 100L  month    wid_id   widget_info id  find_by_uname    month    if wid_id NE 0 then BEGIN     widget_control  wid_id  get_value   wid_value     allmonths   string format    C CMoA  31 indgen 12      month    where allmonths EQ wid_value combobox_gettext 0    1      date   date   100L   long month    ENDIF ELSE date   date    oldate MOD 10000L 100L 100L  year    wid_id   widget_info id  find_by_uname    year    widget_control  wid_id  get_value   wid_value   date   date   10000L   long wid_value combobox_gettext      IF arg_present winfoid  NE 0 THEN BEGIN     winfoid   winfo_id     infowid date   date     return  infowid   ENDIF ELSE return  date end     redefine the value and index position of the combobox PRO set_cal_combobox  event  casename  date0     compile_opt strictarr  strictarrsubs      casename: Which widget shall we move:  day   month  or  year      wid_id   widget_info event handler  find_by_uname   casename    we get back the calendar    winfo_id   widget_info event handler  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   caldat  infowid calendar  monthcal  daycal  yearcal     and the current date   IF n_elements date0  EQ 0 then date0   get_cal_value event handler    year0   date0 10000L   month0    date0 MOD 10000L 100L   day0   date0 MOD 100L   index of days months years according to date0   case casename of      day :BEGIN    list of days corresponding to month0 and year0       index   where monthcal EQ month0 AND yearcal EQ year0        current   daycal index      END      month :BEGIN    list of months corresponding to year0       index   where yearcal EQ year0        current   monthcal index    keep only the uniq values       indexbis   uniq current        index   index indexbis        current   current indexbis      END      year :BEGIN    keep only the uniq years       index   uniq yearcal        current   yearcal index      END   ENDCASE   we update the uvalue of the widget   widget_control  wid_id  set_uvalue    name:casename    for event out   0  we store the previous position of the combobox to use   it as the default position    IF event out EQ 0 THEN widget_control  wid_id  get_value   oldselect   we redefine the new list   if casename EQ  month  then begin     widget_control  wid_id  set_value   string format    C CMoA  31 current 1    ENDIF ELSE BEGIN      widget_control  wid_id  set_value   strtrim current  1    ENDELSE   specify the index position within the new list of values    widget_control  wid_id  get_value   combobox   CASE event out OF    1: we put to the biggest position      1:selected   combobox combobox_number   1   0: same as the previous position is the best choice      0:selected   oldselect combobox_index    combobox combobox_number   1    1: we put to the smallest position     1:selected   0   2: a new date has been specified      2:BEGIN        case casename of          day :selected    where current EQ day0 0           month :selected    where current EQ month0 0           year :selected    where current EQ year0 0        ENDCASE     END   ENDCASE   widget_control  wid_id  set_value    combobox_select:selected    update the date    infowid date   get_cal_value event handler    widget_control  winfo_id  set_uvalue   infowid   return end     move cyclicly the calendar to the   value 0 if event out 1 or combobox_number 1 if event out 1 PRO move  event  casename     compile_opt strictarr  strictarrsubs       possiblecase    day   month   year   impossiblecase     id   widget_info event handler  find_by_uname   casename     widget_control  id  get_value   wvalue   we try to move but we are already at the beginning end of the combobox   wvalue combobox_index EQ  wvalue combobox_number 1  and event out EQ 1   wvalue combobox_index EQ 0 and event out EQ  1  move is not called when out eq 0     whichcase    where possiblecase EQ casename 0     if wvalue combobox_index EQ  wvalue combobox_number 1 event out EQ 1  THEN BEGIN       if widget_info event handler  find_by_uname   possiblecase whichcase 1  EQ 0 then begin   it is impossible to move the  next  combobox           widget_control  id  get_value   widvalue   we set to  widvalue combobox_number 1  when event out EQ  1   and to 0 when event out EQ 1          selected    widvalue combobox_number 1 event out EQ  1           widget_control  id  set_value    combobox_select:selected    we call move for the next combobox       ENDIF ELSE move  event  possiblecase whichcase 1    it is possible to move from   1    ENDIF ELSE widget_control  id  set_value    combobox_select:wvalue combobox_index event out     set_cal_combobox  event  possiblecase whichcase 1     return end   FUNCTION cw_calendar_event  event    cm_4cal   compile_opt strictarr  strictarrsubs      winfo_id   widget_info event handler  find_by_uname    infocal    widget_control  winfo_id  get_uvalue   infowid   key_caltype   infowid caltype     widget_control  event id  get_uvalue   uval   high frequency calendar   IF uval name EQ  step  THEN BEGIN      infowid date   jul2date event index   infowid fakecal    ENDIF ELSE BEGIN       possiblecase    day   month   year   impossiblecase      whichcase    where possiblecase EQ uval name 0      if event out NE 0 then BEGIN   we use the   button and we want to go out of the combobox:   to index    1  event out 1  or to index   combobox_number  event out 1    we try to move the combobox just right  with name: possiblecase whichcase 1        if widget_info event handler  find_by_uname   possiblecase whichcase 1  EQ 0 then BEGIN   this widget do not exist we set cyclicly the current widget to the   value 0 if event out 1 or combobox_number 1 if event out 1         widget_control  event id  get_value   widvalue         selected    widvalue combobox_number 1 event out EQ  1          widget_control  event id  set_value    combobox_select:selected        ENDIF ELSE move  event  possiblecase whichcase 1      ENDIF   if we changed month year  we need to update the day  and month  list     if uval name NE  day  then begin       event out   0       for name   whichcase 1  0   1 do BEGIN         if widget_info event handler  find_by_uname   possiblecase name  NE 0 then              set_cal_combobox  event  possiblecase name        endfor     ENDIF   we update the date     infowid   get_cal_value event handler  winfo_id    ENDELSE      widget_control  winfo_id  set_uvalue   infowid   return   CW_CALENDAR  ID:event handler  TOP:event top  HANDLER:0L                VALUE:infowid date  FAKECAL: infowid fakecal  end          file_comments        categories         param PARENT  in required    The widget ID of the parent widget       param CALENDAR        param JDATE0         keyword CALTYPE          keyword FAKECAL         keyword UVALUE         keyword UNAME         keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: cw_calendar pro 150 2006 08 09 10:12:54Z navarro        todo   seb      FUNCTION cw_calendar  parent  calendar  jdate0  CALTYPE   CALTYPE  FAKECAL   fakecal  UVALUE   uvalue  UNAME   uname  _extra   ex    cm_4cal     compile_opt strictarr  strictarrsubs      if keyword_set caltype  then key_caltype   caltype   months days years found in the calendar   caldat  calendar  monthcal  daycal  yearcal  hourcal  mincal  scdcal   starting date   if n_elements jdate0  EQ 0 then jdate0   calendar 0    if  where calendar EQ jdate0 0  EQ  1 then jdate0   calendar 0      caldat  jdate0  month0  day0  year0   test the type of calendar   if n_elements calendar  GT 1 then BEGIN   each day have the same value     if n_elements uniq daycal  sort daycal  EQ 1 then monthly   1   each month and each day have the same value     if keyword_set monthly  AND n_elements uniq monthcal  sort monthcal  EQ 1 then yearly   1   endif     if NOT keyword_set uvalue  then uvalue    dummy:    if NOT keyword_set uname  then uname       base0   widget_base parent   ROW                           EVENT_FUNC    cw_calendar_event                            FUNC_GET_VALUE    cw_calendar_get_value                            PRO_SET_VALUE    cw_calendar_set_value                            UVALUE   uvalue  UNAME   uname  space   0  _extra   ex       if n_elements fakecal  eq 0 then fakecal   0   base   widget_base base0  space   0  uname    infocal                           uvalue    calendar:calendar  date:jul2date jdate0  fakecal:fakecal  caltype: key_caltype      IF keyword_set fakecal  THEN BEGIN      cmbbid   cw_combobox_pm base  UVALUE    name: step  UNAME    step                                  value   strtrim indgen n_elements calendar  1      widget_control  cmbbid  set_value    combobox_select: where calendar EQ jdate0 0    ENDIF ELSE BEGIN        vallen   widget_info base  string_size    m   day      if NOT keyword_set monthly   then begin       dayindex   where monthcal EQ month0 AND yearcal EQ year0        currentday   daycal dayindex        currentday   strtrim currentday  1        cmbbid   cw_combobox_pm base  UVALUE    name: day  UNAME    day  value   currentday        widget_control  cmbbid  set_value    combobox_select: where long currentday  EQ day0 0      endif  month      if NOT keyword_set yearly   then BEGIN       monthindex   where yearcal EQ year0        currentmonth   long monthcal monthindex    we suppress the repeted months       monthindexbis   uniq currentmonth  sort currentmonth        monthindex   monthindex monthindexbis        currentmonth   currentmonth monthindexbis        xoff    34   2 vallen 0 1 keyword_set monthly        cmbbid   cw_combobox_pm base  UVALUE    name: month  UNAME    month  value   string format    C CMoA  31 currentmonth 1  xoffset   xoff        widget_control  cmbbid  set_value    combobox_select: where long currentmonth  EQ month0 0      endif  year      yearindex   uniq yearcal  sort yearcal      currentyear   strtrim yearcal yearindex  1      xoff    34   2 vallen 0 1 keyword_set monthly     33   3 vallen 0 1 keyword_set yearly      cmbbid   cw_combobox_pm base  UVALUE    name: year  UNAME    year  value   currentyear  xoffset   xoff      widget_control  cmbbid  set_value    combobox_select: where long currentyear  EQ year0 0      ENDELSE     return  base end"); 
     362a[360] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html", "cw_combobox_pm.pro", "", "  testwid  value strtrim indgen 10 2    PRO testwid_event  event       help  event   STRUCT      ComboboxId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          dynamic_resize :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value    dynamic_resize:value          END          combobox_select :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value    combobox_select:value          END          value :BEGIN             widget_control  event id  get_value   value            widget_control  ComboboxId  set_value   value         END          get :BEGIN             widget_control  ComboboxId  get_value   value            help   value   struct         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_combobox_pm base  _extra   ex  uname    c est lui  uvalue    c est lui    print   cw_combobox_pm ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    0  uvalue    dynamic_resize   editable       nothing   widget_text base  value    10  uvalue    combobox_select   editable       nothing   widget_text base  value    5  uvalue    value   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end   PRO cw_combobox_pm_set_value  id  value     compile_opt idl2  strictarrsubs      ComboboxId   widget_info id find_by_uname    Combobox     if size value   type  eq 8 then BEGIN   this is a structure       tagnames   tag_names value        for tag   0  n_tags value 1 do begin          case strtrim strlowcase tagnames tag  2  of              dynamic_resize :widget_control  ComboboxId  dynamic_resize   value dynamic_resize   for compatibility              droplist_select :widget_control  ComboboxId  set_combobox_select   value droplist_select              combobox_select :widget_control  ComboboxId  set_combobox_select   value combobox_select              value :widget_control  ComboboxId  set_value   value value             ELSE:ras   report wrong tag name in argument  value  of cw_combobox_pm_set_value           endcase       endfor    ENDIF ELSE widget_control  ComboboxId  set_value   value    return end   FUNCTION cw_combobox_pm_get_value  id     compile_opt idl2  strictarrsubs      ComboboxId   widget_info id find_by_uname    Combobox     widget_control  ComboboxId  get_value   cmbbval    cmbbtxt   widget_info ComboboxId   combobox_gettext     cmbbnumb   widget_info ComboboxId   combobox_number     index    where cmbbval EQ cmbbtxt 0     return   combobox_number:cmbbnumb  combobox_gettext:cmbbtxt                 combobox_index:index  combobox_value:cmbbval                 dynamic_resize:widget_info ComboboxId   dynamic_resize  end   FUNCTION cw_combobox_pm_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval      if uval EQ  Combobox  then       return   CW_COMBOBOX_PM  ID:event handler  TOP:event top  HANDLER:0L                  INDEX:event index  STR:event str  OUT:0       ComboboxId   widget_info event handler find_by_uname    Combobox     widget_control  ComboboxId  get_value   cmbbval    cmbbtxt   widget_info ComboboxId   combobox_gettext     cmbbnumb   widget_info ComboboxId   combobox_number     index    where cmbbval EQ cmbbtxt 0     out   0    case uval OF        plus :BEGIN          if index LT  cmbbnumb   1  then BEGIN             index   index   1            widget_control  ComboboxId  set_combobox_select   index          ENDIF ELSE out   1       END        minus :BEGIN          if index GT 0 then BEGIN             index   index   1            widget_control  ComboboxId  set_combobox_select   index          ENDIF ELSE out    1       END    endcase    return   CW_COMBOBOX_PM  ID:event handler  TOP:event top  HANDLER:0L                       INDEX:index  STR:cmbbtxt  OUT:out  end              file_comments   Like WIDGET_COMBOBOX but here  their are 2 buttons   and   to move the widget from   1      categories   compound widget       param PARENT  in required    The widget ID of the parent widget       keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword VALUE        keyword _EXTRA   Used to pass your keywords      returns   The returned value of this function is the widget ID of the   newly created animation widget       restrictions         Widget Events Returned by Combobox Widgets       Pressing the mouse button while the mouse cursor is over an     element of a combobox widget causes the widget to change the label     on the combobox button and to generate an event  The appearance of     any previously selected element is restored to normal at the same     time  The event structure returned by the WIDGET_EVENT function is     defined by the following statement:         CW_COMBOBOX_PM  ID:0L  TOP:0L  HANDLER:0L  INDEX:0L  OUT:0         The first three fields are the standard fields found in every     widget event      INDEX returns the index of the selected item  This can be used to     index the array of names originally used to set the widget s     value     OUT:It is an integer which can take 3 values:          1 : If we press   when the index is already at the max         Comment: In this case  the index stay at the max          1: If we press   when the index is already at the min         Comment: In this case  the index stay at the min         0 : In other cases       Keywords to WIDGET_CONTROL       A number of keywords to the WIDGET_CONTROL procedure affect the     behavior of cw_slider_pm widget: GET_VALUE and SET_VALUE          1  GET_VALUE     widget_control wid_id get_value resultat     Send back  in the result variable  a structure of 3 elements whose      names are inspired by keywords we can pass at widget_control when     we use WIDGET_COMBOBOX:              COMBOBOX_NUMBER: the number of elements currently              contained in the specified combobox widget               COMBOBOX_SELECT: the zero based number of the              currently selected element  i e  the currently displayed              element  in the specified combobox widget               DYNAMIC_RESIZE: a True value  1  if the widget specified              by Widget_ID is a button  combobox  or label widget that              has had its DYNAMIC_RESIZE attribute set  Otherwise               False  0  is returned          2  SET_VALUE     widget_control wid_id set_value impose     Allows to modify the state of the combobox like we can do it for      WIDGET_COMBOBOX  May impose:          a  The contents of the list widget  string or string array          b  A structure which can have for elements  from 1 to 3 :               DYNAMIC_RESIZE:Set this keyword to activate  if set to 1               or deactivate  if set to 0  dynamic resizing of the              specified CW_COMBOBOX_PM widget  see the documentation              for the DYNAMIC_RESIZE keyword to WIDGET_COMBOBOX              procedure for more information about dynamic widget              resizing               COMBOBOX_SELECT:Set this keyword to return the zero based              number of the currently selected element  i e  the              currently displayed element  in the specified combobox              widget               VALUE: The contents of the list widget  string or string              array       examples   See the program provided above  testwid and the associated procedure  testwid_event       history   Sebastien Masson  smasson lodyc jussieu fr                         6 9 1999      version    Id: cw_combobox_pm pro 150 2006 08 09 10:12:54Z navarro             FUNCTION cw_combobox_pm  parent  VALUE   value  UVALUE   uvalue  UNAME   uname  ROW   row  COLUMN   column  _extra   ex     compile_opt idl2  strictarrsubs       IF  N_PARAMS  NE 1  THEN MESSAGE   Incorrect number of arguments     ON_ERROR  2                   return to caller   cheking for row and column keywords    row   keyword_set row 1 keyword_set column      column   keyword_set column 1 keyword_set row keyword_set column  EQ row      if NOT keyword_set uvalue  then uvalue        if NOT keyword_set uname  then uname          base   widget_base parent  space   0                           EVENT_FUNC    cw_combobox_pm_event                            FUNC_GET_VALUE cw_combobox_pm_get_value                            PRO_SET_VALUE cw_combobox_pm_set_value                            UVALUE   uvalue  UNAME   uname  _extra   ex          vallen   widget_info base  string_size    m     vallen   35    vallen 0 1 max strlen value     if keyword_set row  THEN BEGIN       nothing   widget_button base  value     uvalue    minus  xoffset   0                                  yoffset   5  xsize   15  ysize   15       nothing   widget_combobox base  VALUE   value  UVALUE    Combobox  UNAME    Combobox                                     xoffset   13  yoffset   0  xsize   vallen       nothing   widget_button base  value     uvalue    plus                                   xoffset   vallen 11  yoffset   5                                  xsize   15  ysize   15     ENDIF ELSE BEGIN       nothing   widget_combobox base  VALUE   value  UVALUE    Combobox  UNAME    Combobox                                     xoffset   0  yoffset   0  xsize   vallen       nothing   widget_button base  value     uvalue    minus                                   xoffset   vallen 2 15                                  yoffset   24  xsize   15  ysize   15       nothing   widget_button base  value     uvalue    plus                                   xoffset   vallen 2                                  yoffset   24  xsize   15  ysize   15     ENDELSE        widget_control base realize      return  base end"); 
     363a[361] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html", "cw_domain.pro", "", "  IDL  testwid   PRO testwid_event  event     help   event   struct      Id   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          set :BEGIN            widget_control  event id  get_value   value   value   value 0             nothing   execute boxzoom  value             widget_control  Id  set_value   boxzoom         END          get :BEGIN             widget_control  Id  get_value   value            print   value         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN       print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_domain base _extra   ex  uname    c est lui  uvalue    c est lui       print   cw_domain ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    40  100   10  10  uvalue    set   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end       pro cw_domain_set_value  id  value     compile_opt idl2  strictarrsubs    cm_4mesh      topid   findtopid id     widget_control  topid  get_uvalue   top_uvalue     make sure that we have the good grid stored in the cm_4mesh common parameters     currentfile   extractatt top_uvalue   currentfile     currentgrid    extractatt top_uvalue   meshparameters currentfile     change   changegrid currentgrid      What is the type of boxzoom      currentplot    extractatt top_uvalue   smallin 2 1    options   extractatt top_uvalue   options        flags   extractatt top_uvalue   optionsflag     flags   flags  currentplot     IF  flags where options EQ  Longitude   x index 0  EQ 0 THEN       xtype    geographic  ELSE xtype    index     IF  flags where options EQ  Latitude   y index 0  EQ 0 THEN       ytype    geographic  ELSE ytype    index      How to complete the boxzoom      IF xtype EQ   geographic  then begin       lonn1   lon1       lonn2   lon2       xtitle    lon     ENDIF ELSE BEGIN       lonn1   firstxt       lonn2   lastxt       xtitle    x ind     ENDELSE    IF ytype EQ   geographic  then begin       latt1   lat1       latt2   lat2       ytitle    lat     ENDIF ELSE BEGIN       latt1   firstyt       latt2   lastyt       ytitle    y ind     ENDELSE      vertf1   floor min gdepw 0  gdept 0     vertf2   ceil max gdepw 0  gdept 0       Case N_Elements Value  OF       0:boxzoom    lonn1  lonn2  latt1  latt2  vertf1  vertf2        1:BEGIN           if value EQ  1 then boxzoom    lonn1  lonn2  latt1  latt2  vertf1  vertf2             ELSE boxzoom lonn1  lonn2  latt1  latt2  0 value 0        END       2:boxzoom lonn1  lonn2  latt1  latt2  value 0 value 1        4:boxzoom Value        5:boxzoom Value 0:3  0  Value 4        6:boxzoom   Value       Else:BEGIN           rien   report Wrong Definition of Boxzoom        END    ENDCASE      boxzoom 0    floor boxzoom 0     boxzoom 1    ceil boxzoom 1     boxzoom 2    floor boxzoom 2     boxzoom 3    ceil boxzoom 3     if n_elements boxzoom GE 5  then begin       boxzoom 4    floor boxzoom 4        boxzoom 5    ceil boxzoom 5     endif        widget_control widget_info id find_by_uname    lon1  get_uvalue   uvalue    strict   uvalue strict     Longitudes     Possible min and max    if xtype EQ  geographic  then BEGIN       min   floor min glamt glamf  max   max        max   ceil max     ENDIF ELSE BEGIN        min   0       max   jpi 1    ENDELSE   widgets s id    lon1id   widget_info id find_by_uname    lon1     lon2id   widget_info id find_by_uname    lon2    Do we have to change the type of x axis: longitude index    lonbase   widget_info id find_by_uname    lonbase     widget_control  lonbase   get_uvalue   lonbase_uvalue    if lonbase_uvalue name NE xtype then BEGIN       widget_control  lonbase  update   0   We break everything       widget_control  lon1id   destroy       widget_control  lon2id   destroy   We reconstruct       lon1id   cw_slider_pm lonbase value min   boxzoom 0   boxzoom 0 keyword_set strict    boxzoom 1   boxzoom 0 keyword_set strict        widget_control  lonbase  set_uvalue    name:xtype        widget_control  lonbase  update   1    ENDIF ELSE BEGIN   The new value  they will have       cursorvalue1   min   boxzoom 0   boxzoom 0 strict    boxzoom 1   boxzoom 2   boxzoom 2 keyword_set strict    boxzoom 3   boxzoom 2 keyword_set strict        widget_control  latbase  set_uvalue    name:ytype        widget_control  latbase  update   1    ENDIF ELSE BEGIN       cursorvalue1   min   boxzoom 2   boxzoom 2 strict    boxzoom 3    indice2 1       if indice1 EQ indice2 then BEGIN       if  where gdep1 GE boxzoom 4  AND gdep2 LE boxzoom 5 0   EQ  1 then begin          indice1   0    indice1 dthlv1_uval grid_t EQ 1           indice2   indice1       endif       boxzoom 4    gdep1 indice1        boxzoom 5    boxzoom 4 1    endif   Now  values and indexes are proprely defined    So we can apply them    widget_control  dthlv1id  set_value    combobox_select:indice1     widget_control  dthlv2id  set_value    combobox_select:indice2    control mins and maxs of sliders     if indice1 EQ 0 then min1   0 ELSE min1   gdep2 indice1 1     max1    min1 1    gdep1 indice2     widget_control  depth1id  set_value    slider_min:min1  slider_max:max1  value:boxzoom 4     min2   gdep2 indice1     if indice2 EQ jpk 1 then BEGIN        max2   max gdept  gdepw        max2   strtrim string max2 format e8 0  1        max2   float 1 strmid max2  1 float max2     ENDIF ELSE max2   gdep1 indice2 1     widget_control  depth2id  set_value    slider_min:min2  slider_max:max2  value:boxzoom 5       return end   FUNCTION cw_domain_get_value  id     compile_opt idl2  strictarrsubs      box   lonarr 6     possiblecase    lon1   lon2   lat1   lat2   depth1   depth2     for i   0  5 do begin       widget_control  widget_info id  find_by_uname   possiblecase i             get_value   value       box i    value value    endfor    return  box end   FUNCTION cw_domain_event  event     compile_opt idl2  strictarrsubs    common   help    struct  event    if  where tag_names event  EQ  OUT 0  NE  1 then if event out NE 0 then return    1    widget_control  event id  get_uvalue   uval    case uval name of        lon1 :widget_control widget_info event handler find_by_uname    lon2             set_value    slider_min:event value uval strict         lon2 :widget_control widget_info event handler find_by_uname    lon1             set_value    slider_max:event value uval strict         lat1 :widget_control widget_info event handler find_by_uname    lat2             set_value    slider_min:event value uval strict         lat2 :widget_control widget_info event handler find_by_uname    lat1             set_value    slider_max:event value uval strict         unzoom :BEGIN          id   widget_info event handler find_by_uname    lon1           widget_control  id  get_value   value          widget_control  id  set_value    slider_min:value slider_min_max 0           widget_control  id  set_value   value slider_min_max 0           id   widget_info event handler find_by_uname    lat1           widget_control  id  get_value   value          widget_control  id  set_value    slider_min:value slider_min_max 0           widget_control  id  set_value   value slider_min_max 0           id   widget_info event handler find_by_uname    lon2           widget_control  id  get_value   value          widget_control  id  set_value    slider_max:value slider_min_max 1           widget_control  id  set_value   value slider_min_max 1           id   widget_info event handler find_by_uname    lat2           widget_control  id  get_value   value          widget_control  id  set_value    slider_max:value slider_min_max 1           widget_control  id  set_value   value slider_min_max 1        END        dthlv1 :BEGIN   ids           depth1id   widget_info event handler find_by_uname    depth1           depth2id   widget_info event handler find_by_uname    depth2           dthlv2id   widget_info event handler find_by_uname    dthlv2    Do we have to change dthlv2            widget_control  event id  get_value   dthlv1_value          gdep1   fix dthlv1_value combobox_value           widget_control  dthlv2id  get_value   dthlv2_value          gdep2   fix dthlv2_value combobox_value           if dthlv2_value combobox_index LT event index then BEGIN   We redefine the dthlv2id s value             widget_control  dthlv2id  set_value    combobox_select:event index    So we redefine the value and the max of the slider 2             if event index EQ jpk 1 then BEGIN                 max   max gdept  gdepw                 max   strtrim string max format e8 0  1                 max   float 1 strmid max  1 float max              ENDIF ELSE max   gdep2 event index 1 1             widget_control  depth2id                  set_value    slider_max:max  value:gdep2 event index    So we redefine the max of the slider 1             widget_control  depth1id  set_value    slider_max:gdep1 event index           END    We redefine the value and the min of the slider depth1           if event index EQ 0 then min   0 ELSE min   gdep1 event index 1 1          widget_control  depth1id  set_value    slider_min:min  value:gdep1 event index    S we change the value of the min of the slider depth 2          widget_control  depth2id  set_value    slider_min:gdep1 event index 1        END        dthlv2 :BEGIN   ids           depth1id   widget_info event handler find_by_uname    depth1           depth2id   widget_info event handler find_by_uname    depth2           dthlv1id   widget_info event handler find_by_uname    dthlv1    Do we have to change dthlv1            widget_control  dthlv1id  get_value   dthlv1_value          gdep1   fix dthlv1_value combobox_value           widget_control  event id  get_value   dthlv2_value          gdep2   fix dthlv2_value combobox_value           if dthlv1_value combobox_index GT event index then BEGIN   We redfine the value of dthlv1id             widget_control  dthlv1id  set_value    combobox_select:event index    So we redefine the value and the min of the slider 1             if event index EQ 0 then min   0 ELSE min   gdep2 event index 1              widget_control  depth1id                  set_value    slider_min:min  value:gdep1 event index    Se we redefine the min of the slider 2             widget_control  depth2id  set_value    slider_min:gdep2 event index           END    We redefine the value and the max of the slider depth 2          if event index EQ jpk 1 then BEGIN              max   max gdept  gdepw              max   strtrim string max format e8 0  1              max   float 1 strmid max  1 float max           ENDIF ELSE max   gdep2 event index 1 1          widget_control  depth2id  set_value    slider_max:max  value:gdep2 event index    So we change the value of the max of the slider depth 1          widget_control  depth1id  set_value    slider_max:gdep2 event index 1        END        depth1 :BEGIN   ids           depth2id   widget_info event handler find_by_uname    depth2           dthlv1id   widget_info event handler find_by_uname    dthlv1    Do we have to change dthlv1            widget_control  dthlv1id  get_value   dthlv1_value          gdep1   fix dthlv1_value combobox_value           rien   where gdep1 LT event value  indice           indice   indice   indice 1           if indice NE dthlv2_value combobox_index then begin   We change the min of depth1             widget_control  depth1id  set_value    slider_max:gdep2 indice 1    We redefine the value of dthlv2id             widget_control  dthlv2id  set_value    combobox_select:indice    So we redefine the min of the slider 2             if indice EQ jpk 1 then BEGIN                 max   max gdept  gdepw                 max   strtrim string max format e8 0  1                 max   float 1 strmid max  1 float max              ENDIF ELSE max   gdep2 indice 1 1             widget_control  event id  set_value    slider_max:max           endif       END       ELSE:    ENDCASE      slidesliceid   widget_info event top  find_by_uname    slide_slice       if slidesliceid NE 0 then widget_control  slidesliceid  set_value   1    return ID:event handler  TOP:event top  HANDLER:0L                BOX:cw_domain_get_value event handler  end        file_comments        categories         param PARENT  in required    The widget ID of the parent widget        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword STRICT        keyword UNZOOM        keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword _EXTRA   Used to pass your keywords       returns          uses          restrictions          examples          history          version     Id: cw_domain pro 150 2006 08 09 10:12:54Z navarro        todo   seb: Documenter      FUNCTION cw_domain  parent  BOXZOOM   boxzoom  STRICT   strict  UVALUE   uvalue  UNAME   uname  UNZOOM   unzoom  _extra   ex       compile_opt idl2  strictarrsubs    cm_4mesh  cm_4data     Definition of the boxzoom   Case N_Elements Boxzoom  OF     0:boxzoom    lon1  lon2  lat1  lat2                      min gdepw 0  gdept 0  max gdepw 0  gdept 0        1:boxzoom    lon1  lon2  lat1  lat2  0  boxzoom 0      2:boxzoom    lon1  lon2  lat1  lat2  boxzoom 0  boxzoom 1      4:boxzoom    Boxzoom  vert1  vert2      5:boxzoom    Boxzoom 0:3  0  Boxzoom 4      6:     Else: return  report Mauvaise Definition de Boxzoom    ENDCASE   IF total Boxzoom  EQ 0 THEN        boxzoom    lon1  lon2  lat1  lat2  min gdepw 0  gdept 0  max gdepw 0  gdept 0      boxzoom 0    floor boxzoom 0    boxzoom 1    ceil boxzoom 1    boxzoom 2    floor boxzoom 2    boxzoom 3    ceil boxzoom 3    boxzoom 4    floor boxzoom 4    boxzoom 5    ceil boxzoom 5      if NOT keyword_set uvalue  then uvalue       if NOT keyword_set uname  then uname       base   widget_base parent  row   2  space   0                          EVENT_FUNC    cw_domain_event                           FUNC_GET_VALUE    cw_domain_get_value                           PRO_SET_VALUE    cw_domain_set_value                           UVALUE   uvalue  UNAME   uname  _extra   ex         baseh   widget_base base  column   1 keyword_set unzoom  space   0      baseh1   widget_base baseh  row   2  space   0   longitude    min   floor min glamt  glamf  max   max    max   ceil max    IF max min GT 360 AND keyword_set key_periodic  THEN max   min 360   lonbase   widget_base baseh1  column   2  space   0  uname    lonbase  uvalue    name: geographic    lon1id   cw_slider_pm lonbase  value   min   boxzoom 0   boxzoom 0 keyword_set strict    boxzoom 1   boxzoom 0 keyword_set strict   latitude    min   floor min gphit  gphif  max   max    max   ceil max    latbase   widget_base baseh1  column   2  space   0  uname    latbase  uvalue    name: geographic    lat1id   cw_slider_pm latbase  value   min   boxzoom 2   boxzoom 2 keyword_set strict    boxzoom 3   boxzoom 2 keyword_set strict   unzoom    if keyword_set unzoom  then rien   widget_button baseh  value    unzoom  uvalue    name: unzoom  xsize   60  ysize   110   depth    basez   widget_base base  column   3  space   0   base_align_center      basezdrp   widget_base basez  row   2  space   0      if strupcase vargrid  EQ  W  then gdep   gdepw ELSE gdep   gdept   gdep1   floor gdep    gdep2   ceil gdep    same   where gdep2 gdep1 EQ 0    if same 0  NE  1 then gdep2 same    gdep2 same   1   sgdep1   strtrim gdep1  1    sgdep2   strtrim gdep2  1      dephtid   cw_combobox_pm basezdrp  value    sgdep1  uvalue    name: dthlv1  grid_t:strupcase vargrid  NE  W  uname    dthlv1    rien   where gdep1 LT boxzoom 4  indice1    indice1   indice1   indice2 1    widget_control  dephtid  set_value    combobox_select:indice2          basedepthslid   widget_base base  column   2  space   0    strminlen   max strlen strtrim round gdept  gdepw  1      if indice1 EQ 0 then min1   0 ELSE min1   gdep2 indice1 1    max1    min1 1    gdep1 indice2    rien   cw_slider_pm basez  value   min1   boxzoom 4   boxzoom 4    boxzoom 5    max2                           uvalue    name: depth2  minimum   min2  maximum    max2                           uname    depth2  title    z2  strminlen   strminlen        return  base end"); 
     364a[362] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html", "cw_droplist_pm.pro", "", "  PRO testwid_event  event       help  event   STRUCT      DroplistId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          dynamic_resize :BEGIN             widget_control  event id  get_value   value            widget_control  DroplistId  set_value    dynamic_resize:value          END          droplist_select :BEGIN             widget_control  event id  get_value   value            widget_control  DroplistId  set_value    droplist_select:value          END          value :BEGIN             widget_control  event id  get_value   value            widget_control  DroplistId  set_value   value         END          get :BEGIN             widget_control  DroplistId  get_value   value            help   value   struct         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_droplist_pm base  _extra   ex  uname    c est lui  uvalue    c est lui    print   cw_droplist_pm ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    0  uvalue    dynamic_resize   editable       nothing   widget_text base  value    10  uvalue    droplist_select   editable       nothing   widget_text base  value    5  uvalue    value   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end   PRO cw_droplist_pm_set_value  id  value     compile_opt idl2  strictarrsubs      DroplistId   widget_info id find_by_uname    Droplist     if size value   type  eq 8 then BEGIN   this is a structure       tagnames   tag_names value        for tag   0  n_tags value 1 do begin          case strtrim strlowcase tagnames tag  2  of              dynamic_resize :widget_control  DroplistId  dynamic_resize   value dynamic_resize              droplist_select :widget_control  DroplistId  set_droplist_select   value droplist_select              value :widget_control  DroplistId  set_value   value value             ELSE:ras   report mauvais nom de l argument de la structure ds cw_droplist_pm_set_value           endcase       endfor    ENDIF ELSE widget_control  DroplistId  set_value   value    return end   FUNCTION cw_droplist_pm_get_value  id     compile_opt idl2  strictarrsubs      DroplistId   widget_info id find_by_uname    Droplist     return   droplist_number:widget_info DroplistId   droplist_number                  droplist_select:widget_info DroplistId   droplist_select                  dynamic_resize:widget_info DroplistId   dynamic_resize  end   FUNCTION cw_droplist_pm_event  event     compile_opt idl2  strictarrsubs      widget_control  event id  get_uvalue uval      if uval EQ  Droplist  then       return   CW_DROPLIST_PM  ID:event handler  TOP:event top  HANDLER:0L                  INDEX:event index  OUT:0       DroplistId   widget_info event handler find_by_uname    Droplist     index   widget_info DroplistId   droplist_select     case uval OF        plus :BEGIN          indexmax   widget_info DroplistId   droplist_number 1          if index NE indexmax then widget_control  DroplistId set_droplist_select   index 1          return   CW_DROPLIST_PM  ID:event handler  TOP:event top  HANDLER:0L                       INDEX: index 1    index 1  OUT: long index EQ 0        END    endcase end                file_comments   Like WIDGET_DROPLIST but here  their are 2 buttons   and   to move the widget from   1      categories   compound widget       param PARENT  in required    The widget ID of the parent widget       keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword _EXTRA   Used to pass your keywords      returns   The returned value of this function is the widget ID of the   newly created animation widget       restrictions         Widget Events Returned by Droplist Widgets       Pressing the mouse button while the mouse cursor is over an     element of a droplist widget causes the widget to change the label     on the droplist button and to generate an event  The appearance of     any previously selected element is restored to normal at the same     time  The event structure returned by the WIDGET_EVENT function is     defined by the following statement:         CW_DROPLIST_PM  ID:0L  TOP:0L  HANDLER:0L  INDEX:0L  OUT:0         The first three fields are the standard fields found in every     widget event      INDEX returns the index of the selected item  This can be used to     index the array of names originally used to set the widget s     value     OUT:It is an integer which can take 3 values:          1 : If we press   when the index is already at the max         Comment: In this case  the index stay at the max          1: If we press   when the index is already at the min         Comment: In this case  the index stay at the min         0 : In other cases       Keywords to WIDGET_CONTROL       A number of keywords to the WIDGET_CONTROL procedure affect the     behavior of cw_slider_pm widget: GET_VALUE and SET_VALUE          1  GET_VALUE     widget_control wid_id get_value resultat     Send back  in the result variable  a structure of 3 elements whose      names are inspired by keywords we can pass at widget_control when     we use WIDGET_COMBOBOX:              DROPLIST_NUMBER: the number of elements currently              contained in the specified droplist widget               DROPLIST_SELECT: the zero based number of the              currently selected element  i e  the currently displayed              element  in the specified droplist widget               DYNAMIC_RESIZE: a True value  1  if the widget specified              by Widget_ID is a button  droplist  or label widget that              has had its DYNAMIC_RESIZE attribute set  Otherwise               False  0  is returned          2  SET_VALUE     widget_control wid_id set_value impose     permet de modifier l etat de la droplist comme on peut le faire     pour WIDGET_DROPLIST Impose peut etre:         a  The contents of the list widget  string or string array          b  A structure which can have for elements  from 1 to 3 :               DYNAMIC_RESIZE:Set this keyword to activate  if set to 1               or deactivate  if set to 0  dynamic resizing of the              specified CW_DROPLIST_PM widget  see the documentation              for the DYNAMIC_RESIZE keyword to WIDGET_DROPLIST              procedure for more information about dynamic widget              resizing               DROPLIST_SELECT:Set this keyword to return the zero based              number of the currently selected element  i e  the              currently displayed element  in the specified droplist              widget               VALUE: The contents of the list widget  string or string              array       examples   See the program provided above  testwid and the associated procedure  testwid_event       history   Sebastien Masson  smasson lodyc jussieu fr                         6 9 1999      version    Id: cw_droplist_pm pro 150 2006 08 09 10:12:54Z navarro             FUNCTION cw_droplist_pm  parent UVALUE   uvalue  UNAME   uname  ROW   row  COLUMN   column  _extra   ex     compile_opt idl2  strictarrsubs       IF  N_PARAMS  NE 1  THEN MESSAGE   Incorrect number of arguments     ON_ERROR  2                   return to caller   cheking for row and column keywords    row   keyword_set row 1 keyword_set column      column   keyword_set column 1 keyword_set row keyword_set column  EQ row      if NOT keyword_set uvalue  then uvalue        if NOT keyword_set uname  then uname          base   widget_base parent  space   1  xpad   1  ypad   1  ROW   row  COLUMN   column                            EVENT_FUNC    cw_droplist_pm_event                            FUNC_GET_VALUE cw_droplist_pm_get_value                            PRO_SET_VALUE cw_droplist_pm_set_value                            UVALUE   uvalue  UNAME   uname  _extra   ex          if keyword_set row  THEN nothing   widget_button base value    uvalue   minus     nothing   widget_droplist base  UVALUE    Droplist  UNAME    Droplist  _extra   ex     if keyword_set column  then begin       base1   widget_base base   row   align_center  space   1  xpad   1  ypad   1        nothing   widget_button base1 value    uvalue   minus  xsize   20  ysize   20        nothing   widget_button base1 value    uvalue   plus  xsize   20  ysize   20     ENDIF ELSE nothing   widget_button base value    uvalue   plus        widget_control base realize      return  base end"); 
     365a[363] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_pagelayout.html", "cw_pagelayout.pro", "", "    FUNCTION cw_pagelayout_event  event     compile_opt idl2  strictarrsubs       widget_control  event id  get_uvalue uval    widget_control  event top  get_uvalue top_uvalue      smallin   extractatt top_uvalue   smallin     numdessinin   smallin 2 1    smallout   extractatt top_uvalue   smallout       if uval name EQ  undo  then begin       return ID:event handler  TOP:event top  HANDLER:0L     ENDIF ELSE BEGIN     common   If we do not change the number of columns  we send       if uval name EQ  column  then          if event index 1 EQ smallin 0  THEN          return ID:event handler  TOP:event top  HANDLER:0L    If we do not change the number of lines  we send       if uval name EQ  row  then          if event index 1 EQ smallin 1  THEN          return ID:event handler  TOP:event top  HANDLER:0L      We erase the page        graphid   widget_info event top find_by_uname    graph        graphid   extractatt top_uvalue   graphid        widget_control graphid get_value win       wset  win       erase  255       case uval name of           clear :           column :BEGIN              smallin    event index 1  smallin 1  1              smallout    event index 1  smallout 1  1           END           row :BEGIN             smallin    smallin 0  event index 1  1              smallout    smallout 0  event index 1  1           END       endcase       nbredessin   smallin 0 smallin 1               We put all back to 0 for postscripts       createhistory  event top  smallin                  options   extractatt top_uvalue   options           flags   extractatt top_uvalue   optionsflag        flag   flags  numdessinin               update and reset all values of the top_uvalue           top_uvalue 1  findline top_uvalue   smallin    smallin        top_uvalue 1  findline top_uvalue   smallout    smallout          top_uvalue 1  findline top_uvalue   penvs    replicate p  nbredessin         top_uvalue 1  findline top_uvalue   xenvs    replicate x  nbredessin         top_uvalue 1  findline top_uvalue   yenvs    replicate y  nbredessin           top_uvalue 1  findline top_uvalue   nameprocedures    strarr nbredessin         top_uvalue 1  findline top_uvalue   types    strarr nbredessin         top_uvalue 1  findline top_uvalue   varinfo    strarr 2  nbredessin         top_uvalue 1  findline top_uvalue   domaines    fltarr 6  nbredessin         top_uvalue 1  findline top_uvalue   dates    lonarr 2  nbredessin         top_uvalue 1  findline top_uvalue   txtcmd    strarr nbredessin         top_uvalue 1  findline top_uvalue   optionsflag    flag replicate 1  nbredessin          ptr_free  extractatt top_uvalue   exextra         top_uvalue 1  findline top_uvalue   exextra    ptrarr nbredessin   allocate_heap          top_uvalue 1  findline top_uvalue            ENDELSE      return ID:event handler  TOP:event top  HANDLER:0L  end        file_comments        categories         param PARENT  in required    The widget ID of the parent widget       param SMALL         keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget       keyword _EXTRA   Used to pass your keywords            returns          uses          restrictions          examples          history          version    Id: cw_pagelayout pro 150 2006 08 09 10:12:54Z navarro          todo    seb: documenter      FUNCTION cw_pagelayout  parent  small  UVALUE   uvalue  UNAME   uname  UNZOOM   unzoom  COLUMN   column  ROW   row  _extra   ex       compile_opt idl2  strictarrsubs     row   keyword_set row 1 keyword_set column      if NOT keyword_set uvalue  then uvalue       if NOT keyword_set uname  then uname       base   widget_base parent                          EVENT_FUNC    cw_pagelayout_event                           FUNC_GET_VALUE    cw_pagelayout_get_value                           PRO_SET_VALUE    cw_pagelayout_set_value                           UVALUE   uvalue  UNAME   uname  space   0  _extra   ex         IF n_elements small  eq 0 then small    1  1  1      dummy   widget_label base  value    cln  yoffset   3    id   widget_combobox base  value   strtrim indgen 9 1  1  uvalue    name: column                             uname    column  xoffset   20  xsize   40    widget_control  id  set_combobox_select   small 0 1     IF keyword_set row  THEN BEGIN      xoff   60     yoff   0   ENDIF ELSE BEGIN      xoff   0     yoff   20   ENDELSE    dummy   widget_label base  value    row  xoffset   xoff  yoffset   yoff 3    id   widget_combobox base  value   strtrim indgen 9 1  1  uvalue    name: row                             uname    row  xoffset   xoff 20  xsize   40  yoffset   yoff    widget_control  id  set_combobox_select   small 1 1       return  base end  "); 
     366a[364] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html", "cw_slide_slice.pro", "", "pro cw_slide_slice_set_value  id  value     compile_opt idl2  strictarrsubs    common    topid   findtopid id     domainid   widget_info topid  find_by_uname    domain     widget_control  domainid  get_value   boxzoom    if boxzoom 1 boxzoom 0  LT boxzoom 3 boxzoom 2  then type    y  ELSE type    x     thickid    widget_info topid  find_by_uname    thickness     widget_control  thickid  get_uvalue   thicknessuval    widget_control  thickid  get_value   thickness    thickness   thicknessuval choix thickness droplist_select     sliderid   widget_info topid  find_by_uname    slider     if type EQ  y  then BEGIN       mini   floor min glamt  glamf  max   maxi        maxi   ceil maxi thickness       widget_control  sliderid  set_value    slider_min:mini  slider_max:maxi  value:boxzoom 0  maxi                               value   mini   boxzoom 0   maxi                               value   mini   boxzoom 2    maxi   column  uname    slider                                uvalue    name: slider     ENDELSE    index   where thicknessval EQ thickness    index   index 0     if index EQ  1 then BEGIN        index   20       thicknessval 20    strtrim thickness  1        widget_control  droplistid  set_value   thicknessval       widget_control  droplistid  set_uvalue  name: thickness  choix:thicknessval     endif    widget_control  droplistid  set_value    droplist_select:index          if type EQ  xt  then begin         mini   floor min glamt glamf  max   maxi          maxi   ceil maxi       ENDIF ELSE BEGIN          mini   floor min gphit gphif  max   maxi          maxi   ceil maxi       ENDELSE          return  base end"); 
     367a[365] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html", "cw_slider_pm.pro", "", "  PRO testwid_event  event       help  event   STRUCT      SliderBarId   widget_info event top find_by_uname    c est lui       widget_control  event id  get_uvalue uval      if n_elements uval  EQ 0 then return      case uval of          done :widget_control  event top   destroy          slider_min :BEGIN             widget_control  event id  get_value   value            widget_control  SliderBarId  set_value    slider_min:value          END          slider_max :BEGIN             widget_control  event id  get_value   value            widget_control  SliderBarId  set_value    slider_max:value          END          slider_value :BEGIN             widget_control  event id  get_value   value            widget_control  SliderBarId  set_value   value         END          get :BEGIN             widget_control  SliderBarId  get_value   value            help   value   struct            print  value slider_min_max         END         ELSE:      endcase      return   end   PRO testwid  _extra   ex      base widget_base COLUMN    print   base  base      nothing   widget_label base  value    beginning of the test           nothing   cw_slider_pm base  _extra   ex  uname    c est lui  uvalue    c est lui    print   cw_slider_pm ID   nothing          nothing   widget_label base  value    end of the test       nothing   widget_text base  value    0  uvalue    slider_min   editable       nothing   widget_text base  value    10  uvalue    slider_max   editable       nothing   widget_text base  value    5  uvalue    slider_value   editable       nothing   widget_button base  value    get  uvalue    get       nothing   widget_button base  value    done  uvalue    done       widget_control  base   REALIZE      xmanager testwid  base      return   end   FUNCTION decvalue  value     compile_opt idl2  strictarrsubs     a   float value 0    return  strtrim string floor a    0 1 indgen 10  format    f15 1  2  end   FUNCTION decind  value     compile_opt idl2  strictarrsubs     a   float value 0    return  round 10 a   floor a      computation accuracy end   PRO cw_slider_pm_set_value  id  value     compile_opt idl2  strictarrsubs     sbid   widget_info id  find_by_uname    SliderBar    dcid   widget_info id  find_by_uname    decimal    minmax   widget_info sbid   SLIDER_MIN_MAX    if size value   type  eq 8 then BEGIN   this is a structure     tagnames   tag_names value      for tag   0  n_tags value 1 do begin       case strtrim strlowcase tagnames tag  2  of          slider_min :BEGIN            IF float value slider_min 0  LT minmax 1  THEN BEGIN              minmax 0    value slider_min 0              widget_control  sbid  set_slider_min   floor float value slider_min 0              valuedc   float widget_info dcid   combobox_gettext              IF valuedc LT value slider_min THEN BEGIN               widget_control  sbid  set_value   floor float value slider_min 0                widget_control  dcid  set_value   decvalue value slider_min                widget_control  dcid  set_combobox_select   decind value slider_min              ENDIF             ENDIF          end          slider_max :BEGIN            IF float value slider_max 0  GT minmax 0  THEN BEGIN              minmax 1    value slider_max 0              widget_control  sbid  set_slider_max   ceil float value slider_max 0              valuedc   float widget_info dcid   combobox_gettext              IF valuedc GT value slider_max THEN BEGIN               widget_control  sbid  set_value   ceil float value slider_max 0                widget_control  dcid  set_value   decvalue value slider_max                widget_control  dcid  set_combobox_select   decind value slider_max              ENDIF             ENDIF          end          value :IF float value value 0  GE minmax 0              AND float value value 0  LE minmax 1  THEN value2   float value value 0          ELSE:ras   report wrong tag name in argument  value  of cw_slider_pm_set_value        endcase     endfor   ENDIF ELSE BEGIN      IF float value 0  GE minmax 0          AND float value 0  LE minmax 1  THEN value2   float value 0    ENDELSE   IF n_elements value2  NE 0 THEN BEGIN      widget_control  sbid  set_value   fix value2      widget_control  dcid  set_value   decvalue value2      widget_control  dcid  set_combobox_select   decind value2    ENDIF    return end   FUNCTION cw_slider_pm_get_value  id     compile_opt idl2  strictarrsubs     sbid   widget_info id  find_by_uname    SliderBar    dcid   widget_info id  find_by_uname    decimal    minmax   widget_info sbid   SLIDER_MIN_MAX    value   float widget_info dcid   combobox_gettext     return   value:value  slider_min_max:minmax  end   FUNCTION cw_slider_pm_event  event     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uval     sbid   widget_info event handler  find_by_uname    SliderBar    dcid   widget_info event handler  find_by_uname    decimal    minmax   widget_info sbid   SLIDER_MIN_MAX    IF uval EQ  decimal  THEN value   float event str      ELSE value   float widget_info dcid   combobox_gettext    out   0   defaut case   case uval OF      plus : if  value   1  LE minmax 1  then value2   value   1 ELSE out   1      minus :if  value   1  GE minmax 0  then value2   value   1 ELSE out    1      SliderBar :if  event value   value   floor value  LE minmax 1  THEN value2   event value   value   floor value       decimal :BEGIN        CASE 1 OF         value GT minmax 1 : value2   minmax 1          value LT minmax 0 : value2   minmax 0          ELSE:       ENDCASE     END     ELSE:   ENDCASE   IF n_elements value2  NE 0  THEN BEGIN     value   value2     widget_control  sbid  set_value   floor value      widget_control  dcid  set_value   decvalue value      widget_control  dcid  set_combobox_select   decind value    ENDIF   return   CW_SLIDER_PM  ID:event handler  TOP:event top  HANDLER:0L                VALUE:value  OUT:OUT  end                file_comments   Like WIDGET_SLIDER but here  their are 2 buttons   and   to move the widget from   1      categories   compound widget       param PARENT  in required    The widget ID of the parent widget       keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget        keyword VALUE        keyword MAXIMUM          keyword MINIMUM         keyword STRMINLEN        keyword _EXTRA   Used to pass your keywords      returns   The returned value of this function is the widget ID of the   newly created animation widget       restrictions      Widget Events Returned by the CW_SLIDER_PM Widget      Slider widgets generate events when the mouse is used to change    their value  The event structure returned by the WIDGET_EVENT    function is defined by the following statement:       CW_SLIDER_PM  ID:0L  TOP:0L  HANDLER:0L  VALUE:0L  DRAG:0  OUT:0       ID is the widget ID of the button generating the event  TOP is the    widget ID of the top level widget containing ID     HANDLER contains the widget ID of the widget associated with the    handler routine     VALUE returns the new value of the slider     DRAG returns integer 1 if the slider event was generated as part of    a drag operation  or zero if the event was generated when the user    had finished positioning the slider  Note that the slider widget    only generates events during the drag operation if the DRAG keyword    is set  and if the application is running under Motif  When the    DRAG keyword is set  the DRAG field can be used to avoid    computationally expensive operations until the user releases the    slider     OUT:It is an integer which can take 3 values:          1 : If we press   when the index is already at the max         Comment: In this case  the index stay at the max          1: If we press   when the index is already at the min         Comment: In this case  the index stay at the min         0 : In other cases       Keywords to WIDGET_CONTROL       A number of keywords to the WIDGET_CONTROL procedure affect the     behavior of cw_slider_pm widget: GET_VALUE and SET_VALUE          1  GET_VALUE     widget_control wid_id get_value resultat     retourne ds la variable resultat une structure de 2 elements dont     les noms sont inspires des mots cles que l on peut passer a     widget_control qd on utilise WIDGET_SLIDER:              VALUE:the value setting of the widget              SLIDER_MIN_MAX: a 2 elements array: The minimum and the              maximum value of the range encompassed by the slider         2  SET_VALUE     widget_control wid_id set_value impose     Allows to modify the state of the combobox like we can do it for      WIDGET_COMBOBOX  May impose:          a  un entier: donne la nouvelle  position of the slider          b  A structure which can have for elements  from 1 to 3 :               VALUE: an integer which give the new position of the slider              SLIDER_MIN:Set to a new minimum value for the specified              slider widget               SLIDER_MAX:Set to a new minimum value for the specified              slider widget         examples   See the program provided above  testwid and the associated procedure  testwid_event       history   Sebastien Masson  smasson lodyc jussieu fr                         5 9 1999      version    Id: cw_slider_pm pro 150 2006 08 09 10:12:54Z navarro        todo   seb: documenter           FUNCTION cw_slider_pm  parent  MAXIMUM   maximum  MINIMUM   minimum                            STRMINLEN   strminlen  VALUE   value  UVALUE   uvalue                            UNAME   uname  title   title  _extra   ex     compile_opt idl2  strictarrsubs      IF  N_PARAMS  NE 1  THEN MESSAGE   Incorrect number of arguments    ON_ERROR  2                    return to caller     if n_elements minimum  NE 0 then minimum   floor minimum  ELSE minimum   0   if n_elements maximum  NE 0 then maximum   ceil maximum  ELSE maximum   100   if NOT keyword_set title  then title              cheking exclusive keywords   column    keyword_set column 1 keyword_set row keyword_set vertical   xsize   lenstr   max strlen strtrim minimum  maximum  1    if keyword_set strminlen  then lenstr   strminlen   lenstr    xsize   35   mlen lenstr 1 3 lenstr lt 4    xsize   35   mlen lenstr 2    dummyid   widget_combobox base  value   decvalue minimum                                  UVALUE    decimal  UNAME    decimal                                  xoffset   xoff  yoffset   2  xsize   xsize     dummyid   widget_slider base  MAXIMUM   maximum  MINIMUM   minimum  UVALUE    SliderBar                                UNAME    SliderBar   suppress_value   drag                               yoffset   30  xsize   xoff   xsize      if keyword_set value  then cw_slider_pm_set_value  base  value     return  base end"); 
     368a[366] = new Array("./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html", "cw_specifie.pro", "", "    PRO cw_specifie_set_value  id  value     compile_opt idl2  strictarrsubs    cm_general    if size value   type  NE 8 then return    widget_control  widget_info id find_by_uname min  set_value   strtrim value min  2     widget_control  widget_info id find_by_uname max  set_value   strtrim value max  2     widget_control  widget_info id find_by_uname int  set_value   strtrim value inter  2     widget_control  widget_info id find_by_uname palnum  set_value   strtrim value lct  2     autres   extractstru value   min   max   inter   lct   nothing   xindex   yindex     if size autres   type  EQ 8 then BEGIN        autresid   widget_info id find_by_uname autres        widget_control  widget_info id  find_by_uname    autres  get_value   autresautres       autresautres   autresautres 0        if strtrim autresautres  2  NE   then begin         autresautres   createfunc get_extra    autresautres                                           filename   myuniquetmpdir  for_createfunc pro          autres   mixstru autres  autresautres        endif       autres   strkeywd autres        widget_control  widget_info id find_by_uname autres  set_value   autres    endif    return end     FUNCTION cw_specifie_get_value  id     compile_opt idl2  strictarrsubs    cm_general    widget_control  widget_info id find_by_uname min  get_value   min    min   float min 0     widget_control  widget_info id find_by_uname max  get_value   max    max   float max 0     widget_control  widget_info id find_by_uname int  get_value   int    int   float int 0     widget_control  widget_info id find_by_uname palnum  get_value   palnum    palnum   long palnum 0     widget_control  widget_info id find_by_uname autres  get_value   autres    autres   autres 0       exextra    min:min  max:max  inter:int  lct:palnum     if strtrim autres  2  NE   then         exextra   createfunc get_extra autres  _extra   exextra                                 kwdlist    exextra   exextra  exextra   exextra                                filename   myuniquetmpdir  for_createfunc pro       return  exextra end     FUNCTION cw_specifie_event  event     on recuper les ID des differents widgets          compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uval   widget_control  event top  get_uvalue   top_uvalue   smallin   extractatt top_uvalue   smallin    numdessinin   smallin 2 1   smallout   extractatt top_uvalue   smallout    numdessinout   smallout 2 1     case uval of      default :BEGIN      We find the name of the variable:        vlstid   widget_info event top  find_by_uname    varlist        fieldname   widget_info vlstid   combobox_gettext          exextra   definedefaultextra fieldname        widget_control  widget_info event handler  find_by_uname    min  set_value   strtrim exextra min  1        widget_control  widget_info event handler  find_by_uname    max  set_value   strtrim exextra max  1        widget_control  widget_info event handler  find_by_uname    int  set_value   strtrim exextra inter  1        widget_control  widget_info event handler  find_by_uname    palnum  set_value   strtrim exextra lct  1        widget_control  widget_info event handler  find_by_uname    autres  set_value         END      palcol :BEGIN        ind   fix strmid event value  0  strpos event value          widget_control  widget_info event handler  find_by_uname    palnum  set_value   strtrim ind  1      END     ELSE:   endcase   return   ID:event handler  TOP:event top  HANDLER:0L  OK:uval EQ  ok  end          file_comments        categories         param PARENT  in required    The widget ID of the parent widget       keyword COLUMN   Buttons will be arranged in the number of columns   specified by this keyword        keyword ROW   Buttons will be arranged in the number of rows   specified by this keyword        keyword UVALUE   The user value to be associated with the widget        keyword UNAME   The user name to be associated with the widget       keyword FRAME        keyword FORXXX         keyword _EXTRA   Used to pass your keywords         returns          uses          restrictions          examples          history          version     ID       todo   seb: documenter      FUNCTION cw_specifie  parent  ROW   row  COLUMN   column  UVALUE   uvalue  UNAME   uname  FRAME   frame  FORXXX   forxxx  _extra   ex   cheking exclusive keywords     compile_opt idl2  strictarrsubs      column   keyword_set column 1 keyword_set row     row   keyword_set row 1 keyword_set column   keyword_set row  EQ column        if NOT keyword_set uvalue  then uvalue        if NOT keyword_set uname  then uname        base   widget_base parent  space   0   frame                           EVENT_FUNC    cw_specifie_event                            FUNC_GET_VALUE cw_specifie_get_value                            PRO_SET_VALUE cw_specifie_set_value                            UVALUE   uvalue  UNAME   uname  _extra   ex       base1     base1   widget_base base     rien   widget_label base1  value    Min  xoffset    85  yoffset   15     rien   widget_label base1  value    Max  xoffset   145  yoffset   15     rien   widget_label base1  value    Int  xoffset   210  yoffset   15       lct  get_name   nomcouleur    nbrligne   30    nbrlist   n_elements nomcouleur nbrligne    nomcouleur   strtrim sindgen n_elements nomcouleur  1   nomcouleur    nomcouleur    0 nomcouleur    nomcouleur    1 Color  nomcouleur     if nbrlist GT 1 then for i   1 nbrlist do       nomcouleur    nomcouleur 0:nbrligne i 1 i   1    nomcouleur nbrligne i i:n_elements nomcouleur 1     rien   cw_pdmenu base1  nomcouleur   RETURN_NAME   uvalue    palcol  uname    palcol  xoffset   250  yoffset   0    base2    base2   widget_base base  column   4 keyword_set forxxx  yoffset   30     if keyword_set forxxx  then rien   widget_button base2 value Default  uvalue    default   frame  tooltip    see  find definedefaultextra 0     rien   widget_text base2  value      editable  xsize   7  uname    min  uvalue    min     rien   widget_text base2  value      editable  xsize   7  uname    max  uvalue    max     rien   widget_text base2  value      editable  xsize   7  uname    int  uvalue    int     if keyword_set forxxx  then colvalue     ELSE colvalue    39     rien   widget_text base2  value   colvalue   editable  xsize   2  uname    palnum  uvalue    palnum       widget text containig other keywords pass into top_uvalue exextra   Does it remain some  If yes  we have to put them as string        rien   widget_text base  value         editable  uname    autres  uvalue    autres  xsize   54  ysize   3  yoffset   65   wrap   no_newline       if keyword_set forxxx  then cw_specifie_set_value  base  definedefaultextra rien_du_tout        return  base end "); 
     369a[367] = new Array("./ToBeReviewed/WIDGET/findtopid.html", "findtopid.pro", "", "             file_comments   Find  from an Id of widget  the Id of the widget which is     the top level base   i e  it has no parent      categories   widget       param WIDGET_ID   This argument should be the widget ID of the   widget for which information is desired       returns   The Id of the widget which is  the top level base       history   Sebastien Masson  smasson lodyc jussieu fr                         22 9 1999      version    Id: findtopid pro 150 2006 08 09 10:12:54Z navarro             FUNCTION findtopid   WIDGET_ID     compile_opt idl2  strictarrsubs      id   long WIDGET_ID       exist   widget_info id   managed       if exist EQ 0 then return    1    topid   id    topid2   id    while topid2 NE 0 do begin       topid   topid2       topid2   widget_info topid2   parent     endwhile    return   long topid  end"); 
     370a[368] = new Array("./ToBeReviewed/WIDGET/slec.html", "slec.pro", "", "     file_comments        categories         param NAME        param DEBUT        param FIN        param NOMEXP         keyword PARENT  in required    The widget ID of the parent widget       keyword BOXZOOM   Vector indicating the geographic zone on which we want to cut the map     If BOXZOOM has :      1 element : The extraction is made on  lon1  lon2  lat1  lat2  0 boxzoom 0      2 elements: The extraction is made on  lon1  lon2  lat1  lat2  boxzoom 0 boxzoom 1      4 elements: The extraction is made on  Boxzoom  0  max gdept  gdepw      5 elements: The extraction is made on  Boxzoom 0:3  0  Boxzoom 4      6 elements: The extraction is made on Boxzoom    Where lon1  lon2 lat1 lat2 are global variables defined at the last domdef       keyword _EXTRA   Used to pass your keywords          returns          uses          restrictions          examples          history          version     Id: slec pro 150 2006 08 09 10:12:54Z navarro        todo   Seb: documenter     FUNCTION slec name debut fin  nomexp  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex     include common     compile_opt idl2  strictarrsubs    cm_4data   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew  updatekwd   ENDIF       case n_params  of       1:tab   nlec name  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex        2:tab   nlec name debut  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex        3:tab   nlec name debut fin  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex        4:tab   nlec name debut fin  nomexp  PARENT   parent  BOXZOOM boxzoom  _EXTRA   ex     endcase      return   tab:tab  grille:vargrid  unite:varunit  experience:varexp  nom:varname  end"); 
     371a[369] = new Array("./ToBeReviewed/WIDGET/xnotice.html", "xnotice.pro", "", "             file_comments   Create a widget with some text at the middle of the window      categories   Information       param TEXT  in required    it is a string or a vector of string  If it is a scalar  we    look for the line separator  C to create a text with several lines       keyword CHKWIDGET   Force to verify that they are some active widget to create a widget     otherwise print at the prompt      returns   The identity of the created widget      restrictions    It do not call xmanager   It do not create any event     We have to delete this widget manuelly:   widget_control  widgetid   destroy      examples      IDL  id xnotice ca marche  C ou pas       IDL  widget_control  id   destroy      history   Sebastien Masson  smasson lodyc jussieu fr                         2000 3 17      version    Id: xnotice pro 150 2006 08 09 10:12:54Z navarro             FUNCTION xnotice  text  CHKWIDGET   chkwidget     We separate the text in different lines  separated by  C  if it is not done yet    n est pas deja fait      compile_opt idl2  strictarrsubs      if n_elements text  EQ 1 then text   str_sep text   C   trim       if keyword_set chkwidget  then makewid    widget_info managed 0 ELSE makewid   1      if makewid EQ 0 then BEGIN       for i   0   n_elements text 1 do print  text i        noticebase   0    endif      noticebase   widget_base column  title    information   align_center     screensize   get_screen_size     widget_control  noticebase  tlb_set_xoffset   screensize 0 2 2  tlb_set_yoffset   screensize 1 2 2    nothing   widget_label noticebase  value          for i   0   n_elements text 1 do nothing   widget_label noticebase  value   text i     nothing   widget_label noticebase  value          widget_control noticebase realize      return  noticebase end"); 
     372a[370] = new Array("./ToBeReviewed/WIDGET/xquestion.html", "xquestion.pro", "", "  pro xquestion_event  event     compile_opt idl2  strictarrsubs     we get the answer    widget_control  widget_info event top  find_by_uname    text          get_value   answer   answer   answer 0    now we give the answer to xquestion pro by using the pointer uvalue    widget_control  event top  get_uvalue   ptranswer     ptranswer   answer   we destroy the widget    widget_control  event top   destroy    return end                file_comments   A small widget who ask a question and give an answer      WARNING: For a binary question with yes no answer use     DIALOG_MESSAGE       categories   widget      param QUESTION   A scalar string or a array of string  If this   argument is set to :          an array of strings: each array element is          displayed as a separate line of text           a scalar string: we are looking for the  separate line          character   C       param PROPOSEDANSWER   A string proposing a answer        keyword CHKWIDGET   Active this keyword if you whant that xquestion   check if managed widget are present  If not  xquestion do not   open a widget but print the question in the IDL window        keyword _EXTRA   Used to pass your keywords       returns   answer: a string      restrictions   The function does not return to its caller until the user   press  Enter  key in the widget       examples   IDL  help  xquestion Postscript name        STRING       toto ps       history   Sebastien Masson  smasson lodyc jussieu fr                         13 10 1999      version    Id: xquestion pro 150 2006 08 09 10:12:54Z navarro             FUNCTION xquestion  question  proposedanswer  CHKWIDGET   chkwidget  _extra   ex       compile_opt idl2  strictarrsubs     is separate line a scalar  we must cut it into pieces      if n_elements question  EQ 1 then question   str_sep question   C   trim    is a widget necessary     if keyword_set chkwidget  then BEGIN       if  widget_info managed 0  EQ 0 then BEGIN          if n_elements proposedanswer  EQ 0 then BEGIN              proposedanswer                 answer                 complete              ENDIF ELSE BEGIN              answer   proposedanswer             complete    default answer is  proposedanswer             ENDELSE          if n_elements question  GT 1 THEN             for i   0  n_elements question 2 do print question i            read  question n_elements question 1   complete   answer          if keyword_set answer  EQ 0 then answer   proposedanswer          return  answer       endif    endif   definition of the widget    BaseId   widget_base column  title    Question  _extra   ex     screensize   get_screen_size     widget_control  BaseId  tlb_set_xoffset   screensize 0 2 2  tlb_set_yoffset   screensize 1 2 2    for i   0   n_elements question 1 DO trash   widget_label BaseId  value   question i   align_left     if n_elements proposedanswer  EQ 0 then answer     ELSE answer   proposedanswer    trash   widget_text BaseId  value   answer   editable  _extra   ex  uname    text     trash   widget_button BaseId  value    ok     ptranswer   ptr_new allocate_heap     widget_control  BaseId  set_uvalue   ptranswer   we realize the widget and wait for an answer    widget_control BaseId realize    xmanager xquestion BaseId   we get the answer    answer    ptranswer   we freeing the pointer    ptr_free  ptranswer      return  answer end"); 
     373a[371] = new Array("./ToBeReviewed/WIDGET/xx.html", "xx.pro", "", "     file_comments        categories         keyword JOUR          keyword MESHFILENAME          keyword LISTVAR          keyword LISTGRID          keyword FUNCLEC_NAME           keyword CALENDAR          keyword _EXTRA   Used to pass your keywords          uses          restrictions          examples          history          version     Id: xx pro 150 2006 08 09 10:12:54Z navarro        todo   seb documenter       PRO xx   JOUR   jour  MESHFILENAME   meshfilename   LISTVAR   listvar  LISTGRID   listgrid  FUNCLEC_NAME   funclec_name  CALENDAR   calendar  _extra   ex     compile_opt idl2  strictarrsubs    common        Name of the part to be changed       Name of the reading function    if NOT keyword_set funclec_name  then funclec_name    slec     varexp    INF    list of variables    if NOT keyword_set listvar  then listvar    tn sn un vn   taux   tauy hdep20 hdep28 hdep15 hturb hpycn htoth emp qn qs   smltot11   smltot12   smltot13   smltot14   smltot15   smltot16   tmltot11   tmltot12   tmltot13   tmltot14   tmltot15   tmltot16    list of grids to which variables refer to     if NOT keyword_set listgrid  then BEGIN        listgrid   replicate T  n_elements listvar        listgrid 2  4     U        listgrid 3  5     V     ENDIF   calendar to be used  in IDL julian days          if NOT keyword_set calendar  then BEGIN          if keyword_set jour  then calendar   calendriertotem julian_day  ELSE calendar   calendriertotem julian_day   mensuel       ENDIF   Name of the file refering to the mask    if NOT keyword_set meshfilename  then meshfilename    usr1 com smasson IDL INIT inittotem pro      meshparameters   whichgrid meshfilename    parameters specifing how the field must be read    readparameters   funclec_name: funclec_name                         jpidta: jpidta  jpjdta: jpjdta  jpkdta: jpkdta                         ixmindta: ixmindta  ixmaxdta: ixmaxdta                         iymindta: iymindta  iymaxdta: iymaxdta                         izmindta: izmindta  izmaxdta: izmaxdta           End of the part to be change            fileparameters    filename:  many                            time_counter: calendar                          listvar: listvar                          listgrid: strupcase listgrid       multistructure    fileparameters: temporary fileparameters                    readparameters: temporary readparameters                    meshparameters: temporary meshparameters       xxx  multistructure   temporary multistructure  _extra   ex     return end"); 
     374a[372] = new Array("./ToBeReviewed/WIDGET/xxx.html", "xxx.pro", "", " PRO xxx_event  event       compile_opt idl2  strictarrsubs    common          widget_info event top find_by_uname       What is the type of evenment       if event id EQ 622 then help   event    struct    widget_control  event id  get_uvalue uval    if  tag_names event   structure_name 0  EQ  WIDGET_TRACKING  then uval    name: ActiverFenetre     if keyword_set uval  EQ 0 then return  help   event   struct  help  uval    struct   case on the type of evenment    widget_control  event top  get_uvalue   top_uvalue   If we activate the keyword separate at the call of xxx    if size top_uvalue   type  EQ 3 then begin       event top   top_uvalue       widget_control  event top  get_uvalue   top_uvalue    endif   we delete the small widget created by notice pro if it exists    noticebase   extractatt top_uvalue   noticebase     if noticebase NE 0 then BEGIN       widget_control  noticebase   destroy        top_uvalue 1  findline top_uvalue   noticebase    0l    endif      options   extractatt top_uvalue   options     case uval name OF        menubar :xxxmenubar_event  event        ok :nouveaudessin   1        specifie :        action :        calendar1 :BEGIN          date2id   widget_info event top  find_by_uname    calendar2           widget_control  date2id  get_value   date2          if event value GT date2 then widget_control  date2id  set_value   event value       END        calendar2 :BEGIN          date1id   widget_info event top  find_by_uname    calendar1           widget_control  date1id  get_value   date1          if event value LT date1 then widget_control  date1id  set_value   event value       END        domain :        varlist :BEGIN          currentfile    extractatt top_uvalue   currentfile           listvar    extractatt top_uvalue   fileparameters currentfile listvar          name   listvar event index           changefield  event top  name       END        txtcmd :        filelist :BEGIN          changefile  event top  event index       END        ActiverFenetre :BEGIN          if event enter EQ 1 AND  d name NE  PS  then BEGIN              graphid   widget_info event top find_by_uname    graph              graphid   extractatt top_uvalue   graphid              widget_control graphid get_value win             wset  win             widget_control event top get_uvalue top_uvalue             numdessinin    extractatt top_uvalue   smallin 2 1              p    extractatt top_uvalue   penvs numdessinin               x    extractatt top_uvalue   xenvs numdessinin               y    extractatt top_uvalue   yenvs numdessinin           endif       END        graph :BEGIN          quelclick   identifyclick event           case quelclick type of              inutile :return              long :longclickaction  event              single :singleclickaction  event              double :doubleclickaction  event          endcase       END    endcase    if keyword_set nouveaudessin  then letsdraw  event top    return end                    file_comments   A maximum of possibilities with a minimum of clics      categories   widget       param DATAFILENAME        param IDLFILE        param ARGSPRO        keyword SEPARATE   To separate the button part and the drawing part in 2 windows    Useful for small screens  but be careful to do not saturate the    video memory of some antiquated Tx       keyword RESTORE    toto dat  or toto dat is a file created at the time of a precedent    use of xxx thanks to the command  Widget  of the menu  save as        keyword _EXTRA   Used to pass your keywords      uses   common pro      history   Sebastien Masson  smasson lodyc jussieu fr       version    Id: xxx pro 152 2006 08 10 07:01:35Z smasson        todo   seb: documenter le reste des keywords                 PRO xxx  datafilename  idlfile  argspro  CALLERWIDID   CallerWidId              REDRAW   redraw  SEPARATE   separate  UVALUE   uvalue              RESTORE   restore  _EXTRA   ex       compile_opt idl2  strictarrsubs    all_cm     reinitialize the  p   x   y   z variables     reinitplt     we get back the uvalue of the widget that called xxx to create a new widget   if keyword_set restore  then BEGIN     restore   isafile filename   restore  iodir   homedir  _extra   ex      if size restore   type  NE 7 then restore   0 ELSE BEGIN        restore  isafile file   restore  iodir   homedir  _extra   ex        newgrid    extractatt uvalue   meshparameters 0        change   changegrid newgrid      ENDELSE    endif   if n_elements CallerWidId  NE 0 THEN        widget_control  CallerWidId  get_uvalue   uvalue ELSE CallerWidId   0       list of files we want to look at     if keyword_set uvalue  then BEGIN      currentfile   extractatt uvalue   currentfile      filelist   extractatt uvalue   filelist      fileparameters   extractatt uvalue   fileparameters      readparameters   extractatt uvalue   readparameters      meshparameters   extractatt uvalue   meshparameters    ENDIF ELSE BEGIN     newfile   selectfile datafilename  idlfile  argspro  _extra   ex      if size newfile   type  NE 8 then return     fileparameters   ptrarr 1   allocate_heap       fileparameters 0    newfile fileparameters     readparameters   ptrarr 1   allocate_heap       readparameters 0    newfile readparameters     meshparameters   ptrarr 1   allocate_heap       meshparameters 0    newfile meshparameters     currentfile   0     filelist   newfile fileparameters filename   ENDELSE     if keyword_set uvalue  THEN BEGIN      smallin   extractatt uvalue   smallin      smallout   extractatt uvalue   smallout    ENDIF ELSE BEGIN      smallin    1  1  1      smallout    1  1  1    ENDELSE    nbredessin   smallin 0 smallin 1    numdessinin   smallin 2 1   warning flg definition must be consistent with cw_pdmenu argument   see also flag definition in cw_pagelayout   if keyword_set uvalue  then BEGIN      flag   extractatt uvalue   optionsflag      key_portrait   flag 0  numdessinin    ENDIF ELSE flag    key_portrait  0  0  0  0 replicate 1  nbredessin         We start the widget definition         widget and screen size   scrsize   get_screen_size 0 95   windsize   givewindowsize    xxxsize    windsize 0     1 keyword_set separate    350  windsize 1        The top base     IF xxxsize 0  LE scrsize 0  AND xxxsize 1  LE scrsize 1  THEN BEGIN      base   widget_base title    xxx  GROUP_LEADER   group   tracking_events                            uname    base  space   0    ENDIF ELSE BEGIN      base   widget_base title    xxx  GROUP_LEADER   group   tracking_events                            uname    base  space   0                            xsize   xxxsize 0  ysize   xxxsize 1                             x_scroll_size    xxxsize 0   selectact    ENDIF ELSE selectfile   0      menu options     xoff   xoff   110   if keyword_set uvalue  then begin     options   extractatt uvalue   options    ENDIF ELSE options    Portrait Landscape   Overlay   Vecteur                               Longitude   x index   Latitude   y index      desc      1 File                 0 Open                   0 New xxx                   2 Quit                 1 Save as                   0 PostScript                   0 Animated gif                   0 Gif                   0 IDL procedure                 0 RESTORE kwd of xxx                 2 Print to prompt                 1 Flag options     descsuite   options    if n_elements descsuite  GE 2 then       descsuite 0:n_elements descsuite 2     0 descsuite 0:n_elements descsuite 2     descsuite n_elements descsuite 1     2 descsuite n_elements descsuite 1     desc    desc  descsuite       menu   cw_pdmenu base  desc   RETURN_NAME  uname    menubar  uvalue    name: menubar                          xoffset   xoff  yoffset   yoff       Ok button     yoff   yoff   37   xoff   5   boutton  OK    baseok   widget_button base  value     OK   uvalue    name: ok  uname    ok button                                frame  xoffset   xoff  yoffset   yoff       Page Layout     page layout   xoff   xoff   65   dummyid   cw_pagelayout base  smallin   row   frame  xoffset   xoff  yoffset   yoff        List of Variables     xoff   xoff   140   currentlistvar    fileparameters currentfile listvar   vlstid   widget_combobox base  value   currentlistvar  uvalue    name: varlist                                 uname    varlist  xoffset   xoff  yoffset   yoff 1    if keyword_set uvalue  then BEGIN     selectvar    extractatt uvalue   varinfo 1  numdessinin      selectvar    where currentlistvar EQ selectvar 0      widget_control  vlstid  set_combobox_select   0   selectvar    ENDIF ELSE selectvar   0     List of files     yoff   yoff   35   flstid   widget_combobox base  value   file_basename filelist  uname    filelist                                 xsize   345  yoffset   yoff  uvalue    name: filelist    if keyword_set uvalue  then BEGIN     selectfile    extractatt uvalue   varinfo 0  numdessinin      selectfile    where file_basename filelist  EQ selectfile 0      widget_control  flstid  set_combobox_select   0   selectfile    ENDIF ELSE selectfile   0     Text for computation     yoff   yoff   32   computation done on the files    if keyword_set uvalue  then txtvalue    extractatt uvalue   txtcmd numdessinin      ELSE txtvalue   varexp   dummyid   widget_text base  value   txtvalue  uvalue    name: txtcmd  uname    txtcmd                               editable  yoffset   yoff  xsize   54   frame      Calendar     yoff   yoff   40   currentcalendar    fileparameters currentfile time_counter   key_caltype    fileparameters currentfile caltype   fakecal    fileparameters currentfile fakecal   if keyword_set uvalue  then begin     dates    extractatt uvalue   dates  numdessinin      date1   date2jul dates 0      date2   date2jul dates 1    ENDIF   basecalid   widget_base base  column   2  space   0  yoffset   yoff  uname    basecal    dummyid   cw_calendar basecalid  currentcalendar  date1  FAKECAL   fakecal  uname    calendar1  uvalue    name: calendar1   frame    dummyid   cw_calendar basecalid  currentcalendar  date2  FAKECAL   fakecal  uname    calendar2  uvalue    name: calendar2   frame      Domain      yoff   yoff   60   vargrid   strupcase fileparameters currentfile listgrid selectvar    IF vargrid EQ  W  then zgrid    W  ELSE zgrid    T    if keyword_set uvalue  then boxzoom    extractatt uvalue   domaines  numdessinin    dummyid   cw_domain base  uname    domain  uvalue    name: domain   unzoom   frame                           boxzoom   boxzoom  yoffset   yoff  xoffset   15      Plots specifications     yoff   yoff   230   speid   cw_specifie base  uname    specifie  uvalue    name: specifie   frame   column                            forxxx  yoffset   yoff    if keyword_set uvalue  then BEGIN     exextra    extractatt uvalue   exextra numdessinin      IF n_elements exextra  NE 0 THEN widget_control  speid  set_value   exextra   ENDIF     drawing part     if keyword_set separate  then        basegraph   widget_base title    xxx window   group_leader   base  uvalue   base      ELSE basegraph   base      graphid   widget_draw basegraph  uname    graph   button_events  retain   2                             uvalue    name: graph  press:0  click:0  x: 0  0  y: 0  0                              xoffset   350 1 keyword_set separate                              xsize   windsize 0  ysize   windsize 1    tooltip    toto      realize the widget     widget_control  base   realize   if keyword_set separate  then begin     widget_control  basegraph   realize     xmanager   xxx  basegraph   no_block   endif      if keyword_set uvalue  then BEGIN     We recopy the pointer uvalue in top_uvalue    Beware  we have to redefine completely top_value from variables    pointed by uvalue  Otherwise  if we simply do top_value   uvalue     when we delete by uvalue and variables on which it point  we    also delete variables on which point top_value      case 1 of       keyword_set redraw :BEGIN         top_uvalue   uvalue         widget_control  base  set_uvalue   top_uvalue   we find homedir         homedir   isadirectory io   homedir  title    Bad definition of homedir    We recuperae the list of instructions         globalcommand   extractatt top_uvalue   globalcommand    We complete by first and last lines of the program         createpro  globalcommand  filename   myuniquetmpdir    xxx2ps pro                         KWDLIST     NOERASE   noerase  POSTSCRIPT   postscript                         PORTRAIT   portrait  LANDSCAPE   landscape                          noerase       END       keyword_set restore :begin         top_uvalue   uvalue         widget_control  base  set_uvalue   top_uvalue         widget_control  graphid  get_value   win         wshow  win         wset  win         tv  image   true   widgets s state         updatewidget  base          END       ELSE:BEGIN         top_uvalue   ptrarr 2  29   allocate_heap          FOR i    0  28 do  top_uvalue 0  i     uvalue 0  i          FOR i    0  14 do  top_uvalue 1  i     uvalue 1  i          FOR i   18  27 do  top_uvalue 1  i     uvalue 1  i          numfile   n_elements extractatt uvalue   filelist            top_uvalue 1  15    ptrarr numfile   allocate_heap           top_uvalue 1  16    ptrarr numfile   allocate_heap           top_uvalue 1  17    ptrarr numfile   allocate_heap          for i   0  numfile 1 do begin            top_uvalue 1  15 i     uvalue 1  15 i              top_uvalue 1  16 i     uvalue 1  16 i              top_uvalue 1  17 i     uvalue 1  17 i           endfor          top_uvalue 1  28    ptrarr nbredessin   allocate_heap          for i   0  nbredessin 1 do  top_uvalue 1  28 i     uvalue 1  28 i           widget_control  base  set_uvalue   top_uvalue   Copy the screen of the widget of uvalue in top_value s one         if keyword_set CallerWidId   then begin           widget_control  extractatt uvalue   graphid  get_value   win           wshow  win           wset  win           image   tvrd true            widget_control  graphid  get_value   win           wshow  win           wset  win           tv  image   true         ENDIF       END     endcase      top_uvalue 1  findline top_uvalue   graphid    graphid   ENDIF ELSE BEGIN   Otherwise we will define all elements we will hook at the widget    thanks to the top_value which is a pointer array with 2    columns: names and variables     We initialize all these elements    Variables concerning the widget in its generality      if NOT keyword_set ex   then ex    nothing:0    variables se rapportant aux differents fichiers que l on peut lire   variables specifiques a chaque dessin                creation of the pointer we will hook at the widget      top_uvalue   ptrarr 2  29   allocate_heap    variables refering to the widget      top_uvalue 0  0     options     top_uvalue 1  0    options      top_uvalue 0  1     smallin     top_uvalue 1  1    smallin      top_uvalue 0  2     smallout     top_uvalue 1  2    smallout      top_uvalue 0  3     graphid     top_uvalue 1  3    graphid      top_uvalue 0  4     alreadyvector     top_uvalue 1  4     1      top_uvalue 0  5     alreadyover     top_uvalue 1  5     1      top_uvalue 0  6     alreadyread     top_uvalue 1  6     1      top_uvalue 0  7     currentreadcmd     top_uvalue 1  7           top_uvalue 0  8     globalcommand     top_uvalue 1  8           top_uvalue 0  9     globaloldcommand     top_uvalue 1  9           top_uvalue 0  10     no more used     top_uvalue 1  10    9999      top_uvalue 0  11     noticebase     top_uvalue 1  11    0l      top_uvalue 0  12     extra     top_uvalue 1  12    ex   variables refering to different files we can read      top_uvalue 0  13     currentfile     top_uvalue 1  13    currentfile      top_uvalue 0  14     filelist     top_uvalue 1  14    filelist      top_uvalue 0  15     fileparameters     top_uvalue 1  15    fileparameters      top_uvalue 0  16     readparameters     top_uvalue 1  16    readparameters      top_uvalue 0  17     meshparameters     top_uvalue 1  17    meshparameters   variables refering to different drawing we can do      top_uvalue 0  18     penvs     top_uvalue 1  18    replicate p  nbredessin       top_uvalue 0  19     xenvs     top_uvalue 1  19    replicate x  nbredessin       top_uvalue 0  20     yenvs     top_uvalue 1  20    replicate y  nbredessin       top_uvalue 0  21     nameprocedures     top_uvalue 1  21    strarr nbredessin       top_uvalue 0  22     types     top_uvalue 1  22    strarr nbredessin       top_uvalue 0  23     varinfo     top_uvalue 1  23    strarr 2  nbredessin           top_uvalue 0  24     domaines     top_uvalue 1  24    fltarr 6  nbredessin       top_uvalue 0  25     dates     top_uvalue 1  25    lonarr 2  nbredessin       top_uvalue 0  26     txtcmd     top_uvalue 1  26    strarr nbredessin       top_uvalue 0  27     optionsflag     top_uvalue 1  27    flag      top_uvalue 0  28     exextra     top_uvalue 1  28    ptrarr nbredessin   allocate_heap        widget_control  base  set_uvalue   top_uvalue     createhistory  base  smallin     ENDELSE      xmanager   xxx  base   no_block        return end"); 
     375a[373] = new Array("./Utilities/createfunc.html", "createfunc.pro", "", "           file_comments   write an IDL function  compile it and execute it    useful to avoid the use of execute      param command  in required     a scalar string defining the result to be given back by the function      see examples       keyword FILENAMEIN  in   default for_createfunc pro    name of the function to be created       keyword KWDLIST  in     a vector string  to specify a list of keywords that must be included in the    function definition     Warning: the string must start with a      for example: KWDLIST     TOTO   toto       keyword _EXTRA    used to pass your keywords to the created function       restrictions     arguments can be given only through keywords      ends the function name with  pro  if needed       examples   IDL  print  createfunc 3 2  filename test    IDL  print  createfunc 3 two  filename    test      IDL                             kwdlist  two   two  two   2       history Sebastien Masson  smasson lodyc jussieu fr                         May 2005      version  Id: createfunc pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION createfunc  command  FILENAMEIN   filenamein                    KWDLIST   kwdlist  _EXTRA   ex     compile_opt idl2  hidden  strictarrsubs     IF n_elements command  NE 1 THEN stop   define filename if needed   if NOT keyword_set filenamein  then filename    for_createfunc pro      ELSE filename   filenamein   get the name of the function  not the name of the file containing the function     shortfilename    file_basename filename   pro    check if the directory exists    dirname   isadirectory file_dirname filename                                title    Redefine  shortfilename pro directory     IF size dirname   type  NE 7 THEN return   1      filename   dirname   shortfilename    pro    create the file    if NOT keyword_set kwdlist  then kwdlist        kwdlist   kwdlist     _EXTRA   ex     IF strmid kwdlist  0  1  NE   THEN kwdlist          kwdlist    putfile  filename   function     shortfilename   kwdlist                             compile_opt idl2  hidden  strictarrsubs                              res       command                             return  res                              end    go in dirname directory    cd  dirname  current   old_dir   compile it    resolve_routine  shortfilename   is_function    cd  old_dir   execute it    res   call_function shortfilename  _EXTRA   ex       return  res end"); 
     376a[374] = new Array("./Utilities/createpro.html", "createpro.pro", "", "           file_comments   write an idl procedure  compile it and execute it       param command  in required     a string array defining the procedure to be created     each element will be a line of the created procedure       keyword FILENAMEIN  in   default for_createpro pro    name of the procedure to be created       keyword KWDLIST  in     a vector string     to specify a list of keywords that must be included in the procedure    definition     Warning: the string must start with a      for example: KWDLIST     TOTO   toto       keyword KWDUSED    obsolete  please pass directly your keywords through _EXTRA      keyword _EXTRA    used to pass your keywords to the created procedure       restrictions     is not working with functions  use createfunc instead      arguments can be given only through keywords      ends the procedure name with  pro  if needed       examples   IDL  createpro   print OK  filename test    IDL  createpro   if keyword_set ok  then print OK  else print   No      IDL      filename    test  kwdlist   ok   ok    IDL  createpro   if keyword_set ok  then print OK  else print   No      IDL      filename    test  kwdlist     ok   ok   ok      history Sebastien Masson  smasson lodyc jussieu fr    cleaning   new keywords: October 2005   Feb  2006: supress keyword  kwdused  and use call_procedure instead of execute      version  Id: createpro pro 136 2006 07 10 15:20:19Z pinsard           PRO createpro  command  FILENAMEIN   filenamein                    KWDLIST   kwdlist  KWDUSED   kwdused  _EXTRA   ex     compile_opt idl2  hidden  strictarrsubs     IF keyword_set kwdused  THEN BEGIN     dummy   report keyword KWDUSED has been suppressed                           please pass directly your keywords through _extra                           see examples in createpro header      return   ENDIF   define filename if needed   if NOT keyword_set filenamein  then filename    for_createpro pro      ELSE filename   filenamein   get the name of the procedure  not the name of the file containing the procedure     shortfilename    file_basename filename   pro    check if the directory exists    dirname   isadirectory file_dirname filename                                title    Redefine  shortfilename pro directory     IF size dirname   type  NE 7 THEN return      filename   dirname   shortfilename    pro    create the file    if NOT keyword_set kwdlist  then kwdlist        kwdlist   kwdlist     _extra   ex     kwdlist   strtrim kwdlist  2     IF strmid kwdlist  0  1  NE   THEN kwdlist          kwdlist    for i   0  n_elements command 1 do print  command i     putfile  filename   pro     shortfilename   kwdlist                             compile_opt idl2  hidden  strictarrsubs  command   return   end    go in dirname directory    cd  dirname  current   old_dir   compile it    resolve_routine  shortfilename    cd  old_dir   execute it    call_procedure  shortfilename  _extra   ex      return end"); 
     377a[375] = new Array("./Utilities/def_myuniquetmpdir.html", "def_myuniquetmpdir.pro", "", "     file_comments   if needed  define and create myuniquetmpdir    common variable from cm_general  and add it to  path      categories utilities      examples   IDL  def_myuniquetmpdir      uses cm_general      history Sebastien Masson  smasson lodyc jussieu fr                         June 2005      version  Id: def_myuniquetmpdir pro 128 2006 07 06 14:32:02Z pinsard       PRO def_myuniquetmpdir     compile_opt idl2  strictarrsubs    cm_general    IF n_elements myuniquetmpdir  EQ 0 THEN BEGIN   define a new and unique directory in getenv IDL_TMPDIR  by using systime 1    look for the login if we use  unix  system     IF  d name EQ  X  THEN spawn   whoami  login   noshell ELSE login    idl      myuniquetmpdir   file_search getenv IDL_TMPDIR   mark_directory      myuniquetmpdir   myuniquetmpdir 0    login 0                            strtrim long systime 1  1        create it     file_mkdir  myuniquetmpdir   add it to  path      path    path   :    expand_path myuniquetmpdir    ENDIF      return end"); 
     378a[376] = new Array("./Utilities/demomode_compatibility.html", "demomode_compatibility.pro", "", "     categories utilities    uses cm_general    version  Id: demomode_compatibility pro 128 2006 07 06 14:32:02Z pinsard     PRO demomode_compatibility     compile_opt idl2  strictarrsubs       cm_general     1  remove all cm_demomode_used pro found in  path   to_rm   find cm_demomode_used    IF to_rm 0  NE  NOT FOUND  THEN file_delete  to_rm     2  copy oldcm_full _empty  to myuniquetmpdir oldcm_used pro    select which file should be copied to oldcm_used pro   IF lmgr demo  EQ 1 THEN BEGIN      democm   find cm_demomode       file_copy  democm  myuniquetmpdir    cm_demomode_used pro   overwrite   ENDIF ELSE BEGIN   create an empty file    close the journal if already open     IF  journal NE 0 THEN journal   open a new one     journal  myuniquetmpdir    cm_demomode_used pro    close it   it will be empty      journal   ENDELSE    return END"); 
     379a[377] = new Array("./Utilities/find.html", "find.pro", "", "           file_comments   based on file_search  but it is possible to specify   a set of possibles names and a different set of   possibles directories names    By default look for files included in  path     all file_search keywords can be used       categories find a file      param filein  in required     A scalar or array variable of string type  containing   file names to match  Input names specifications may contain   wildcard characters  enabling them to match multiple files    see file_search for more informations  By default and if   necessary  find is looking for filename and also for filename   completed with  pro       keyword FIRSTFOUND    activate this keyword to stop looking for the file as soon as we found one       keyword IODIRECTORY  default path     A scalar or array variable of string type  containing   directories names where we are looking for the file    Different directories can be separated by   path_sep search_path   :  on unix type machine  as it is done   to define  path    Note that if filename s dirname is different from   this   keyword is not taken into account       keyword LOOKALLDIR    activate to look for the file  with a recursive search if needed    in   iodir  homedir   path   the DATA:TestsData directory if it exists       keyword NOPRO    activate to avoid the automatic search of filename completed with  pro       keyword ONLYPRO    force to look only at file ending with  pro      keyword ONLYNC    force to look only at file ending with  nc      keyword RECURSIVE    performs recursive searching of directory hierarchies    In a recursive search  find looks recursively for any and all   subdirectories in the file hierarchy rooted at the IODIRECTORY argument       keyword REPERTOIRE    obsolete  keep for compatibility  use directory keyword      keyword UNIQUE    activate to make sure that each element of the output vector is unique       keyword TRYFIND    if the file was not found and this keyword is activated  find will call   itself with the keywords  LOOKALLDIR and  FIRSTFOUND to try to find   the file we are looking for  Note that if the file was found at the   first try this keyword as no effect  which is not the case with LOOKALLDIR        keyword _EXTRA    used to pass your keywords      returns    A scalar or array variable of string type  containing the   name  with the full path of the matching files  If no files   exist with names matching the input arguments  find returns   the scalar string :  NOT FOUND       examples     IDL  print  find loadct       usr local rsi idl_6 0 lib utilities xloadct pro      usr local rsi idl_6 0 lib loadct pro   IDL  print  find loadct  iodir dir recursive       usr local rsi idl_6 0 lib loadct pro      usr local rsi idl_6 0 lib utilities xloadct pro   IDL  print  find loadct pro       usr local rsi idl_6 0 lib utilities xloadct pro      usr local rsi idl_6 0 lib loadct pro   IDL  print  find loadct nopro      NOT FOUND   IDL  print  find loadct  iodir    usr local rsi idl_6 0 lib       usr local rsi idl_6 0 lib loadct pro   IDL  print  find loadct  iodir    usr local rsi idl_6 0 lib   test_write      NOT FOUND   IDL  print  find loadct  iodir    usr local rsi idl_6 0 lib   recursive       usr local rsi idl_6 0 lib loadct pro      usr local rsi idl_6 0 lib utilities xloadct pro   IDL  print  find mesh  iodirectory    iodir   path       Users sebastie DATA ORCA2 meshmaskORCA2closea nc      Users sebastie IDL meshmaskclosesea pro      Users sebastie IDL meshmaskclosesea pro       Users sebastie SAXO_RD Obsolete meshlec pro      usr local rsi idl_6 0 lib mesh_obj pro      history Sebastien Masson  smasson lodyc jussieu fr                          28 4 1999                         6 7 1999: compatibility mac and windows   June 2005: Sebastien Masson: cleaning  use for file_  functions      version  Id: find pro 152 2006 08 10 07:01:35Z smasson           FUNCTION find  filein  IODIRECTORY   iodirectory  RECURSIVE   recursive                    REPERTOIRE   repertoire  NOPRO   nopro  ONLYPRO   onlypro                    ONLYNC   onlync  UNIQUE   unique  FIRSTFOUND   firstfound                    LOOKALLDIR   LOOKALLDIR  TRYFIND   tryfind  _extra   ex   define where we look for the file     compile_opt idl2  strictarrsubs     CASE 1 OF     keyword_set lookalldir :BEGIN  cm_general       dirnames     iodir  homedir   path        tstdtadir  file_dirname find find   onlypro   mark_directory        tstdtadir    file_search tstdtadir DATA TestsData 0        IF tstdtadir NE   THEN dirnames    tstdtadir  dirnames      END     keyword_set iodirectory : dirnames   iodirectory     keyword_set repertoire : dirnames   repertoire     ELSE: dirnames      path    ENDCASE   tmp   dirnames   dirnames    dummy    FOR i   0  n_elements tmp 1 DO       dirnames    dirnames  strsplit tmp i  path_sep search_path   extract    dirnames   dirnames 1:      fileout    dummy    FOR i   0  n_elements filein 1 DO BEGIN     dir   file_dirname filein i      base   file_basename filein i    try to complete the file name with  pro or  nc if needed      CASE 1 OF       keyword_set onlypro :BEGIN         promiss   strpos base   pro   reverse_search          promiss   promiss    strlen base    4          bad   where promiss NE 0 OR strlen base  LE 4  cnt          IF cnt NE 0 THEN base bad    base bad     pro        end       keyword_set onlync :BEGIN         ncmiss   strpos base   nc   reverse_search          ncmiss   ncmiss    strlen base    3          bad   where ncmiss NE 0 OR strlen base  LE 3  cnt          IF cnt NE 0 THEN base bad    base bad     nc        END       ELSE:if strmid base  0  1   reverse_offset  NE             AND NOT keyword_set nopro  THEN base   base    pro      ENDCASE   use dirnames only if dir eq       IF dir EQ    THEN BEGIN       if keyword_set recursive  THEN           found   file_search dirnames  base  _extra   ex            ELSE found   file_search dirnames       base  _extra   ex      ENDIF ELSE found   file_search dir       base  _extra   ex      IF found 0  NE   THEN BEGIN       IF keyword_set firstfound  THEN BEGIN         IF keyword_set unique  THEN return  found uniq found  sort found            ELSE return  found       ENDIF       fileout    fileout  found      ENDIF   ENDFOR    IF n_elements fileout  EQ 1 THEN fileout    NOT FOUND      ELSE fileout   fileout 1:      IF n_elements fileout  GT 1 THEN BEGIN     IF keyword_set unique  THEN fileout   fileout uniq fileout  sort fileout    ENDIF ELSE fileout   fileout 0      IF keyword_set lookalldir  AND fileout 0  EQ  NOT FOUND         AND NOT keyword_set recursive  THEN           filout   find file_basename filein 0   lookalldir                            recursive  _extra   ex      IF keyword_set tryfind  AND fileout 0  EQ  NOT FOUND  THEN BEGIN     fileout   find file_basename filein 0   lookalldir   firstfound  _extra   ex      fileout   fileout 0    ENDIF     RETURN  fileout END"); 
     380a[378] = new Array("./Utilities/fitintobox.html", "fitintobox.pro", "", "             file_comments    Check that the input array has size and dimensions   compatible with the domain that was defined with the previous call   of domdef       categories domain compatibility       param sz  in required         param nx  in required       param ny  in required       param nz  in required       param jpi  in required       param jpj  in required       param jpk  in required        param jpt  in required       returns  1      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000             June 2005: S  Masson rewrite all       version  Id: fitintobox pro 136 2006 07 10 15:20:19Z pinsard        hidden           FUNCTION err_mess  sz  jpi  nx  jpj  ny  jpk  nz  jpt     compile_opt idl2  strictarrsubs     IF n_elements sz EQ 1  THEN       RETURN  report Error:                          the vector size     tostr sz      is incompatible                         with the the domain dimensions                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple    RETURN  report Error:                          the array dimensions     tostr sz      are incompatible                         with the the domain dimensions                                          jpi nx  jpj ny  jpk nz  jpt                            strtrim jpi  1        strtrim nx  1                              strtrim jpj  1        strtrim ny  1                              strtrim jpk  1        strtrim nz  1                              strtrim jpt  1       simple  END          categories domain compatibility      param field  in required  an array or a structure that can be read by the function                       litchamp pro       param nx  in optional default define by grille pro       param ny  in optional default define by grille pro       param nz  in optional default define by grille pro       param firstx  in optional default define by grille pro       param firsty  in optional default define by grille pro       param firstz  in optional default define by grille pro       param lastx  in optional default define by grille pro       param lasty  in optional default define by grille pro       param lastz  in optional default define by grille pro       keyword WDEPTH    To specify that we are at W level      returns    an array with dimensions matching the domain   or  1 if there is an error       uses cm_4mesh    uses cm_4cal      examples    IDL  help  fitintobox findgen jpi jpj        FLOAT       Array 41  3    IDL  help  fitintobox findgen jpi jpj 78    Error:    the array dimensions  180 148 78  are incompatible   with the the domain dimensions     jpi nx  jpj ny  jpk nz  jpt     180 41  148 3  31 31  1        INT                1      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000             June 2005: S  Masson rewrite all       version  Id: fitintobox pro 136 2006 07 10 15:20:19Z pinsard       FUNCTION fitintobox  field  nx  ny  nz  firstx  firsty                          firstz  lastx  lasty  lastz  WDEPTH   wdepth     include commons     compile_opt idl2  strictarrsubs    cm_4mesh  cm_4cal   IF NOT keyword_set key_forgetold  THEN BEGIN  updatenew   ENDIF     arr   litchamp field    IF n_params  EQ 1 THEN grille   1   1   1   1  nx  ny  nz         firstx  firsty  firstz  lastx  lasty  lastz  WDEPTH   wdepth       case according the number of dimensions of the array       sz   size arr    case sz 0  of       0:BEGIN                       scalar         return  report Error: scalar value       strtrim arr  1   simple      END       1:BEGIN                       1D arrays         CASE 1 OF   x arrays         sz 1  EQ jpi                                                   :arr    temporary arr firstx:lastx                                          sz 1  EQ  nx                                                   :                                                         y arrays         sz 1  EQ jpj                                                   :arr    temporary arr               firsty:lasty                            sz 1  EQ  ny                                                   :                                                         z arrays         sz 1  EQ jpk                                                   :arr    temporary arr                             firstz:lastz              sz 1  EQ  nz                                                   :                                                         t arrays         sz 1  EQ jpt                                                   :         ELSE:return  err_mess sz 1  jpi  nx  jpj  ny  jpk  nz  jpt         ENDCASE     END       2:BEGIN                       2D arrays         CASE 1 OF   xy arrays         sz 1  EQ jpi AND sz 2  EQ jpj                                  :arr    temporary arr firstx:lastx  firsty:lasty                            sz 1  EQ jpi AND sz 2  EQ  ny                                  :arr    temporary arr firstx:lastx                                         sz 1  EQ  nx AND sz 2  EQ jpj                                  :arr    temporary arr              firsty:lasty                           sz 1  EQ  nx AND sz 2  EQ  ny                                  :arr    temporary arr                                               x y z arrays         sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ jpk                 :arr    temporary arr firstx:lastx  firstz:lastz              sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ  nz                 :arr    temporary arr firstx:lastx                           sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ jpk                 :arr    temporary arr              firstz:lastz             sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ  nz                 :    x yz arrays         nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ jpk                 :arr    temporary arr               firsty:lasty  firstz:lastz              nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ  nz                 :arr    temporary arr               firsty:lasty                           nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ jpk                 :arr    temporary arr                            firstz:lastz             nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ  nz                 :   xt arrays         sz 1  EQ jpi                                   AND sz 2  EQ jpt:arr    temporary arr firstx:lastx                                         sz 1  EQ  nx                                   AND sz 2  EQ jpt:   yt arrays                          sz 1  EQ jpj                  AND sz 2  EQ jpt:arr    temporary arr               firsty:lasty                                           sz 1  EQ  ny                  AND sz 2  EQ jpt:   zt arrays                                           sz 1  EQ jpk AND sz 2  EQ jpt:arr    temporary arr                             firstz:lastz                                               sz 1  EQ  nz AND sz 2  EQ jpt:         ELSE:return  err_mess sz 1:2  jpi  nx  jpj  ny  jpk  nz  jpt        ENDCASE     END       3:BEGIN                       3D arrays         CASE 1 OF   xyz arrays         sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ jpk                 :arr    temporary arr firstx:lastx  firsty:lasty  firstz:lastz              sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ jpk                 :arr    temporary arr firstx:lastx               firstz:lastz             sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ jpk                 :arr    temporary arr              firsty:lasty  firstz:lastz             sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ jpk                 :arr    temporary arr                           firstz:lastz             sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ  nz                 :arr    temporary arr firstx:lastx  firsty:lasty                            sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ  nz                 :arr    temporary arr firstx:lastx                                        sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ  nz                 :arr    temporary arr              firsty:lasty                           sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ  nz                 :   xyt arrays         sz 1  EQ jpi AND sz 2  EQ jpj                  AND sz 3  EQ jpt:arr    temporary arr firstx:lastx  firsty:lasty                           sz 1  EQ jpi AND sz 2  EQ  ny                  AND sz 3  EQ jpt:arr    temporary arr firstx:lastx                                       sz 1  EQ  nx AND sz 2  EQ jpj                  AND sz 3  EQ jpt:arr    temporary arr              firsty:lasty                          sz 1  EQ  nx AND sz 2  EQ  ny                  AND sz 3  EQ jpt:    x yzt arrays         nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr               firsty:lasty  firstz:lastz             nx EQ 1      AND sz 1  EQ jpj AND sz 2  EQ  nz AND sz 3  EQ jpt:arr    temporary arr               firsty:lasty                         nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr                            firstz:lastz            nx EQ 1      AND sz 1  EQ  ny AND sz 2  EQ  nz AND sz 3  EQ jpt:   x y zt arrays         sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr firstx:lastx                firstz:lastz             sz 1  EQ jpi AND ny EQ 1      AND sz 2  EQ  nz AND sz 3  EQ jpt:arr    temporary arr firstx:lastx                                       sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ jpk AND sz 3  EQ jpt:arr    temporary arr                            firstz:lastz            sz 1  EQ  nx AND ny EQ 1      AND sz 2  EQ  nz AND sz 3  EQ jpt:         ELSE:return  err_mess sz 1:3  jpi  nx  jpj  ny  jpk  nz  jpt        ENDCASE     END       4:BEGIN                       4D arrays         CASE 1 OF   xyzt arrays         sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr firstx:lastx  firsty:lasty  firstz:lastz             sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr firstx:lastx               firstz:lastz            sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr              firsty:lasty  firstz:lastz            sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ jpk AND sz 4  EQ jpt:arr    temporary arr                           firstz:lastz            sz 1  EQ jpi AND sz 2  EQ jpj AND sz 3  EQ  nz AND sz 4  EQ jpt:arr    temporary arr firstx:lastx  firsty:lasty                          sz 1  EQ jpi AND sz 2  EQ  ny AND sz 3  EQ  nz AND sz 4  EQ jpt:arr    temporary arr firstx:lastx                                      sz 1  EQ  nx AND sz 2  EQ jpj AND sz 3  EQ  nz AND sz 4  EQ jpt:arr    temporary arr              firsty:lasty                         sz 1  EQ  nx AND sz 2  EQ  ny AND sz 3  EQ  nz AND sz 4  EQ jpt:         ELSE:return  err_mess sz 1:4  jpi  nx  jpj  ny  jpk  nz  jpt        ENDCASE     END     ELSE:return  report Error: fitintobox is managing arrays with a maximum of 4 dimensions   simple    ENDCASE    return  arr end"); 
     381a[379] = new Array("./Utilities/isadirectory.html", "isadirectory.pro", "", "           file_comments   check if a directory exists and make sure that it ends   with the directory separator mark       categories io      param directoryin  in optional     a proposed directory  If neither dirname   input parameter of IODIRECTORY keyword are defined    the ask the user to choose a directory       keyword IODIRECTORY    a proposed directory      keyword TITLE    the title of the window      keyword _EXTRA    used to pass your keywords      file_comments    all dialog_pickfile keywords  like filter  can be used       returns    the directory name      examples     IDL  print   dir       usr local rsi idl_6 0   IDL  print  isadirectory dir        usr local rsi idl_6 0    IDL  print  isadirectory dir notgood       history Sebastien Masson  smasson lodyc jussieu fr                         June 28  2000   June 2005: Sebastien Masson: cleaning  use for file_  functions      version  Id: isadirectory pro 136 2006 07 10 15:20:19Z pinsard           FUNCTION isadirectory  directoryin  TITLE   title  IODIRECTORY   iodirectory  _extra   ex       compile_opt idl2  strictarrsubs     CASE 1 OF      size directoryin   type 0  EQ 7:directory   directoryin     keyword_set iodirectory :directory   iodirectory     ELSE:directory    directory that is not existing    ENDCASE   testfile   file_test directory   directory    if directory doesn t exist  we ask the user to provide a directory name   IF total testfile  NE n_elements directory  THEN BEGIN     IF NOT keyword_set title  THEN title    choose a directory      FOR i   0  n_elements directory 1 DO BEGIN       IF testfile i  EQ 0 THEN BEGIN         directory i    dialog_pickfile directory  title   title                                             must_exist  _extra   ex          if directory i  EQ   THEN RETURN  report check find directory canceled        ENDIF     ENDFOR   ENDIF     directory   file_search directory   mark_directory    IF n_elements directory  EQ 1 THEN RETURN  directory 0      ELSE RETURN  directory   END"); 
     382a[380] = new Array("./Utilities/isafile.html", "isafile.pro", "", "           file_comments   same as find pro except that as long as the file is  NOT FOUND    isafile calls dialog_pickfile  to ask the user to select a file       categories io      param filein  in optional     a proposed name  If neither filein input parameter of filename keyword are    defined  the ask the user to choose a file       keyword FILENAME    a proposed filename       keyword IODIRECTORY    a directory where we look for the file  this   keyword is taken into account only if the dirname   of filein or filename is        keyword NEW    to specify that filename is a new file and that we should check only its    path      keyword ONLYPRO    force to look only at file ending with  pro      keyword ONLYNC    force to look only at file ending with  nc      keyword RECURSIVE    performs recursive searching of directory hierarchies    In a recursive search  find looks recursively for any and all   subdirectories in the file hierarchy rooted at the IODIRECTORY argument       keyword _EXTRA    used to pass your keywords      file_comments    all find  file_search and dialog_pickfile keywords  like title  can be used      returns    the filename with its path      examples     IDL  print  isafile Users sebastie SAXO_RD Commons cm_4mesh pro      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir    Users sebastie SAXO_RD Commons      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir    path      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir    Users sebastie SAXO_RD   recursive      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile cm_4mesh pro  iodir   getenv HOME   recursive      Users sebastie SAXO_RD Commons cm_4mesh pro   IDL  print  isafile fake_file pro       history Sebastien Masson  smasson lodyc jussieu fr                         11 2 2000   June 2005: Sebastien Masson: cleaning  use for file_  functions      version  Id: isafile pro 136 2006 07 10 15:20:19Z pinsard           FUNCTION isafile  filein  FILENAME   filename  IODIRECTORY   iodirectory                       NEW   new  RECURSIVE   RECURSIVE  ONLYPRO   onlypro                       ONLYNC   onlync  _extra   ex       compile_opt idl2  strictarrsubs     CASE 1 OF      size filein   type 0  EQ 7:fileout   filein     keyword_set filename :fileout   filename 0      ELSE:fileout    file that is not existing    ENDCASE   if size fileout   type  NE 7 THEN return   1     CASE 1 OF     keyword_set onlypro : filter    pro      keyword_set onlync : filter    nc      else: filter       ENDCASE     basename   file_basename fileout    dirname   file_dirname fileout    should we redefine dirname    if keyword_set iodirectory  AND dirname EQ   then dirname   iodirectory     if keyword_set new  then return  dirname   path_sep    basename     fileout   find basename  iodirectory   dirname                      recursive   recursive   unique   firstfound  ONLYPRO   onlypro                      ONLYNC   onlync  _extra   ex    WHILE fileout 0  EQ  NOT FOUND  DO BEGIN     fileout   dialog_pickfile path   dirname 0  filter   filter  _extra   ex      if fileout EQ   THEN RETURN  report check find file canceled    check again everything      basename   file_basename fileout      dirname   file_dirname fileout    check if the name of the dirname is ok     dirname   isadirectory dirname  title    choose a directory for the file                                  basename    if we cancel the check     IF size dirname   type  NE 7 THEN return  report check find file canceled      fileout   find basename  iodirectory   dirname                        recursive   recursive   unique   firstfound  ONLYPRO   onlypro                        ONLYNC   onlync  _extra   ex    ENDWHILE     RETURN  fileout END"); 
     383a[381] = new Array("./Utilities/linearequation.html", "linearequation.pro", "", "             file_comments    Calculate a linear equation of the type ax by c 0   thanks to coordinates of 2 points    comment: we can have a table with pairs of points       categories utilities       param point1  in required     This is the first point of the  straight line s  whose we want to calculate    equation s       param point2  in required     This is the second point of the  straight line s  whose we want to calculate   equation s      There is 2 possibilities:        1  point is a complex or a table of complex  where each element is the coordinates of the point         2  point is a table of real of dimension 2 number_of_straight_line            For each row of the table  we have coordinates of the point       returns    abc is a table of dimension 3  number_of_straight_line     where for each line of the table we obtain the 3 parameters   a  b and c of the linear equation ax by c 0      examples    IDL  abc linearequation complex 1 2 3 4    IDL  print  abc 0 1 abc 1 2 abc 2    0 00000      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000      version  Id: linearequation pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION linearequation  point1  point2     compile_opt idl2  strictarrsubs       if size point1   type  EQ 6 OR size point1   type  EQ 9 then begin       x1   float point1        y1   imaginary point1     ENDIF ELSE BEGIN       x1   float reform point1 0          y1   float reform point1 1       ENDELSE     if size point2   type  EQ 6 OR size point2   type  EQ 9 then begin       x2   float point2        y2   imaginary point2     ENDIF ELSE BEGIN       x2   float reform point2 0          y2   float reform point2 1       ENDELSE     vertical   where x1 EQ x2     novertical   where x1 NE x2     abc   fltarr 3  n_elements x1       IF novertical 0  NE  1 then BEGIN   y mx p       nele   n_elements novertical         m    y2 novertical y1 novertical x2 novertical x1 novertical        p    x2 novertical y1 novertical y2 novertical x1 novertical x2 novertical x1 novertical        abc  novertical     reform m  1  nele  replicate 1  1  nele  reform p  1  nele     ENDIF    IF vertical 0  NE  1 then BEGIN   x ny p       nele   n_elements vertical         n    x2 vertical x1 vertical y2 vertical y1 vertical        p    y2 vertical x1 vertical x2 vertical y1 vertical y2 vertical y1 vertical        abc  vertical     replicate 1  1  nele  reform n  1  nele  reform p  1  nele     ENDIF     return  abc end"); 
     384a[382] = new Array("./Utilities/lineintersection.html", "lineintersection.pro", "", "             file_comments    Calculate coordinates of the intersection between 2 straight lines    or of a succession of 2 straight lines       categories utilities       param abc1  in required     is the first table of dimension 3  number_of_pairs_of_straight_lines     whose each line contain the 3 parameters a b and c of the first linear    equation of the type ax by c 0      param abc2  in required     is second table of dimension 3  number_of_pairs_of_straight_lines     whose each line contain the 3 parameters a b and c of the second linear    equation of the type ax by c 0      keyword FLOAT    To return the output as a table of real numbers instead of vectors of    complex  by default       returns    2 possibilities:        1  by default: it is a vector of complex whose each element is the coordinates                        of the intersection point of a pair of straight lines         2  if FLOAT is activated  it is a table of reals of dimension 2             number_of_pairs_of_straight_lines whose each row is the coordinates            of the intersection point of a pair of straight line       restrictions    If the 2 straight line are parallel  we return coordinates     values f_nan values f_nan       restrictions    Beware of the precision of the machine which make    that calculated coordinates may not exactly verify    equations of the pair of straight lines       examples    IDL  abc1 linearequation complex 1 2 3 4    IDL  abc2 linearequation complex 1 2 8 15    IDL  print  lineintersection abc1  abc2           1 00000       2 00000    IDL  print  lineintersection abc1  abc2 float    1 00000      2 00000      history Sebastien Masson  smasson lodyc jussieu fr             10 juin 2000      version  Id: lineintersection pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION lineintersection  abc1  abc2  FLOAT   float       compile_opt idl2  strictarrsubs      a1   float reform abc1 0       b1   float reform abc1 1       c1   float reform abc1 2       a2   float reform abc2 0       b2   float reform abc2 1       c2   float reform abc2 2         determinant   a1 b2 a2 b1    nan   where determinant EQ 0     if nan 0  NE  1 THEN determinant    values f_nan      x    b1 c2 c1 b2 determinant    y    c1 a2 a1 c2 determinant      if keyword_set float  then begin       npts   n_elements x         res    reform x  1  npts   over  reform y  1  npts   over     ENDIF ELSE res   complex x  y     return  res end"); 
     385a[383] = new Array("./Utilities/protype.html", "protype.pro", "", "           file_comments   test is a  pro  file corresponds to an IDL procedure  function or batch file       categories utilities      param file  in     A scalar of string type  the name of the  pro  file to be tested   if necessary  the input name is completed with  pro    and its path found in  path      returns    A scalar of string type:  proc   func  or  batch       examples     IDL  print  protype protype         func   IDL  print  protype protype pro         func   IDL  print  protype init         batch   IDL  print  protype plt         proc      history Sebastien Masson  smasson lodyc jussieu fr                          Feb 2006      version  Id: protype pro 136 2006 07 10 15:20:19Z pinsard           FUNCTION protype  file       compile_opt idl2  strictarrsubs     filepro    find file 0   onlypro   firstfound 0    if filepro EQ  NOT FOUND  then return   1   name   file_basename filepro   pro      allines   getfile filepro    CASE 1 OF   this is a procedure     max stregex allines     pro     name   fold_case   boolean :RETURN   proc    this is a function     max stregex allines     function     name   fold_case   boolean :RETURN   func    this is an IDL batch file     ELSE:RETURN   batch    ENDCASE     RETURN   1 END"); 
     386a[384] = new Array("./Utilities/pwd.html", "pwd.pro", "", "             file_comments    print the current directory      categories like unix function       history Sebastien Masson  smasson lodyc jussieu fr       version  Id: pwd pro 136 2006 07 10 15:20:19Z pinsard             PRO pwd     compile_opt idl2  strictarrsubs      cd  current   pwd    print  pwd    return end"); 
     387a[385] = new Array("./Utilities/report.html", "report.pro", "", "             file_comments    Like dialog_message pro if there is already some widget    active or like message pro if there is not any widget active     To ask a question whose answer is not yes no use xquestion       param text  in required     one string or one vector of string  Si le string ne   comporte qu un element  on cherche les eventuels characteres de   retour a la ligne:  C  If text is set to an array of strings  each   array element is displayed as a separate line of text       keyword SIMPLE    activate to print only the message without the name   and the line of the routine  defined by calling routine_name       keyword _extra    used to pass keywords from dialog_message pro and message pro      keyword PARENT    same as DIALOG_PARENT de dialog_message pro      keyword QUESTION  default Warning    Set this keyword to create a  Question  dialog       keyword DEFAULT_NO  default Yes    Set this keyword to make the  No  button the default selection for     Question  dialog        keyword SIMPLE    Activate to print the error message without printing  the routine name with    its full path       returns     1 if the keyword QUESTION is not activated   If the keyword is activated  return 1 for yes and 0 for no        examples    If there is not any widget activated:     IDL  help  report toto tata       MAIN : toto tata       INT                1   IDL  help  report does it works  question    does it works   y n  default answer is y        BYTE           1   IDL  help  report question1:  C does it works  question    question1:   does it works   y n  default answer is y        BYTE           1     If widgets are already activated  it is the same thing but with widgets       history Sebastien Masson  smasson lodyc jussieu fr                         21 10 1999      version  Id: report pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION report  text  DEFAULT_NO   default_no  PARENT   parent  QUESTION   question  SIMPLE   simple  _extra   ex     compile_opt idl2  strictarrsubs     res    1                          we separate the text in different lines  separated by  C  if it is not already done     if n_elements text  EQ 1 then text   str_sep text   C   trim    there is some widgets activated  it is easy  we call dialog_massage    if  widget_info managed 0  NE 0 then BEGIN       res   dialog_message text  dialog_parent   parent  QUESTION   question                                title   routine_name 1  DEFAULT_NO   default_no  _extra   ex        if keyword_set question  THEN res   res EQ  Yes  ELSE res    1    ENDIF ELSE BEGIN   there is not any widget activated   do we ask a question         if keyword_set question  then BEGIN   what i sthe answer by default            if keyword_set default_no  then answer    n  ELSE answer    y           default_answer   answer          if n_elements text  GT 1 THEN             for i   0  n_elements text 2 do print text i            read  text n_elements text 1  y n  default answer is  default_answer    answer          answer   strlowcase answer      if the answer is not appropriated          while answer NE   and answer NE  y  and answer NE  n  do begin             read  text n_elements text 1  y n  default answer is  default_answer    answer             answer   strlowcase answer           ENDWHILE                   we adjust res in function of th answer          case answer of              :res   default_answer EQ  y               y :res   1              n :res   0          endcase       endif ELSE BEGIN   If we do not ask any question  we just make a print         IF keyword_set simple  THEN prefix     ELSE prefix      routine_name 1 :            if n_elements text  GT 1 THEN             for i   0  n_elements text 2 do print  prefix text i            print  prefix text n_elements text 1        ENDELSE    ENDELSE     return   res end"); 
     388a[386] = new Array("./Utilities/routine_name.html", "routine_name.pro", "", "             file_comments   Give us the name of the routine  procedure or function  where we are       categories utilities      param pilingnum  in optional    A whole number which give us how many level we have to reascend   in the piling up of routines and subroutines to find the looked for routine         returns   a string giving either the full name of the routine  with the path  or    MAIN       restrictions   This function use the keyword OUTPUT in help pro and it is specified   in the online help that the return syntax of this word can change in   function of the version of the code  This version works with IDL 5 2       examples   IDL  print  routine_name      usr1 com smasson IDL_RD UTILITAIRE report pro    IDL  print  routine_name 1      usr1 com smasson IDL_RD PLOTS DIVERS determineminmax pro    IDL  print  routine_name 2      usr1 com smasson IDL_RD PLOTS DESSINE plt pro    IDL  print  routine_name 3      MAIN     IDL  print  routine_name 4      MAIN       history Sebastien Masson  smasson lodyc jussieu fr                         21 10 1999      version  Id: routine_name pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION routine_name   pilingnum       compile_opt idl2  strictarrsubs     help    traceback  output   name   name   strtrim name  1          we remove blanks at the beginning of lines and                                 we put elements of the vector stuck ones with                                 each others to make an unique string    allnames       for i   0  n_elements name 1 do allnames   allnames name i      name   str_sep allnames      we cut it out again    name   strtrim name  2        we remouve blanks in front of and behind   name   strcompress name         we compress blanks   we do not hold back the two first elements who are a blanck  and the line concerning   routine_name    name   name 2: n_elements name 1    we choose the line which concern us    if NOT keyword_set pilingnum  then pilingnum   0   if pilingnum GE n_elements name  then return    MAIN    name   name pilingnum    if strpos name   MAIN  NE  1 then return    MAIN    name   str_sep name        if n_elements name  LT 3  then name   name 0  ELSE name    L name 1   name 2      return  name end"); 
     389a[387] = new Array("./Utilities/testvar.html", "testvar.pro", "", "             file_comments    A kind of keyword_set but when the value exist  it send it back      categories utlities      keyword var    any kind of      returns    0 if the variable does not exist       examples    IDL  print  testvar var toto    0   IDL  print  testvar var toto    toto      history Sebastien Masson  smasson lodyc jussieu fr                         14 12 1999      version  Id: testvar pro 136 2006 07 10 15:20:19Z pinsard             FUNCTION testvar  var   var     compile_opt idl2  strictarrsubs      if keyword_set var  then return  var ELSE return   0 end"); 
     390a[388] = new Array("./Utilities/text_box.html", "text_box.pro", "", "       file_comments    This procedure writes a short text message within a box shaped   area in a graphics window   The message may be split at word   boundaries into several lines  and the character size and   orientation may be adjusted for the text to fit within the box          param TEXT  in required     ASCII text string containing the message       keyword pos     4 element vector specifying the box position and size   pos 0 pos 1  specify the lower left corner coordinate   pos 2 pos 3  specify the upper right corner coordinate   data window normalized coordinates are use      keyword fg_color   color of box and legend titles  default 0       keyword bg_color    background color  Setting BG_COLOR erases the area                  covered by the text box  filling it with color BG_COLOR                  prior to writing the text   If both BG_COLOR and  p color                 are zero then the background color is reset to 255 to                 gaurantee a readability                      keyword right    if set  right justify text      keyword center    if set  center the text      keyword vert_space  default 1 5    vertical spacing of lines in units of character height      keyword _EXTRA    used to pass your keyword      keyword box    activate to show the box on graphics window       history  Paul Ricchiazzi                            7Jul93             Institute for Computational Earth System Science             University of California  Santa Barbara      version  Id: text_box pro 136 2006 07 10 15:20:19Z pinsard       PRO text_box text pos pos fg_color fg_color bg_color bg_color                 center center right right box box vert_space vert_space  _EXTRA   ex       compile_opt idl2  strictarrsubs           ON_ERROR  2      Check the number of parameters    justify 1 if keyword_set right  ne 0 then justify 1 if keyword_set center  ne 0 then justify 0 if keyword_set vert_space  eq 0 then vert_space  1 5 IF n_elements text  eq 0 then message   must specify text  nnx x window d x_vsize nny y window d y_vsize nnx 0  1 d x_vsize nny 0  1 d y_vsize   if n_elements pos  eq 0 then begin    box_cursor xx1 yy1 nx ny   xx2 xx1 nx   yy2 yy1 ny   pos xx1 nnx 0 nnx 1 nnx 0 yy1 nny 0 nny 1 nny 0          xx2 nnx 0 nnx 1 nnx 0 yy2 nny 0 nny 1 nny 0    posstring string form a 4 f5 2 a              pos pos 0 pos 1 pos 2 pos 3    print strcompress posstring remove_all       endif else begin      xx1   nnx 0 pos 0 nnx 1 nnx 0    xx2   nnx 0 pos 2 nnx 1 nnx 0    yy1   nny 0 pos 1 nny 1 nnx 0    yy2   nny 0 pos 3 nny 1 nnx 0   endelse      calculate the height and width of the box in characters      width     xx2   xx1     d x_ch_size   height    yy2   yy1     d y_ch_size      decompose the message into words      words   str_sep text      print f 20a words   nwords n_elements words    wordlen lenstr words d x_vsize   blanklen lenstr   d x_vsize   maxcharsize xx2 xx1 4 blanklen max wordlen    charsize 1     lpnt intarr nwords    nomore 0   ntries 0   repeat begin     ntries ntries 1     if ntries gt 20 then message Can not fit message into box      ychsiz vert_space d y_ch_size charsize     wlen wordlen charsize     blen blanklen charsize     n_lines fix yy2 yy1 ychsiz 1     sum 0     ilines 0     print f 8a8 charsz i ilines n_lines lpnt wlen sum xwdth      for i 0 nwords 1 do begin       sum sum wlen i blen       if sum 3 blen gt xx2 xx1 then begin         ilines ilines 1         sum wlen i blen       endif       lpnt i ilines                       print f f8 2 4i8 3f8 2 charsize i ilines n_lines lpnt i                    wlen i blen sum 3 blen xx2 xx1     endfor             case 1 of       ilines 1 lt n_lines: if charsize 1 1 gt maxcharsize then             vert_space yy2 yy1 n_lines 1 d y_ch_size charsize              else charsize charsize 1 1       ilines 1 eq n_lines: nomore 1       ilines 1 gt n_lines: charsize charsize 9     endcase endrep until nomore   lines strarr n_lines  maxlen 0  for i 0 n_lines 1 do begin   ii where lpnt eq i nc    maxlen total wlen ii nc blen maxlen   lines i string f 200a words ii      print i words ii    print i lines i  endfor      align 5 1 justify       case justify of      1:xx   xx1 5 xx2 xx1 maxlen       0:xx   0 5 xx1   xx2       1:xx   xx2 5 xx2 xx1 maxlen    endcase    dy d y_ch_size charsize vert_space   yy yy2 0 5 dy    xbox xx1 xx2 xx2 xx1 xx1    ybox yy1 yy1 yy2 yy2 yy1    if n_elements bg_color  ne 0 then begin     if  p color eq 0 and bg_color eq 0 then bgc 255 else bgc bg_color     polyfill xbox ybox color bgc device   endif    if n_elements fg_color  eq 0 then color   0 else color fg_color    for i_line   0 n_lines 1 do begin     yy   yy dy     print xx yy lines i_line charsize     xyouts  xx  yy  lines i_line   device  charsize charsize          alignment align  color color  font 1  _extra   ex   endfor   if keyword_set box  then plots xbox ybox color color device   return end "); 
     391a[389] = new Array("./Utilities/undefine.html", "undefine.pro", "", "             file_comments    erase a variable   same thing that delvar but usable in a program and usable    for one variable simultaneously      categories utilities         param varname  in required     The name of the variable we want erase      examples   IDL  a 1   IDL  undefine a     Compiled module: UNDEFINE    IDL  help  a   A               UNDEFINED         history trouve sur la page web de D Fanning    http: www dfanning com :  QUESTION: How do I make an IDL variable have a type  undefined    ANSWER: At the main IDL level you can use the IDL procedure DELVAR to  delete an IDL variable and make it undefined  Inside of procedures  and functions  I use this little program named UNDEFINE that I got  from Andrew Cool at the DSTO High Frequency Radar Division in  Adelaide  Australia       version  Id: undefine pro 136 2006 07 10 15:20:19Z pinsard                PRO UNDEFINE  varname       compile_opt idl2  strictarrsubs      tempvar   SIZE TEMPORARY varname     END "); 
     392a[390] = new Array("./Utilities/xfile.html", "xfile.pro", "", "             file_comments    display in a widget an ASCII file    It is the same thing that xdisplayfile but here  we use it    to display the content of a procedure or of a function     even if it is not in the current directory  thanks to the path       categories utilities      param filename  in required     It is the name of the procedure or of the function    we want to display  with or without  pro at the end       keyword _extra    used to pass your keywords      examples xfile plt       history Sebastien Masson  smasson lodyc jussieu fr                          7 1 99                         6 7 1999: compatibility mac and windows      version  Id: xfile pro 136 2006 07 10 15:20:19Z pinsard             PRO xfile  filename  _extra   ex     compile_opt idl2  strictarrsubs   pfile   strlowcase filename      we have to find the full name        if strpos pfile pro  lt 0 then pfile pfile pro      thisOS   strupcase strmid version os_family  0  3     CASE thisOS of        MAC :BEGIN   sep    :    pathsep       end        WIN :BEGIN   sep       pathsep       end       ELSE: BEGIN   sep       pathsep    :    end    ENDCASE    cd  current   current    if strpos pfile sep  lt 0 then BEGIN       if rstrpos current sep  NE strlen current 1 then current   current sep       multipath   str_sep path pathsep        if rstrpos multipath 0 sep  NE strlen multipath 0 1 then multipath   multipath  sep       pfile    current  multipath  pfile    ENDIF    i   0    repeat begin       res   findfile pfile i         i   i 1    endrep until res 0  NE   OR i EQ n_elements pfile      if res 0  NE    then BEGIN   we open the file in a widget    xdisplayfile  pfile i 1  _extra   ex    ENDIF ELSE ras   report le fichier demande n existe pas         return end"); 
     393a[391] = new Array("./Utilities/xhelp.html", "xhelp.pro", "", "       file_comments    Display an IDL procedure header using widgets and the widget manager       categories Widgets       param Filename  in required     A scalar string that contains the filename of the file to display      If FILENAME does not include a complete path specification  xhelp will    search for the file in the current working directory and then each of the   directories listed in  PATH environment variable   The    pro  file suffix will be appended if it is not supplied       keyword _extra    used to pass your keywords      restrictions    Triggers the XMANAGER if it is not already in use       examples    Open a file and create a widget to display its contents       history Written By Steve Richards  December 1990  Graceful error recovery  DMS  Feb  1992          Modified to extract  pro documentation headers  PJR ESRG mar94         Paul Ricchiazzi                            jun93         Institute for Computational Earth System Science         University of California  Santa Barbara    7 1 99 : legeres mofification par Sebastien Masson : utilisation de    xdisplayfile  de findfile et de _extra     6 7 1999: compatibility mac and windows      version  Id: xhelp pro 141 2006 07 21 09:17:25Z theetten       PRO xhelp  filename  _extra ex     compile_opt idl2  strictarrsubs      Are we sure filename is a string     cquoidonc   size filename   type     if cquoidonc NE 7 then begin       ras   report Input parameter must be a string and not a  size filename   tname        return    endif   We have to find the full name     pfile FILENAME    if strpos pfile pro  lt 0 then pfile pfile pro      thisOS   strupcase strmid version os_family  0  3     CASE thisOS of        MAC :BEGIN   sep    :    pathsep       end        WIN :BEGIN   sep       pathsep       end       ELSE: BEGIN   sep       pathsep    :    end    ENDCASE    cd  current   current    if strpos pfile sep  lt 0 then BEGIN       if rstrpos current sep  NE strlen current 1 then current   current sep       multipath   str_sep path pathsep        if rstrpos multipath 0 sep  NE strlen multipath 0 1 then multipath   multipath  sep       pfile    current  multipath  pfile    ENDIF   We test each possible name to find where the file is     nfile n_elements pfile     n   0    repeat begin       res   findfile pfile n         n   n 1    endrep until res 0  NE   OR n EQ n_elements pfile      if res 0  NE   then BEGIN       openr  unit pfile n 1   get_lun   opening of the file   we select the heading piece            a   strarr 1000            Maximum   of lines       xsize 0       i   0       c           readon 0       while not eof unit  do begin          readf unit c          if strpos c  eq 0 then readon 0          if readon then BEGIN             dum where byte c  eq 9b ntab    count tab characters             xsize xsize    strlen c 8 ntab              a i    strmid c 1 200              i   i   1          endif          if strpos c  eq 0 then readon 1       endwhile       if i EQ 0 then            ras   report le programme a etait mal ecrit  il n y a pas d en tete  utiliser xfile pro  ELSE BEGIN           a   a 0:i 1    we wrote the a s content in a widget          xdisplayfile toto text   a title pfile n 1  _extra   ex       ENDELSE        FREE_LUN  unit          free the file unit     ENDIF ELSE ras   report le fichier demande n existe pas      return end "); 
     394a[392] = new Array("./buildinit.html", "buildinit.pro", "", "    NAME:         PURPOSE:         CATEGORY:         CALLING SEQUENCE:         INPUTS:         OPTIONAL INPUTS:         KEYWORD PARAMETERS:         OUTPUTS:         OPTIONAL OUTPUTS:         COMMON BLOCKS:         SIDE EFFECTS:         RESTRICTIONS:         PROCEDURE:         EXAMPLE:         MODIFICATION HISTORY:               slightly mofified version of cw_field  FUNCTION CW_FIELD2  Parent  COLUMN Column  ROW Row        EVENT_FUNC   efun        FLOATING Float  INTEGER Int  LONG Long  STRING String        FONT LabelFont  FRAME Frame  TITLE Title  UVALUE UValue  VALUE TextValueIn        RETURN_EVENTS ReturnEvents  ALL_EVENTS AllUpdates        FIELDFONT FieldFont  NOEDIT NoEdit  TEXT_FRAME Text_Frame        XSIZE XSize  YSIZE YSize  UNAME uname     FLOOR vmin  CEILING vmax      compile_opt idl2  strictarrsubs     resolve_routine   cw_field   compile_full_file   is_function         Examine our keyword list and set default values         for keywords that are not explicitly set       Column        KEYWORD_SET Column      Row           1   Column     AllEvents         1   KEYWORD_SET NoEdit         Enum Update   None  All  CRonly       Update        0     IF KEYWORD_SET AllUpdates  THEN Update    1     IF KEYWORD_SET ReturnEvents  THEN Update      2      IF N_ELEMENTS efun  LE 0 THEN efun         IF N_ELEMENTS Title  EQ 0 THEN Title Input Field:      TextValue    N_ELEMENTS TextValueIn  gt 0    TextValueIn :         Convert non string values to strings      if  SIZE TextValue   TNAME  ne  STRING  then           TextValue   STRTRIM TextValue 2      IF N_ELEMENTS YSize  EQ 0 THEN YSize 1     IF N_ELEMENTS uname  EQ 0 THEN uname CW_FIELD_UNAME       Type      0   string is default     IF KEYWORD_SET Float  THEN  Type      1     IF KEYWORD_SET Int  THEN    Type      2     IF KEYWORD_SET Long  THEN   Type      3          Don t allow multiline non string widgets     if  Type ne 0  then           YSize 1     YSize   YSize   1          Build Widget      Base      WIDGET_BASE Parent  ROW Row  COLUMN Column  UVALUE UValue                EVENT_FUNC CW_FIELD_EVENT                PRO_SET_VALUE CW_FIELD_SET                FUNC_GET_VALUE CW_FIELD_GET                FRAME Frame  UNAME uname       FOR i   0  n_elements title 1 DO         Label     WIDGET_LABEL Base  VALUE   Title i  FONT   LabelFont                                 UNAME   uname _LABEL   align_left      Text      WIDGET_TEXT Base  VALUE   TextValue                XSIZE XSize  YSIZE YSize  FONT FieldFont                ALL_EVENTS AllEvents                EDITABLE AllEvents AND TYPE EQ 0                FRAME Text_Frame                 UNAME uname _TEXT                 NO_ECHO AllEvents AND  TYPE NE 0         Save our internal state in the first child widget     State                 efun: efun                TextId:Text               Title:Title               Update:Update             Type:Type                   WIDGET_CONTROL  WIDGET_INFO Base   CHILD  SET_UVALUE State   NO_COPY     RETURN  Base   END         PRO printerdef_event  event   get back the ids of the cw_field widgets     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   cwids   IF size cwids   n_dimensions  EQ 1 THEN cwids   reform cwids  3  1  help  cwids   dims   size cwids   dimensions  help   dims print   dims   results   strarr dims    FOR i   0  dims 1 1 DO BEGIN     widget_control  cwids 0  i  get_value   res   results 0  i    res     widget_control  cwids 1  i  get_value   res   results 1  i    res     widget_control  cwids 2  i  get_value   res   results 2  i    res   ENDFOR   nothing   where results EQ   count    IF count NE 0 THEN BEGIN     nothing   dialog_message Some of the text box are still empty  dialog_parent   event top   information      return   ENDIF   now we give the result to buildinit pro by using the pointer uvalue    widget_control  event top  get_uvalue   ptresult     ptresult   temporary results    we destroy the widget    widget_control  event top   destroy   RETURN END         PRO papsize_event  event   get back the ids of the cw_field widgets     compile_opt idl2  strictarrsubs     widget_control  event id  get_uvalue   uvalue   IF uvalue 0  NE  ok  THEN return   idist   widget_info event top  find_by_uname    list    id   widget_info idist   list_select    widget_control  idist  get_uvalue   selected   selected   selected id    selected   strsplit selected   extract    now we give the result to buildinit pro by using the pointer uvalue    widget_control  event top  get_uvalue   ptresult     ptresult    float selected 3  float selected 4    we destroy the widget    widget_control  event top   destroy   RETURN END         PRO xask_event  event   now we give the answer to buildinit pro by using the pointer uvalue     compile_opt idl2  strictarrsubs      widget_control  event top  get_uvalue   ptranswer     ptranswer   event value   we destroy the widget    widget_control  event top   destroy   RETURN END         FUNCTION xask  _extra   ex     compile_opt idl2  strictarrsubs     base   widget_base     field   cw_field2 base   frame   return_events   column  _extra   ex     ptranswer   ptr_new allocate_heap    we realize the widget and wait for an answer   widget_control  base   realize  set_uvalue   ptranswer   xmanager   xask  base   we get the answer   answer    ptranswer   we freeing the pointer   ptr_free  ptranswer   RETURN  answer END         FUNCTION getdir  title   title  nomark   nomark  nowrite   nowrite     compile_opt idl2  strictarrsubs        REPEAT BEGIN     dir   dialog_pickfile directory   must_exist  title   title    make sure dir is ok  check read write access and directory separator mark     dir   file_search dir   test_directory   test_read                           test_write   1   keyword_set nowrite                            mark_directory   1   keyword_set nomark      dir   dir 0    ENDREP UNTIL dir NE      RETURN  dir END         PRO buildinit       compile_opt idl2  strictarrsubs     IF fix strmid version release  0  1  LT 6 THEN BEGIN      print                                print                        ERROR       print                                print   This version of SAXO needs at least IDL version 6 0      print                                print                        ERROR       print                                return   ENDIF   IF lmgr demo  EQ 1 THEN BEGIN     print   impossible to use buildinit in demo mode      return   ENDIF     init                     This is the initialisation file                  it defines the  path and the defaut values of some of the common variables                                  this is supposed to speed up IDL                                  a   fltarr 1000 1000 100                  a   0                                  path definition                      define  myIDL  directory   myIDL   getdir title    Select the home directory  my IDL   nomark    define  SAXO  directory   saxodir   getdir title    Select SAXO directory   nomark   nowrite    define the  path   init    init   path   expand_path     myIDL                            :    expand_path     saxodir                            :    expand_path     dir      should we keep the compatibility with the old version      yes   dialog_message shall we keep the compatibility                               with the old version    question   default_no    yes   strlowcase yes       init    init                                 compatibility with the old version                                 keep_compatibility      strtrim fix yes EQ  yes  2       define all the commons     init    init                                 define all the commons                                 all_cm      define default directories     init    init                                 define default directories                                 homedir   isadirectory myIDL  title    Select the default HOME directory    iodir   getdir title    Select the default IO directory    init    init                iodir   isadirectory iodir  title    Select the default IO directory    psdir   getdir title    Select the default postscripts directory    init    init                psdir   isadirectory psdir  title    Select the default postscripts directory    imagedir   getdir title    Select the default images directory    init    init                imagedir   isadirectory imagedir  title    Select the default images directory    animdir   getdir title    Select the default animations directory    init    init                animdir   isadirectory animdir  title    Select the default animations directory      number of printer     ptnumb   xask title    Number of accessible printers  value   0   long      define all the printer parameters      init    init                                 define printer parameters                        IF ptnumb NE 0 THEN BEGIN     base   widget_base column   frame       cwids   lonarr 3  ptnumb      FOR i   0  ptnumb 1 DO BEGIN       subbase   widget_base base   row        cwids 0  i    cw_field subbase   string                                  Title    printer_human_names strtrim i  2             cwids 1  i    cw_field subbase   string                                  Title    printer_machine_names strtrim i  2             cwids 2  i    cw_field subbase   string  value    lpr  P                                   Title    print_command strtrim i  2           ENDFOR     trash   widget_button base  value    ok  uvalue   cwids      ptresult   ptr_new allocate_heap    we realize the widget and wait for an answer     widget_control  base   realize  set_uvalue   ptresult     xmanager   printerdef  base       init    init                  printer_human_names   strarr strtrim ptnumb  2                   printer_machine_names   strarr strtrim ptnumb  2                   print_command   strarr strtrim ptnumb  2      FOR i   0  ptnumb 1 DO BEGIN       init    init                    printer_human_names strtrim i  2                         ptresult 0  i                     printer_machine_names strtrim i  2                         ptresult 1  i                     print_command strtrim i  2                         ptresult 2  i      ENDFOR   we freeing the pointer     ptr_free  ptresult   ENDIF ELSE BEGIN     init    init                  printer_human_names                      printer_machine_names                      print_command       ENDELSE      Colors     init    init                                 colors                                  device  decomposed   0                 device  retain   2      default color tables     loadct  get_names   names    ntables   40   title                                                                      Choose the default color table                                                                        the following lines come from loadct procedure    nlines    ntables   2    3  of lines to print   nend   nlines    nlines 3    ntables    for i   0  nend 1 do           Print each line     title    title                  string format    i2   a17  3x  i2   a17  3x  i2   a17                            i  names i  i nlines  names i nlines                            i 2 nlines  xask title   title  value   39   long   xask title   title  value   0   long    2   init    init                archive_ps    strtrim archive_ps  2                                                  end of the part that should be modified by the users                                                  if needed  keep compatibility with the old version                                 updateold                       filename   xask title    name of the init file   written in homedir:     myIDL     value    init pro   string    journal  myIDL       filename   FOR i   0  n_elements init 1 DO journal  init i    journal    RETURN END"); 
    394395 
    395396 
  • trunk/SRC/Matrix/.idlwave_catalog

    r138 r153  
    1111   ("cmset_op_uniq" fun nil (lib "cmset_op.pro" nil "saxo") "Result = %s(a)" (nil)) 
    1212   ("cmset_op" fun nil (lib "cmset_op.pro" nil "saxo") "Result = %s(a, op0, b)" (nil ("count") ("empty1") ("empty2") ("index") ("maxarray") ("not1") ("not2"))) 
    13    ("congridseb" fun nil (lib "congridseb.pro" nil "saxo") "Result = %s(tableau, x, y)" (nil)) 
    1413   ("different" fun nil (lib "different.pro" nil "saxo") "Result = %s(a, b)" (nil)) 
    1514   ("extrac2" fun nil (lib "extrac2.pro" nil "saxo") "Result = %s(array, index1, index2, index3, index4)" (nil)) 
  • trunk/SRC/Obsolete/.idlwave_catalog

    r138 r153  
    66(setq idlwave-library-catalog-libname "saxo") 
    77(setq idlwave-library-catalog-routines 
    8  '(("cp" pro nil (lib "cp.pro" nil "saxo") "%s, filenamein, filenameout" (nil ("_extra"))) 
     8 '(("congridseb" fun nil (lib "congridseb.pro" nil "saxo") "Result = %s(tableau, x, y)" (nil)) 
     9   ("cp" pro nil (lib "cp.pro" nil "saxo") "%s, filenamein, filenameout" (nil ("_extra"))) 
    910   ("extrait" fun nil (lib "extrait.pro" nil "saxo") "Result = %s(tab, indicex, indicey, indicez, indicet)" (nil)) 
    1011   ("ficdate" fun nil (lib "ficdate.pro" nil "saxo") "Result = %s(vdate, dim, nomexp)" (nil)) 
  • trunk/SRC/ToBeReviewed/PLOTS/DESSINE/.idlwave_catalog

    r151 r153  
    1212   ("pltsc" pro nil (lib "pltsc.pro" nil "saxo") "%s, tab1, tab2, min1, max1, min2, max2, varname2" (nil ("_extra") ("BOXZOOM") ("COL1D") ("OV1D") ("STY1D"))) 
    1313   ("pltt" pro nil (lib "pltt.pro" nil "saxo") "%s, tab, giventype, givenmin, givenmax, datmin, datmax" (nil ("_extra") ("BOXZOOM") ("COL1D") ("CONTINTERVALLE") ("CONTLABEL") ("CONTMAX") ("CONTMIN") ("CONTNLEVEL") ("CONTOUR") ("ENDPOINTS") ("EXCHANGE_XY") ("FILTER") ("INTERVALLE") ("INV") ("LABEL") ("MAXIN") ("MININ") ("NLEVEL") ("OV1D") ("OVERPLOT") ("REPEAT_C") ("STRICTFILL") ("STY1D") ("STYLE") ("TREND_TYPE") ("TT") ("TYPEIN") ("XT") ("YT") ("ZT"))) 
     14   ("pltv" pro nil (lib "pltv.pro" nil "saxo") "%s, data, min, max" (nil ("_EXTRA") ("BOTTOM") ("BOXZOOM") ("C_MASK") ("C_NAN") ("MASKVAL") ("MAXIN") ("MININ") ("NCOLORS") ("NOINTERP"))) 
    1415   ("pltz" pro nil (lib "pltz.pro" nil "saxo") "%s, tab, giventype, givenmin, givenmax" (nil ("_EXTRA") ("BOXZOOM") ("CONTINTERVALLE") ("CONTLABEL") ("CONTMAX") ("CONTMIN") ("CONTNLEVEL") ("CONTOUR") ("ENDPOINTS") ("FILLXDIR") ("INTERVALLE") ("INV") ("LABEL") ("MASKFILL") ("MAXIN") ("MININ") ("NLEVEL") ("NOTRI") ("OVERPLOT") ("REALSECTION") ("SIN") ("STRICTFILL") ("STYLE") ("TYPEIN") ("USETRI") ("WDEPTH") ("XZ") ("YZ") ("ZOOM") ("ZRATIO"))) 
    1516   ("sbar_plot" pro nil (lib "sbar_plot.pro" nil "saxo") "%s, Values" (nil ("_extra") ("COLORS") ("NOREINITPLT"))) 
  • trunk/SRC/ToBeReviewed/PLOTS/DIVERS/.idlwave_catalog

    r76 r153  
    99   ("autoscale" pro nil (lib "autoscale.pro" nil "saxo") "%s, min, max, ci" (nil)) 
    1010   ("axis4pltz" pro nil (lib "axis4pltz.pro" nil "saxo") "%s, type, mask, glam, gphi, z" (nil ("_extra") ("PROFMAX") ("PROFMIN") ("SIN") ("XXAXIS") ("ZOOM") ("ZRATIO") ("ZZAXIS"))) 
    11    ("barrecouleur" pro nil (lib "barrecouleur.pro" nil "saxo") "%s, colnumb, clbinf, clbsup, clbdiv" (nil ("_extra") ("CB_SUBTITLE") ("CB_TITLE") ("COLOR_c") ("divisions") ("max") ("min") ("NOCOLORBAR") ("NOFILL") ("POST"))) 
     11   ("barrecouleur" pro nil (lib "barrecouleur.pro" nil "saxo") "%s, colnumb, clbinf, clbsup, clbdiv" (nil ("_extra") ("CB_SUBTITLE") ("CB_TITLE") ("COLOR_c") ("divisions") ("MAX") ("MIN") ("NOCOLORBAR") ("NOFILL") ("POST"))) 
    1212   ("err_1d" fun nil (lib "checkfield.pro" nil "saxo") "Result = %s(type, n1, name, n2)" (nil)) 
    1313   ("err_2d" fun nil (lib "checkfield.pro" nil "saxo") "Result = %s(type, sz, nx, ny, nz)" (nil)) 
  • trunk/SRC/Utilities/.idlwave_catalog

    r138 r153  
    1010   ("def_myuniquetmpdir" pro nil (lib "def_myuniquetmpdir.pro" nil "saxo") "%s" (nil)) 
    1111   ("demomode_compatibility" pro nil (lib "demomode_compatibility.pro" nil "saxo") "%s" (nil)) 
    12    ("find" fun nil (lib "find.pro" nil "saxo") "Result = %s(filein)" (nil ("_extra") ("FIRSTFOUND") ("IODIRECTORY") ("LOOKALLDIR") ("NOPRO") ("ONLYNC") ("ONLYPRO") ("RECURSIVE") ("REPERTOIRE") ("UNIQUE"))) 
     12   ("find" fun nil (lib "find.pro" nil "saxo") "Result = %s(filein)" (nil ("_extra") ("FIRSTFOUND") ("IODIRECTORY") ("LOOKALLDIR") ("NOPRO") ("ONLYNC") ("ONLYPRO") ("RECURSIVE") ("REPERTOIRE") ("TRYFIND") ("UNIQUE"))) 
    1313   ("err_mess" fun nil (lib "fitintobox.pro" nil "saxo") "Result = %s(sz, jpi, nx, jpj, ny, jpk, nz, jpt)" (nil)) 
    1414   ("fitintobox" fun nil (lib "fitintobox.pro" nil "saxo") "Result = %s(field, nx, ny, nz, firstx, firsty, firstz, lastx, lasty, lastz)" (nil ("WDEPTH"))) 
Note: See TracChangeset for help on using the changeset viewer.