- Timestamp:
- 07/29/08 15:31:00 (16 years ago)
- Location:
- trunk/SRC
- Files:
-
- 47 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/Documentation/idldoc_assistant_output/Colors/colorbar.html
r338 r363 229 229 230 230 231 <font size="-1" color="#006633">default:</font> <font size="-1" color="#006633"><i>see bel low</i></font>231 <font size="-1" color="#006633">default:</font> <font size="-1" color="#006633"><i>see below</i></font> 232 232 233 233 </h4> … … 442 442 443 443 <h4>Version</h4> 444 $Id: colorbar.pro 3 27 2007-12-13 16:22:35Z pinsard $444 $Id: colorbar.pro 358 2008-04-28 09:41:14Z pinsard $ 445 445 446 446 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/Grid/ncdf_meshread.html
r338 r363 277 277 278 278 <h4>Version</h4> 279 $Id: ncdf_meshread.pro 3 27 2007-12-13 16:22:35Z pinsard$279 $Id: ncdf_meshread.pro 359 2008-06-05 13:06:39Z smasson $ 280 280 281 281 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/Interpolation/file_interp.html
r338 r363 74 74 </font></h2> 75 75 76 <p><font face="Courier">file_interp<i>, <a href="#_file_interp_keyword_filein">filein</a>, <a href="#_file_interp_keyword_fileout">fileout</a>, <a href="#_file_interp_keyword_gridout">gridout</a></i>, <a href="#_file_interp_keyword_GRIDIN">GRIDIN</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_MASKIN">MASKIN</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_MASKOUT">MASKOUT</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_KEEP">KEEP</a>=<i>string array</i>, <a href="#_file_interp_keyword_REMOVE">REMOVE</a>=<i>string array</i>, <a href="#_file_interp_keyword_METHOD">METHOD</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SMOOTH">SMOOTH</a>=<i>scalar 0 or 1</i>, <a href="#_file_interp_keyword_SET_XDIMNAME">SET_XDIMNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SET_YDIMNAME">SET_YDIMNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SET_XAXISNAME">SET_XAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SET_YAXISNAME">SET_YAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_INMASKNAME">INMASKNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_ININVMASK">ININVMASK</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_INUSEASMASK">INUSEASMASK</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_INMISSING_VALUE">INMISSING_VALUE</a>=<i>scalar</i>, <a href="#_file_interp_keyword_INADDSCL_BEFORE">INADDSCL_BEFORE</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_ OUTMASKNAME">OUTMASKNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTINVMASK">OUTINVMASK</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_OUTUSEASMASK">OUTUSEASMASK</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTMISSING_VALUE">OUTMISSING_VALUE</a>=<i>scalar</i>, <a href="#_file_interp_keyword_OUTADDSCL_BEFORE">OUTADDSCL_BEFORE</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_NAN_VALUE">NAN_VALUE</a>=<i>scalar</i>, <a href="#_file_interp_keyword_WEIG">WEIG</a>=<i>2d array or variable name</i>, <a href="#_file_interp_keyword_ADDR">ADDR</a>=<i>2d array or variable name</i>, <a href="#_file_interp_keyword_INXAXISNAME">INXAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_INYAXISNAME">INYAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTXAXISNAME">OUTXAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTYAXISNAME">OUTYAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword__EXTRA">_EXTRA</a>=<i>_EXTRA</i></font></p>76 <p><font face="Courier">file_interp<i>, <a href="#_file_interp_keyword_filein">filein</a>, <a href="#_file_interp_keyword_fileout">fileout</a>, <a href="#_file_interp_keyword_gridout">gridout</a></i>, <a href="#_file_interp_keyword_GRIDIN">GRIDIN</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_MASKIN">MASKIN</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_MASKOUT">MASKOUT</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_KEEP">KEEP</a>=<i>string array</i>, <a href="#_file_interp_keyword_REMOVE">REMOVE</a>=<i>string array</i>, <a href="#_file_interp_keyword_METHOD">METHOD</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SMOOTH">SMOOTH</a>=<i>scalar 0 or 1</i>, <a href="#_file_interp_keyword_SET_XDIMNAME">SET_XDIMNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SET_YDIMNAME">SET_YDIMNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SET_XAXISNAME">SET_XAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_SET_YAXISNAME">SET_YAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_INMASKNAME">INMASKNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_ININVMASK">ININVMASK</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_INUSEASMASK">INUSEASMASK</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_INMISSING_VALUE">INMISSING_VALUE</a>=<i>scalar</i>, <a href="#_file_interp_keyword_INADDSCL_BEFORE">INADDSCL_BEFORE</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_INTESTOP">INTESTOP</a>=<i>scalar string, for example 'GT 0.5'</i>, <a href="#_file_interp_keyword_OUTMASKNAME">OUTMASKNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTINVMASK">OUTINVMASK</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_OUTUSEASMASK">OUTUSEASMASK</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTMISSING_VALUE">OUTMISSING_VALUE</a>=<i>scalar</i>, <a href="#_file_interp_keyword_OUTADDSCL_BEFORE">OUTADDSCL_BEFORE</a>=<i>scalar: 0 or 1</i>, <a href="#_file_interp_keyword_OUTTESTOP">OUTTESTOP</a>=<i>scalar string, for example 'GT 0.5'</i>, <a href="#_file_interp_keyword_MISSING_VALUE">MISSING_VALUE</a>=<i>scalar</i>, <a href="#_file_interp_keyword_WEIG">WEIG</a>=<i>2d array or variable name</i>, <a href="#_file_interp_keyword_ADDR">ADDR</a>=<i>2d array or variable name</i>, <a href="#_file_interp_keyword_INXAXISNAME">INXAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_INYAXISNAME">INYAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTXAXISNAME">OUTXAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword_OUTYAXISNAME">OUTYAXISNAME</a>=<i>scalar string</i>, <a href="#_file_interp_keyword__EXTRA">_EXTRA</a>=<i>_EXTRA</i></font></p> 77 77 78 78 … … 195 195 determined through <a href="..//ReadWrite/ncdf_getmask.html">ncdf_getmask</a> according to the keywords 196 196 outmaskname, outinvmask, outuseasmask, outmissing_value, 197 outaddscl_before (see bel low)197 outaddscl_before (see below). 198 198 199 199 … … 387 387 388 388 389 A string giving the name of the variable in the input mask file maskin390 that will be used to build the land/sea mask. In this case the389 A string giving the name of the variable in the input mask file 390 that will be used to build the input land/sea mask. In this case the 391 391 mask is based on the first record (if record dimension 392 exists). The mask is build according to : 393 1 the keyword missing_value if existing 394 2 the attribute 'missing_value' if existing 395 3 NaN values if existing 392 exists). The input mask is build according to operator defined by INTESTOP 393 keyword (default NE) and the testing values defined as 394 1) the second word of TESTOP if existing 395 2) MISSING_VALUE keyword 396 3) attribute missing_value or _fillvalue of the variable USEASMASK 397 4) !Values.f_nan (can be used only with NE and EQ operators) 396 398 397 399 … … 410 412 411 413 To define (or redefine if the attribute is already existing) the 412 missing values used by INUSEASMASK keyword 414 missing values used with INUSEASMASK keyword to build the input mask. 415 Note that this value is not used if INTESTOP keyword is given and 416 contains 2 words. 417 Note: do not mismatch with MISSING_VALUE used to detect missing 418 values at reach record. 413 419 414 420 … … 430 436 431 437 438 <a name="#_file_interp_keyword_INTESTOP"></a> 439 <h4>INTESTOP 440 441 442 443 444 445 <font size="-1" color="#006633">type:</font> <font size="-1" color="#006633"><i>scalar string, for example 'GT 0.5'</i></font> 446 <font size="-1" color="#006633">default:</font> <font size="-1" color="#006633"><i>'NE'</i></font> 447 448 </h4> 449 450 451 a string describing the type of test that will be done to define the 452 input mask. The test is performed on the variable specified by INUSEASMASK 453 keyword. 454 INTESTOP can contain 1 or 2 words. The first word is the operator 455 definition: "EQ" "NE" "GE" "GT" "LE" "LT" (default is NE). The 456 second word define the testing value. If INTESTOP contains only 1 457 word, then the test value is denifed by 458 1) INMISSING_VALUE keyword 459 2) attribute missing_value or _fillvalue of the variable INUSEASMASK 460 3) !Values.f_nan (can be used only with NE and EQ operators) 461 462 432 463 <a name="#_file_interp_keyword_OUTMASKNAME"></a> 433 464 <h4>OUTMASKNAME … … 510 541 511 542 512 <a name="#_file_interp_keyword_NAN_VALUE"></a> 513 <h4>NAN_VALUE 543 <a name="#_file_interp_keyword_OUTTESTOP"></a> 544 <h4>OUTTESTOP 545 546 547 548 549 550 <font size="-1" color="#006633">type:</font> <font size="-1" color="#006633"><i>scalar string, for example 'GT 0.5'</i></font> 551 <font size="-1" color="#006633">default:</font> <font size="-1" color="#006633"><i>'NE'</i></font> 552 553 </h4> 554 555 556 same as INTESTOP but for output mask file maskout 557 558 559 <a name="#_file_interp_keyword_MISSING_VALUE"></a> 560 <h4>MISSING_VALUE 514 561 515 562 … … 518 565 519 566 <font size="-1" color="#006633">type:</font> <font size="-1" color="#006633"><i>scalar</i></font> 520 <font size="-1" color="#006633">default:</font> <font size="-1" color="#006633"><i> not used</i></font>521 522 </h4> 523 524 525 define the missing value in input data (missing values are treated567 <font size="-1" color="#006633">default:</font> <font size="-1" color="#006633"><i>defined by attribute missing_value or _fillvalue</i></font> 568 569 </h4> 570 571 572 (Re)define the missing value in input data (missing values are treated 526 573 like masked values and will be filled with extrapolation before 527 interpolation). 574 interpolation). 575 Note: do not mismatch with (IN/OUT)MISSING_VALUE which are missing value 576 used (in association with (IN/OUT)USEASMASK) to built the mask (that 577 does not change from one record to another). 578 Note: this value will be apply to all interpolated variables 528 579 529 580 … … 654 705 IDL> file_interp, filein, fileout, gridout, inxaxisname = 'lo', inyaxisname = 'la', keep = ['lo', 'la', 'cond_sed'] 655 706 656 IDL> file_interp, in, out, gdout, inuseasmask = 'sst', inmissing_value = -1.00000e+30, nan_value = -1000.00707 IDL> file_interp, in, out, gdout, inuseasmask = 'sst', inmissing_value = -1.00000e+30, missing_value = -1000.00 657 708 658 709 </pre><h3>Version history</h3> 659 710 660 711 <h4>Version</h4> 661 $Id: file_interp.pro 3 30 2008-02-01 16:28:24Z smasson $712 $Id: file_interp.pro 362 2008-07-29 09:00:03Z smasson $ 662 713 663 714 <h4>History</h4> … … 673 724 674 725 - perform only horizontal interpolations on scalar fields 675 - will fill all masked and missing values before interpolation 726 - all masked and missing values are filled before interpolation 727 -> output data are not masked and have values everywhere. 676 728 - attributes (like valid_min...) are not updated 677 729 - see restrictions of <a href="..//Interpolation/fromreg.html">fromreg</a> and <a href="..//Interpolation/fromirr.html">fromirr</a> 730 - output mask is not used but, if the input file contains the mask 731 in a variable (defined by inmaskname), this variable will contain 732 the output mask in the ouput file 678 733 679 734 -
trunk/SRC/Documentation/idldoc_assistant_output/Interpolation/quadrilateral2square.html
r338 r363 72 72 The mapping is done using perspective transformation which preserve 73 73 lines in all orientations and permit quadrilateral to quadrilateral 74 mappings. see ref. bel low.74 mappings. see ref. below. 75 75 76 76 … … 315 315 316 316 <h4>Version</h4> 317 $Id: quadrilateral2square.pro 3 27 2007-12-13 16:22:35Z pinsard $317 $Id: quadrilateral2square.pro 358 2008-04-28 09:41:14Z pinsard $ 318 318 319 319 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/Interpolation/square2quadrilateral.html
r338 r363 70 70 The mapping is done using perspective transformation which preserve 71 71 lines in all orientations and permit quadrilateral to quadrilateral 72 mappings. see ref. bel low.72 mappings. see ref. below. 73 73 74 74 … … 294 294 295 295 <h4>Version</h4> 296 $Id: square2quadrilateral.pro 3 27 2007-12-13 16:22:35Z pinsard $296 $Id: square2quadrilateral.pro 358 2008-04-28 09:41:14Z pinsard $ 297 297 298 298 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ReadWrite/ncdf_getatt.html
r338 r363 297 297 298 298 <h4>Version</h4> 299 $Id: ncdf_getatt.pro 3 34 2008-03-07 14:39:18Z smasson $299 $Id: ncdf_getatt.pro 344 2008-04-15 11:05:43Z smasson $ 300 300 301 301 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ReadWrite/ncdf_getmask.html
r338 r363 74 74 </font></h2> 75 75 76 <p><font face="Courier"><i>result = </i>ncdf_getmask(<i><a href="#_ncdf_getmask_keyword_fileid">fileid</a></i>, <a href="#_ncdf_getmask_keyword_ADDSCL_BEFORE">ADDSCL_BEFORE</a>=<i>scalar: 0 or 1</i>, <a href="#_ncdf_getmask_keyword_MASKNAME">MASKNAME</a>=<i>string</i>, <a href="#_ncdf_getmask_keyword_USEASMASK">USEASMASK</a>=<i>scalar string</i>, <a href="#_ncdf_getmask_keyword_MISSING_VALUE">MISSING_VALUE</a>=<i>scalar</i>, <a href="#_ncdf_getmask_keyword_INVMASK">INVMASK</a>=<i>scalar: 0 or 1</i>, <a href="#_ncdf_getmask_keyword_ _EXTRA">_EXTRA</a>=<i>_EXTRA</i>)</font></p>76 <p><font face="Courier"><i>result = </i>ncdf_getmask(<i><a href="#_ncdf_getmask_keyword_fileid">fileid</a></i>, <a href="#_ncdf_getmask_keyword_ADDSCL_BEFORE">ADDSCL_BEFORE</a>=<i>scalar: 0 or 1</i>, <a href="#_ncdf_getmask_keyword_MASKNAME">MASKNAME</a>=<i>string</i>, <a href="#_ncdf_getmask_keyword_USEASMASK">USEASMASK</a>=<i>scalar string</i>, <a href="#_ncdf_getmask_keyword_MISSING_VALUE">MISSING_VALUE</a>=<i>scalar</i>, <a href="#_ncdf_getmask_keyword_INVMASK">INVMASK</a>=<i>scalar: 0 or 1</i>, <a href="#_ncdf_getmask_keyword_TESTOP">TESTOP</a>=<i>scalar string, for example 'GT 0.5'</i>, <a href="#_ncdf_getmask_keyword__EXTRA">_EXTRA</a>=<i>_EXTRA</i>)</font></p> 77 77 78 78 … … 164 164 that will be used to build the land/sea mask. In this case the 165 165 mask is based on the first record (if record dimension 166 exists). The mask is build according to : 167 1 the keyword missing_value if existing 168 2 the attribute 'missing_value' if existing 169 3 NaN values if existing 166 exists). The mask is build according to operator defined by TESTOP 167 keyword (default NE) and the testing values defined as 168 1) the second word of TESTOP if existing 169 2) MISSING_VALUE keyword 170 3) attribute missing_value or _fillvalue of the variable USEASMASK 171 4) !Values.f_nan (can be used only with NE and EQ operators) 170 172 171 173 … … 183 185 184 186 185 To define (or redefine if the attribute is 186 already existing) the missing values used with USEASMASK187 keyword187 To define (or redefine if the attribute is already existing) the 188 missing values used with USEASMASK keyword. Note that this value is 189 not used if TESTOP keyword is given and contains 2 words. 188 190 189 191 … … 204 206 205 207 208 <a name="#_ncdf_getmask_keyword_TESTOP"></a> 209 <h4>TESTOP 210 211 212 213 214 215 <font size="-1" color="#006633">type:</font> <font size="-1" color="#006633"><i>scalar string, for example 'GT 0.5'</i></font> 216 <font size="-1" color="#006633">default:</font> <font size="-1" color="#006633"><i>'NE'</i></font> 217 218 </h4> 219 220 221 a string describing the type of test that will be done to define the 222 mask. The test is performed on the variable specified by USEASMASK 223 keyword. 224 TESTOP can contain 1 or 2 words. The first word is the operator 225 definition: "EQ" "NE" "GE" "GT" "LE" "LT" (default is NE). The 226 second word define the testing value. If TESTOP contains only 1 227 word, then the test value is denifed by 228 1) MISSING_VALUE keyword 229 2) attribute missing_value or _fillvalue of the variable USEASMASK 230 3) !Values.f_nan (can be used only with NE and EQ operators) 231 232 206 233 <a name="#_ncdf_getmask_keyword__EXTRA"></a> 207 234 <h4>_EXTRA … … 227 254 IDL> mask = ncdf_getmask('meshmaskORCA2.nc', maskname = 'tmask') 228 255 256 IDL> mask = ncdf_getmask('t106.nc', useasmask = 'SLM', testop = 'le 0.5') 257 229 258 </pre><h3>Version history</h3> 230 259 231 260 <h4>Version</h4> 232 $Id: ncdf_getmask.pro 3 27 2007-12-13 16:22:35Z pinsard$261 $Id: ncdf_getmask.pro 361 2008-07-07 14:23:42Z smasson $ 233 262 234 263 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ReadWrite/ncdf_gettime.html
r338 r363 204 204 205 205 <h4>Version</h4> 206 $Id: ncdf_gettime.pro 3 27 2007-12-13 16:22:35Z pinsard $206 $Id: ncdf_gettime.pro 358 2008-04-28 09:41:14Z pinsard $ 207 207 <h4>History</h4> 208 208 August 2007: Sebastien Masson (smasson@lodyc.jussieu.fr) … … 216 216 <h4>Restrictions</h4> 217 217 the calendar variable must have the units attribute 218 following the syntax bel low:218 following the syntax below: 219 219 220 220 time_counter:units = "seconds since 0001-01-01 00:00:00" ; -
trunk/SRC/Documentation/idldoc_assistant_output/ReadWrite/ncdf_timeget.html
r338 r363 163 163 164 164 165 </pre></pre></pre></pre>< h3>Version history</h3>165 </pre></pre></pre></pre></pre><h3>Version history</h3> 166 166 167 167 <h4>Version</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ToBeReviewed/LECTURE/read_ncdf.html
r338 r363 441 441 442 442 <h4>Version</h4> 443 $Id: read_ncdf.pro 33 6 2008-03-20 21:36:46Z smasson $443 $Id: read_ncdf.pro 337 2008-03-20 22:04:33Z smasson $ 444 444 445 445 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ToBeReviewed/PLOTS/DESSINE/pltz.html
r338 r363 704 704 705 705 <h4>Version</h4> 706 $Id: pltz.pro 3 28 2007-12-13 19:27:11Z smasson $706 $Id: pltz.pro 360 2008-06-06 13:43:54Z smasson $ 707 707 708 708 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ToBeReviewed/PLOTS/DIVERS/barrecouleur.html
r338 r363 74 74 </font></h2> 75 75 76 <p><font face="Courier">barrecouleur<i>, <a href="#_barrecouleur_keyword_colnumb">colnumb</a>, <a href="#_barrecouleur_keyword_clbinf">clbinf</a>, <a href="#_barrecouleur_keyword_clbsup">clbsup</a>, <a href="#_barrecouleur_keyword_clbdiv">clbdiv</a></i>, <a href="#_barrecouleur_keyword_NOCOLORBAR">NOCOLORBAR</a>=<i>NOCOLORBAR</i>, <a href="#_barrecouleur_keyword_CB_TITLE">CB_TITLE</a>=<i>CB_TITLE</i>, <a href="#_barrecouleur_keyword_NOFILL">NOFILL</a>=<i>NOFILL</i>, <a href="#_barrecouleur_keyword_COLOR_c">COLOR_c</a>=<i>COLOR_c</i>, <a href="#_barrecouleur_keyword_MIN">MIN</a>=<i>MIN</i>, <a href="#_barrecouleur_keyword_MAX">MAX</a>=<i>MAX</i>, <a href="#_barrecouleur_keyword_ divisions">divisions</a>=<i>divisions</i>, <a href="#_barrecouleur_keyword_CB_SUBTITLE">CB_SUBTITLE</a>=<i>CB_SUBTITLE</i>, <a href="#_barrecouleur_keyword_POST">POST</a>=<i>POST</i>, <a href="#_barrecouleur_keyword__EXTRA">_EXTRA</a>=<i>_EXTRA</i></font></p>76 <p><font face="Courier">barrecouleur<i>, <a href="#_barrecouleur_keyword_colnumb">colnumb</a>, <a href="#_barrecouleur_keyword_clbinf">clbinf</a>, <a href="#_barrecouleur_keyword_clbsup">clbsup</a>, <a href="#_barrecouleur_keyword_clbdiv">clbdiv</a></i>, <a href="#_barrecouleur_keyword_NOCOLORBAR">NOCOLORBAR</a>=<i>NOCOLORBAR</i>, <a href="#_barrecouleur_keyword_CB_TITLE">CB_TITLE</a>=<i>CB_TITLE</i>, <a href="#_barrecouleur_keyword_NOFILL">NOFILL</a>=<i>NOFILL</i>, <a href="#_barrecouleur_keyword_COLOR_c">COLOR_c</a>=<i>COLOR_c</i>, <a href="#_barrecouleur_keyword_MIN">MIN</a>=<i>MIN</i>, <a href="#_barrecouleur_keyword_MAX">MAX</a>=<i>MAX</i>, <a href="#_barrecouleur_keyword_DIVISIONS">DIVISIONS</a>=<i>DIVISIONS</i>, <a href="#_barrecouleur_keyword_CB_SUBTITLE">CB_SUBTITLE</a>=<i>CB_SUBTITLE</i>, <a href="#_barrecouleur_keyword_POST">POST</a>=<i>POST</i>, <a href="#_barrecouleur_keyword__EXTRA">_EXTRA</a>=<i>_EXTRA</i></font></p> 77 77 78 78 … … 246 246 247 247 248 <a name="#_barrecouleur_keyword_ divisions"></a>249 <h4> divisions 248 <a name="#_barrecouleur_keyword_DIVISIONS"></a> 249 <h4>DIVISIONS 250 250 251 251 … … 313 313 314 314 <h4>Version</h4> 315 $Id: barrecouleur.pro 3 27 2007-12-13 16:22:35Z pinsard $315 $Id: barrecouleur.pro 358 2008-04-28 09:41:14Z pinsard $ 316 316 317 317 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ToBeReviewed/PLOTS/DIVERS/checkfield.html
r338 r363 192 192 193 193 <h4>Version</h4> 194 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$194 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 195 195 196 196 <h4>History</h4> … … 322 322 323 323 <h4>Version</h4> 324 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$324 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 325 325 326 326 <h4>History</h4> … … 452 452 453 453 <h4>Version</h4> 454 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$454 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 455 455 456 456 <h4>History</h4> … … 655 655 656 656 <h4>Version</h4> 657 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$657 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 658 658 659 659 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ToBeReviewed/PLOTS/legende.html
r338 r363 281 281 282 282 <h4>Version</h4> 283 $Id: legende.pro 3 27 2007-12-13 16:22:35Z pinsard$283 $Id: legende.pro 344 2008-04-15 11:05:43Z smasson $ 284 284 285 285 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ToBeReviewed/STATISTICS/a_timecorrelate.html
r338 r363 202 202 203 203 <h4>Version</h4> 204 $Id: a_timecorrelate.pro 3 35 2008-03-07 15:09:25Z smasson $204 $Id: a_timecorrelate.pro 342 2008-03-28 16:08:47Z smasson $ 205 205 206 206 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_assistant_output/ToBeReviewed/STRING/getfile.html
r338 r363 72 72 <h2>getfile </h2> 73 73 74 <p><font face="Courier"><i>result = </i>getfile(<i><a href="#_getfile_keyword_filein">filein</a></i>, <a href="#_getfile_keyword_ error">error</a>=<i>error</i>, <a href="#_getfile_keyword_HELP">HELP</a>=<i>HELP</i>, <a href="#_getfile_keyword_QUIET">QUIET</a>=<i>QUIET</i>, <a href="#_getfile_keyword_LINES">LINES</a>=<i>LINES</i>, <a href="#_getfile_keyword_FIND">FIND</a>=<i>FIND</i>)</font></p>74 <p><font face="Courier"><i>result = </i>getfile(<i><a href="#_getfile_keyword_filein">filein</a></i>, <a href="#_getfile_keyword_ERROR">ERROR</a>=<i>ERROR</i>, <a href="#_getfile_keyword_HELP">HELP</a>=<i>HELP</i>, <a href="#_getfile_keyword_QUIET">QUIET</a>=<i>QUIET</i>, <a href="#_getfile_keyword_LINES">LINES</a>=<i>LINES</i>, <a href="#_getfile_keyword_FIND">FIND</a>=<i>FIND</i>)</font></p> 75 75 76 76 … … 106 106 107 107 108 <a name="#_getfile_keyword_ error"></a>109 <h4> error 108 <a name="#_getfile_keyword_ERROR"></a> 109 <h4>ERROR 110 110 111 111 … … 195 195 196 196 <h4>Version</h4> 197 $Id: getfile.pro 3 27 2007-12-13 16:22:35Z pinsard $197 $Id: getfile.pro 358 2008-04-28 09:41:14Z pinsard $ 198 198 199 199 <h4>History</h4> -
trunk/SRC/Documentation/idldoc_html_output/Colors/colorbar.html
r338 r363 255 255 256 256 257 <span class="attr">default:</span> <span class="value">see bel low</span>257 <span class="attr">default:</span> <span class="value">see below</span> 258 258 259 259 </h4> … … 457 457 458 458 <h4>Version</h4><div class="preformat"> 459 $Id: colorbar.pro 3 27 2007-12-13 16:22:35Z pinsard $459 $Id: colorbar.pro 358 2008-04-28 09:41:14Z pinsard $ 460 460 </div> 461 461 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/Grid/ncdf_meshread.html
r338 r363 303 303 304 304 <h4>Version</h4><div class="preformat"> 305 $Id: ncdf_meshread.pro 3 27 2007-12-13 16:22:35Z pinsard$305 $Id: ncdf_meshread.pro 359 2008-06-05 13:06:39Z smasson $ 306 306 </div> 307 307 <h4>History</h4><div class="preformat"> … … 340 340 <h3>Statistics</h3> 341 341 <table class="statistics"> 342 <tr><td>McCabe cyclic</td><td> 9 5</td></tr>342 <tr><td>McCabe cyclic</td><td> 99</td></tr> 343 343 <tr><td>McCabe essential</td><td> 1</td></tr> 344 344 <tr><td>McCabe modular design</td><td> 1</td></tr> -
trunk/SRC/Documentation/idldoc_html_output/Interpolation/file_interp.html
r338 r363 109 109 110 110 <p class="header"> 111 file_interp<span class="result">, <a href="#_file_interp_param_filein">filein</a>, <a href="#_file_interp_param_fileout">fileout</a>, <a href="#_file_interp_param_gridout">gridout</a></span>, <a href="#_file_interp_keyword_GRIDIN">GRIDIN</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_MASKIN">MASKIN</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_MASKOUT">MASKOUT</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_KEEP">KEEP</a>=<span class="result">string array</span>, <a href="#_file_interp_keyword_REMOVE">REMOVE</a>=<span class="result">string array</span>, <a href="#_file_interp_keyword_METHOD">METHOD</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SMOOTH">SMOOTH</a>=<span class="result">scalar 0 or 1</span>, <a href="#_file_interp_keyword_SET_XDIMNAME">SET_XDIMNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SET_YDIMNAME">SET_YDIMNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SET_XAXISNAME">SET_XAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SET_YAXISNAME">SET_YAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_INMASKNAME">INMASKNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_ININVMASK">ININVMASK</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_INUSEASMASK">INUSEASMASK</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_INMISSING_VALUE">INMISSING_VALUE</a>=<span class="result">scalar</span>, <a href="#_file_interp_keyword_INADDSCL_BEFORE">INADDSCL_BEFORE</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_ OUTMASKNAME">OUTMASKNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTINVMASK">OUTINVMASK</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_OUTUSEASMASK">OUTUSEASMASK</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTMISSING_VALUE">OUTMISSING_VALUE</a>=<span class="result">scalar</span>, <a href="#_file_interp_keyword_OUTADDSCL_BEFORE">OUTADDSCL_BEFORE</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_NAN_VALUE">NAN_VALUE</a>=<span class="result">scalar</span>, <a href="#_file_interp_keyword_WEIG">WEIG</a>=<span class="result">2d array or variable name</span>, <a href="#_file_interp_keyword_ADDR">ADDR</a>=<span class="result">2d array or variable name</span>, <a href="#_file_interp_keyword_INXAXISNAME">INXAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_INYAXISNAME">INYAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTXAXISNAME">OUTXAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTYAXISNAME">OUTYAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p>111 file_interp<span class="result">, <a href="#_file_interp_param_filein">filein</a>, <a href="#_file_interp_param_fileout">fileout</a>, <a href="#_file_interp_param_gridout">gridout</a></span>, <a href="#_file_interp_keyword_GRIDIN">GRIDIN</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_MASKIN">MASKIN</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_MASKOUT">MASKOUT</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_KEEP">KEEP</a>=<span class="result">string array</span>, <a href="#_file_interp_keyword_REMOVE">REMOVE</a>=<span class="result">string array</span>, <a href="#_file_interp_keyword_METHOD">METHOD</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SMOOTH">SMOOTH</a>=<span class="result">scalar 0 or 1</span>, <a href="#_file_interp_keyword_SET_XDIMNAME">SET_XDIMNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SET_YDIMNAME">SET_YDIMNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SET_XAXISNAME">SET_XAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_SET_YAXISNAME">SET_YAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_INMASKNAME">INMASKNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_ININVMASK">ININVMASK</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_INUSEASMASK">INUSEASMASK</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_INMISSING_VALUE">INMISSING_VALUE</a>=<span class="result">scalar</span>, <a href="#_file_interp_keyword_INADDSCL_BEFORE">INADDSCL_BEFORE</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_INTESTOP">INTESTOP</a>=<span class="result">scalar string, for example 'GT 0.5'</span>, <a href="#_file_interp_keyword_OUTMASKNAME">OUTMASKNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTINVMASK">OUTINVMASK</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_OUTUSEASMASK">OUTUSEASMASK</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTMISSING_VALUE">OUTMISSING_VALUE</a>=<span class="result">scalar</span>, <a href="#_file_interp_keyword_OUTADDSCL_BEFORE">OUTADDSCL_BEFORE</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_file_interp_keyword_OUTTESTOP">OUTTESTOP</a>=<span class="result">scalar string, for example 'GT 0.5'</span>, <a href="#_file_interp_keyword_MISSING_VALUE">MISSING_VALUE</a>=<span class="result">scalar</span>, <a href="#_file_interp_keyword_WEIG">WEIG</a>=<span class="result">2d array or variable name</span>, <a href="#_file_interp_keyword_ADDR">ADDR</a>=<span class="result">2d array or variable name</span>, <a href="#_file_interp_keyword_INXAXISNAME">INXAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_INYAXISNAME">INYAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTXAXISNAME">OUTXAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword_OUTYAXISNAME">OUTYAXISNAME</a>=<span class="result">scalar string</span>, <a href="#_file_interp_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span></p> 112 112 113 113 <div class="comments"> … … 223 223 determined through <a href="..//ReadWrite/ncdf_getmask.html">ncdf_getmask</a> according to the keywords 224 224 outmaskname, outinvmask, outuseasmask, outmissing_value, 225 outaddscl_before (see bel low)225 outaddscl_before (see below). 226 226 </div> 227 227 … … 404 404 405 405 <div class="comments"> 406 A string giving the name of the variable in the input mask file maskin407 that will be used to build the land/sea mask. In this case the406 A string giving the name of the variable in the input mask file 407 that will be used to build the input land/sea mask. In this case the 408 408 mask is based on the first record (if record dimension 409 exists). The mask is build according to : 410 1 the keyword missing_value if existing 411 2 the attribute 'missing_value' if existing 412 3 NaN values if existing 409 exists). The input mask is build according to operator defined by INTESTOP 410 keyword (default NE) and the testing values defined as 411 1) the second word of TESTOP if existing 412 2) MISSING_VALUE keyword 413 3) attribute missing_value or _fillvalue of the variable USEASMASK 414 4) !Values.f_nan (can be used only with NE and EQ operators) 413 415 </div> 414 416 … … 426 428 <div class="comments"> 427 429 To define (or redefine if the attribute is already existing) the 428 missing values used by INUSEASMASK keyword 430 missing values used with INUSEASMASK keyword to build the input mask. 431 Note that this value is not used if INTESTOP keyword is given and 432 contains 2 words. 433 Note: do not mismatch with MISSING_VALUE used to detect missing 434 values at reach record. 429 435 </div> 430 436 … … 445 451 </div> 446 452 453 <h4 id="_file_interp_keyword_INTESTOP">INTESTOP 454 455 456 457 458 459 <span class="attr">type:</span> <span class="value">scalar string, for example 'GT 0.5'</span> 460 <span class="attr">default:</span> <span class="value">'NE'</span> 461 462 </h4> 463 464 <div class="comments"> 465 a string describing the type of test that will be done to define the 466 input mask. The test is performed on the variable specified by INUSEASMASK 467 keyword. 468 INTESTOP can contain 1 or 2 words. The first word is the operator 469 definition: "EQ" "NE" "GE" "GT" "LE" "LT" (default is NE). The 470 second word define the testing value. If INTESTOP contains only 1 471 word, then the test value is denifed by 472 1) INMISSING_VALUE keyword 473 2) attribute missing_value or _fillvalue of the variable INUSEASMASK 474 3) !Values.f_nan (can be used only with NE and EQ operators) 475 </div> 476 447 477 <h4 id="_file_interp_keyword_OUTMASKNAME">OUTMASKNAME 448 478 … … 520 550 </div> 521 551 522 <h4 id="_file_interp_keyword_NAN_VALUE">NAN_VALUE 552 <h4 id="_file_interp_keyword_OUTTESTOP">OUTTESTOP 553 554 555 556 557 558 <span class="attr">type:</span> <span class="value">scalar string, for example 'GT 0.5'</span> 559 <span class="attr">default:</span> <span class="value">'NE'</span> 560 561 </h4> 562 563 <div class="comments"> 564 same as INTESTOP but for output mask file maskout 565 </div> 566 567 <h4 id="_file_interp_keyword_MISSING_VALUE">MISSING_VALUE 523 568 524 569 … … 527 572 528 573 <span class="attr">type:</span> <span class="value">scalar</span> 529 <span class="attr">default:</span> <span class="value"> not used</span>530 531 </h4> 532 533 <div class="comments"> 534 define the missing value in input data (missing values are treated574 <span class="attr">default:</span> <span class="value">defined by attribute missing_value or _fillvalue</span> 575 576 </h4> 577 578 <div class="comments"> 579 (Re)define the missing value in input data (missing values are treated 535 580 like masked values and will be filled with extrapolation before 536 interpolation). 581 interpolation). 582 Note: do not mismatch with (IN/OUT)MISSING_VALUE which are missing value 583 used (in association with (IN/OUT)USEASMASK) to built the mask (that 584 does not change from one record to another). 585 Note: this value will be apply to all interpolated variables 537 586 </div> 538 587 … … 656 705 IDL> file_interp, filein, fileout, gridout, inxaxisname = 'lo', inyaxisname = 'la', keep = ['lo', 'la', 'cond_sed'] 657 706 658 IDL> file_interp, in, out, gdout, inuseasmask = 'sst', inmissing_value = -1.00000e+30, nan_value = -1000.00707 IDL> file_interp, in, out, gdout, inuseasmask = 'sst', inmissing_value = -1.00000e+30, missing_value = -1000.00 659 708 </div> 660 709 <h3>Version history</h3> 661 710 662 711 <h4>Version</h4><div class="preformat"> 663 $Id: file_interp.pro 3 30 2008-02-01 16:28:24Z smasson $712 $Id: file_interp.pro 362 2008-07-29 09:00:03Z smasson $ 664 713 </div> 665 714 <h4>History</h4><div class="preformat"> … … 675 724 676 725 - perform only horizontal interpolations on scalar fields 677 - will fill all masked and missing values before interpolation 726 - all masked and missing values are filled before interpolation 727 -> output data are not masked and have values everywhere. 678 728 - attributes (like valid_min...) are not updated 679 729 - see restrictions of <a href="..//Interpolation/fromreg.html">fromreg</a> and <a href="..//Interpolation/fromirr.html">fromirr</a> 730 - output mask is not used but, if the input file contains the mask 731 in a variable (defined by inmaskname), this variable will contain 732 the output mask in the ouput file 680 733 </div> 681 734 … … 692 745 <h3>Statistics</h3> 693 746 <table class="statistics"> 694 <tr><td>McCabe cyclic</td><td> 6 8</td></tr>747 <tr><td>McCabe cyclic</td><td> 69</td></tr> 695 748 <tr><td>McCabe essential</td><td> 1</td></tr> 696 749 <tr><td>McCabe modular design</td><td> 1</td></tr> -
trunk/SRC/Documentation/idldoc_html_output/Interpolation/quadrilateral2square.html
r338 r363 98 98 The mapping is done using perspective transformation which preserve 99 99 lines in all orientations and permit quadrilateral to quadrilateral 100 mappings. see ref. bel low.100 mappings. see ref. below. 101 101 </div> 102 102 … … 330 330 331 331 <h4>Version</h4><div class="preformat"> 332 $Id: quadrilateral2square.pro 3 27 2007-12-13 16:22:35Z pinsard $332 $Id: quadrilateral2square.pro 358 2008-04-28 09:41:14Z pinsard $ 333 333 </div> 334 334 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/Interpolation/square2quadrilateral.html
r338 r363 96 96 The mapping is done using perspective transformation which preserve 97 97 lines in all orientations and permit quadrilateral to quadrilateral 98 mappings. see ref. bel low.98 mappings. see ref. below. 99 99 </div> 100 100 … … 310 310 311 311 <h4>Version</h4><div class="preformat"> 312 $Id: square2quadrilateral.pro 3 27 2007-12-13 16:22:35Z pinsard $312 $Id: square2quadrilateral.pro 358 2008-04-28 09:41:14Z pinsard $ 313 313 </div> 314 314 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/ReadWrite/ncdf_getatt.html
r338 r363 321 321 322 322 <h4>Version</h4><div class="preformat"> 323 $Id: ncdf_getatt.pro 3 34 2008-03-07 14:39:18Z smasson $323 $Id: ncdf_getatt.pro 344 2008-04-15 11:05:43Z smasson $ 324 324 </div> 325 325 <h4>History</h4><div class="preformat"> … … 344 344 <h3>Statistics</h3> 345 345 <table class="statistics"> 346 <tr><td>McCabe cyclic</td><td> 2 2</td></tr>346 <tr><td>McCabe cyclic</td><td> 25</td></tr> 347 347 <tr><td>McCabe essential</td><td> 1</td></tr> 348 348 <tr><td>McCabe modular design</td><td> 1</td></tr> -
trunk/SRC/Documentation/idldoc_html_output/ReadWrite/ncdf_getmask.html
r338 r363 109 109 110 110 <p class="header"> 111 <span class="result">result = </span>ncdf_getmask(<span class="result"><a href="#_ncdf_getmask_param_fileid">fileid</a></span>, <a href="#_ncdf_getmask_keyword_ADDSCL_BEFORE">ADDSCL_BEFORE</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_ncdf_getmask_keyword_MASKNAME">MASKNAME</a>=<span class="result">string</span>, <a href="#_ncdf_getmask_keyword_USEASMASK">USEASMASK</a>=<span class="result">scalar string</span>, <a href="#_ncdf_getmask_keyword_MISSING_VALUE">MISSING_VALUE</a>=<span class="result">scalar</span>, <a href="#_ncdf_getmask_keyword_INVMASK">INVMASK</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_ncdf_getmask_keyword_ _EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span>)</p>111 <span class="result">result = </span>ncdf_getmask(<span class="result"><a href="#_ncdf_getmask_param_fileid">fileid</a></span>, <a href="#_ncdf_getmask_keyword_ADDSCL_BEFORE">ADDSCL_BEFORE</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_ncdf_getmask_keyword_MASKNAME">MASKNAME</a>=<span class="result">string</span>, <a href="#_ncdf_getmask_keyword_USEASMASK">USEASMASK</a>=<span class="result">scalar string</span>, <a href="#_ncdf_getmask_keyword_MISSING_VALUE">MISSING_VALUE</a>=<span class="result">scalar</span>, <a href="#_ncdf_getmask_keyword_INVMASK">INVMASK</a>=<span class="result">scalar: 0 or 1</span>, <a href="#_ncdf_getmask_keyword_TESTOP">TESTOP</a>=<span class="result">scalar string, for example 'GT 0.5'</span>, <a href="#_ncdf_getmask_keyword__EXTRA">_EXTRA</a>=<span class="result">_EXTRA</span>)</p> 112 112 113 113 <div class="comments"> … … 196 196 that will be used to build the land/sea mask. In this case the 197 197 mask is based on the first record (if record dimension 198 exists). The mask is build according to : 199 1 the keyword missing_value if existing 200 2 the attribute 'missing_value' if existing 201 3 NaN values if existing 198 exists). The mask is build according to operator defined by TESTOP 199 keyword (default NE) and the testing values defined as 200 1) the second word of TESTOP if existing 201 2) MISSING_VALUE keyword 202 3) attribute missing_value or _fillvalue of the variable USEASMASK 203 4) !Values.f_nan (can be used only with NE and EQ operators) 202 204 </div> 203 205 … … 214 216 215 217 <div class="comments"> 216 To define (or redefine if the attribute is 217 already existing) the missing values used with USEASMASK218 keyword218 To define (or redefine if the attribute is already existing) the 219 missing values used with USEASMASK keyword. Note that this value is 220 not used if TESTOP keyword is given and contains 2 words. 219 221 </div> 220 222 … … 234 236 </div> 235 237 238 <h4 id="_ncdf_getmask_keyword_TESTOP">TESTOP 239 240 241 242 243 244 <span class="attr">type:</span> <span class="value">scalar string, for example 'GT 0.5'</span> 245 <span class="attr">default:</span> <span class="value">'NE'</span> 246 247 </h4> 248 249 <div class="comments"> 250 a string describing the type of test that will be done to define the 251 mask. The test is performed on the variable specified by USEASMASK 252 keyword. 253 TESTOP can contain 1 or 2 words. The first word is the operator 254 definition: "EQ" "NE" "GE" "GT" "LE" "LT" (default is NE). The 255 second word define the testing value. If TESTOP contains only 1 256 word, then the test value is denifed by 257 1) MISSING_VALUE keyword 258 2) attribute missing_value or _fillvalue of the variable USEASMASK 259 3) !Values.f_nan (can be used only with NE and EQ operators) 260 </div> 261 236 262 <h4 id="_ncdf_getmask_keyword__EXTRA">_EXTRA 237 263 … … 255 281 256 282 IDL> mask = ncdf_getmask('meshmaskORCA2.nc', maskname = 'tmask') 283 284 IDL> mask = ncdf_getmask('t106.nc', useasmask = 'SLM', testop = 'le 0.5') 257 285 </div> 258 286 <h3>Version history</h3> 259 287 260 288 <h4>Version</h4><div class="preformat"> 261 $Id: ncdf_getmask.pro 3 27 2007-12-13 16:22:35Z pinsard$289 $Id: ncdf_getmask.pro 361 2008-07-07 14:23:42Z smasson $ 262 290 </div> 263 291 <h4>History</h4><div class="preformat"> … … 282 310 <h3>Statistics</h3> 283 311 <table class="statistics"> 284 <tr><td>McCabe cyclic</td><td> 24</td></tr>312 <tr><td>McCabe cyclic</td><td> 34</td></tr> 285 313 <tr><td>McCabe essential</td><td> 1</td></tr> 286 314 <tr><td>McCabe modular design</td><td> 1</td></tr> -
trunk/SRC/Documentation/idldoc_html_output/ReadWrite/ncdf_gettime.html
r338 r363 233 233 234 234 <h4>Version</h4><div class="preformat"> 235 $Id: ncdf_gettime.pro 3 27 2007-12-13 16:22:35Z pinsard $</div>235 $Id: ncdf_gettime.pro 358 2008-04-28 09:41:14Z pinsard $</div> 236 236 <h4>History</h4><div class="preformat"> 237 237 August 2007: Sebastien Masson (smasson@lodyc.jussieu.fr) … … 245 245 <h4>Restrictions</h4><div class="preformat"> 246 246 the calendar variable must have the units attribute 247 following the syntax bel low:247 following the syntax below: 248 248 249 249 time_counter:units = "seconds since 0001-01-01 00:00:00" ; … … 264 264 <h3>Statistics</h3> 265 265 <table class="statistics"> 266 <tr><td>McCabe cyclic</td><td> 42</td></tr>266 <tr><td>McCabe cyclic</td><td> 39</td></tr> 267 267 <tr><td>McCabe essential</td><td> 1</td></tr> 268 268 <tr><td>McCabe modular design</td><td> 1</td></tr> -
trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/LECTURE/read_ncdf.html
r338 r363 454 454 455 455 <h4>Version</h4><div class="preformat"> 456 $Id: read_ncdf.pro 33 6 2008-03-20 21:36:46Z smasson $456 $Id: read_ncdf.pro 337 2008-03-20 22:04:33Z smasson $ 457 457 </div> 458 458 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DESSINE/pltz.html
r338 r363 702 702 703 703 <h4>Version</h4><div class="preformat"> 704 $Id: pltz.pro 3 28 2007-12-13 19:27:11Z smasson $704 $Id: pltz.pro 360 2008-06-06 13:43:54Z smasson $ 705 705 </div> 706 706 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/barrecouleur.html
r338 r363 109 109 110 110 <p class="header"> 111 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>111 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> 112 112 113 113 <div class="comments"> … … 269 269 </div> 270 270 271 <h4 id="_barrecouleur_keyword_ divisions">divisions 271 <h4 id="_barrecouleur_keyword_DIVISIONS">DIVISIONS 272 272 273 273 … … 332 332 333 333 <h4>Version</h4><div class="preformat"> 334 $Id: barrecouleur.pro 3 27 2007-12-13 16:22:35Z pinsard $334 $Id: barrecouleur.pro 358 2008-04-28 09:41:14Z pinsard $ 335 335 </div> 336 336 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/DIVERS/checkfield.html
r338 r363 221 221 222 222 <h4>Version</h4><div class="preformat"> 223 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$223 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 224 224 </div> 225 225 <h4>History</h4><div class="preformat"> … … 352 352 353 353 <h4>Version</h4><div class="preformat"> 354 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$354 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 355 355 </div> 356 356 <h4>History</h4><div class="preformat"> … … 483 483 484 484 <h4>Version</h4><div class="preformat"> 485 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$485 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 486 486 </div> 487 487 <h4>History</h4><div class="preformat"> … … 686 686 687 687 <h4>Version</h4><div class="preformat"> 688 $Id: checkfield.pro 3 27 2007-12-13 16:22:35Z pinsard$688 $Id: checkfield.pro 360 2008-06-06 13:43:54Z smasson $ 689 689 </div> 690 690 <h4>History</h4><div class="preformat"> … … 713 713 <h3>Statistics</h3> 714 714 <table class="statistics"> 715 <tr><td>McCabe cyclic</td><td> 12 0</td></tr>715 <tr><td>McCabe cyclic</td><td> 121</td></tr> 716 716 <tr><td>McCabe essential</td><td> 1</td></tr> 717 717 <tr><td>McCabe modular design</td><td> 1</td></tr> -
trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/PLOTS/legende.html
r338 r363 303 303 304 304 <h4>Version</h4><div class="preformat"> 305 $Id: legende.pro 3 27 2007-12-13 16:22:35Z pinsard$305 $Id: legende.pro 344 2008-04-15 11:05:43Z smasson $ 306 306 </div> 307 307 <h4>History</h4><div class="preformat"> … … 333 333 <h3>Statistics</h3> 334 334 <table class="statistics"> 335 <tr><td>McCabe cyclic</td><td> 6 7</td></tr>335 <tr><td>McCabe cyclic</td><td> 65</td></tr> 336 336 <tr><td>McCabe essential</td><td> 1</td></tr> 337 337 <tr><td>McCabe modular design</td><td> 1</td></tr> -
trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STATISTICS/a_timecorrelate.html
r338 r363 232 232 233 233 <h4>Version</h4><div class="preformat"> 234 $Id: a_timecorrelate.pro 3 35 2008-03-07 15:09:25Z smasson $234 $Id: a_timecorrelate.pro 342 2008-03-28 16:08:47Z smasson $ 235 235 </div> 236 236 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/ToBeReviewed/STRING/getfile.html
r338 r363 107 107 108 108 <p class="header"> 109 <span class="result">result = </span>getfile(<span class="result"><a href="#_getfile_param_filein">filein</a></span>, <a href="#_getfile_keyword_ error">error</a>=<span class="result">error</span>, <a href="#_getfile_keyword_HELP">HELP</a>=<span class="result">HELP</span>, <a href="#_getfile_keyword_QUIET">QUIET</a>=<span class="result">QUIET</span>, <a href="#_getfile_keyword_LINES">LINES</a>=<span class="result">LINES</span>, <a href="#_getfile_keyword_FIND">FIND</a>=<span class="result">FIND</span>)</p>109 <span class="result">result = </span>getfile(<span class="result"><a href="#_getfile_param_filein">filein</a></span>, <a href="#_getfile_keyword_ERROR">ERROR</a>=<span class="result">ERROR</span>, <a href="#_getfile_keyword_HELP">HELP</a>=<span class="result">HELP</span>, <a href="#_getfile_keyword_QUIET">QUIET</a>=<span class="result">QUIET</span>, <a href="#_getfile_keyword_LINES">LINES</a>=<span class="result">LINES</span>, <a href="#_getfile_keyword_FIND">FIND</a>=<span class="result">FIND</span>)</p> 110 110 111 111 <div class="comments"> … … 141 141 <h3>Keywords</h3> 142 142 143 <h4 id="_getfile_keyword_ error">error 143 <h4 id="_getfile_keyword_ERROR">ERROR 144 144 145 145 … … 225 225 226 226 <h4>Version</h4><div class="preformat"> 227 $Id: getfile.pro 3 27 2007-12-13 16:22:35Z pinsard $227 $Id: getfile.pro 358 2008-04-28 09:41:14Z pinsard $ 228 228 </div> 229 229 <h4>History</h4><div class="preformat"> -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-D.html
r338 r363 283 283 <dd>a keyword from the routine neighbor</dd> 284 284 285 <dt><a href="./Picture/showimage.html#_showimage">DITHER</a></dt> 286 <dd>a keyword from the routine showimage</dd> 287 288 <dt><a href="./Picture/imdisp.html#_imdisp">DITHER</a></dt> 289 <dd>a keyword from the routine imdisp</dd> 290 285 291 <dt><a href="./Picture/saveimage.html#_saveimage">DITHER</a></dt> 286 292 <dd>a keyword from the routine saveimage</dd> 287 293 288 <dt><a href="./Picture/imdisp.html#_imdisp">DITHER</a></dt>289 <dd>a keyword from the routine imdisp</dd>290 291 <dt><a href="./Picture/showimage.html#_showimage">DITHER</a></dt>292 <dd>a keyword from the routine showimage</dd>293 294 294 <dt><a href="./Colors/colorbar.html#_colorbar">DIVISIONS</a></dt> 295 295 <dd>a keyword from the routine colorbar</dd> 296 296 297 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html#_barrecouleur">DIVISIONS</a></dt> 298 <dd>a keyword from the routine barrecouleur</dd> 299 297 300 <dt><a href="./ReadWrite/write_ncdf.html#_writenc_unlimdim_update">DNAMAU</a></dt> 298 301 <dd>a keyword from the routine writenc_unlimdim_update</dd> … … 304 307 <dd>a keyword from the routine velovect</dd> 305 308 309 <dt><a href="./Obsolete/meshlec.html#_meshlec">DOUBLE</a></dt> 310 <dd>a keyword from the routine meshlec</dd> 311 312 <dt><a href="./Interpolation/square2quadrilateral.html#_square2quadrilateral">DOUBLE</a></dt> 313 <dd>a keyword from the routine square2quadrilateral</dd> 314 315 <dt><a href="./ToBeReviewed/STATISTICS/skewness_4d.html#_skewness_4d">DOUBLE</a></dt> 316 <dd>a keyword from the routine skewness_4d</dd> 317 318 <dt><a href="./Interpolation/quadrilateral2square.html#_quadrilateral2square">DOUBLE</a></dt> 319 <dd>a keyword from the routine quadrilateral2square</dd> 320 321 <dt><a href="./Interpolation/inquad.html#_inquad">DOUBLE</a></dt> 322 <dd>a keyword from the routine inquad</dd> 323 324 <dt><a href="./Interpolation/get_gridparams.html#_get_gridparams">DOUBLE</a></dt> 325 <dd>a keyword from the routine get_gridparams</dd> 326 327 <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html#_a_correlate2d">DOUBLE</a></dt> 328 <dd>a keyword from the routine a_correlate2d</dd> 329 330 <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html#_auto_cov2d">DOUBLE</a></dt> 331 <dd>a keyword from the routine auto_cov2d</dd> 332 333 <dt><a href="./Matrix/cmapply.html#_cmapply">DOUBLE</a></dt> 334 <dd>a keyword from the routine cmapply</dd> 335 336 <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html#_timecross_cov">DOUBLE</a></dt> 337 <dd>a keyword from the routine timecross_cov</dd> 338 306 339 <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html#_c_timecorrelate">DOUBLE</a></dt> 307 340 <dd>a keyword from the routine c_timecorrelate</dd> 308 341 309 <dt><a href="./Obsolete/meshlec.html#_meshlec">DOUBLE</a></dt>310 <dd>a keyword from the routine meshlec</dd>311 312 <dt><a href="./Interpolation/square2quadrilateral.html#_square2quadrilateral">DOUBLE</a></dt>313 <dd>a keyword from the routine square2quadrilateral</dd>314 315 <dt><a href="./ToBeReviewed/STATISTICS/skewness_4d.html#_skewness_4d">DOUBLE</a></dt>316 <dd>a keyword from the routine skewness_4d</dd>317 318 <dt><a href="./Interpolation/quadrilateral2square.html#_quadrilateral2square">DOUBLE</a></dt>319 <dd>a keyword from the routine quadrilateral2square</dd>320 321 <dt><a href="./Interpolation/inquad.html#_inquad">DOUBLE</a></dt>322 <dd>a keyword from the routine inquad</dd>323 324 <dt><a href="./Interpolation/get_gridparams.html#_get_gridparams">DOUBLE</a></dt>325 <dd>a keyword from the routine get_gridparams</dd>326 327 <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html#_a_correlate2d">DOUBLE</a></dt>328 <dd>a keyword from the routine a_correlate2d</dd>329 330 <dt><a href="./ToBeReviewed/STATISTICS/a_correlate2d.html#_auto_cov2d">DOUBLE</a></dt>331 <dd>a keyword from the routine auto_cov2d</dd>332 333 <dt><a href="./Matrix/cmapply.html#_cmapply">DOUBLE</a></dt>334 <dd>a keyword from the routine cmapply</dd>335 336 <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html#_timecross_cov">DOUBLE</a></dt>337 <dd>a keyword from the routine timecross_cov</dd>338 339 342 <dt><a href="./ReadWrite/ncdf_getatt.html#_ncdf_getatt">DOUBLE</a></dt> 340 343 <dd>a keyword from the routine ncdf_getatt</dd> … … 409 412 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd> 410 413 414 <dt><a href="./Obsolete/lect.html#_lect">date1</a></dt> 415 <dd>a parameter from the routine ./Obsolete/lect</dd> 416 417 <dt><a href="./Obsolete/nlecserie.html#_nlecserie">date1</a></dt> 418 <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 419 411 420 <dt><a href="./ReadWrite/read_grads.html#_read_grads">date1</a></dt> 412 421 <dd>a parameter from the routine ./ReadWrite/read_grads</dd> 413 422 414 <dt><a href="./Obsolete/nlecserie.html#_nlecserie">date1</a></dt>415 <dd>a parameter from the routine ./Obsolete/nlecserie</dd>416 417 <dt><a href="./Obsolete/lect.html#_lect">date1</a></dt>418 <dd>a parameter from the routine ./Obsolete/lect</dd>419 420 423 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib.html#_read_grib">date1</a></dt> 421 424 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib</dd> 422 425 426 <dt><a href="./Obsolete/nlecserie.html#_nlecserie">date2</a></dt> 427 <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 428 429 <dt><a href="./ReadWrite/read_grads.html#_read_grads">date2</a></dt> 430 <dd>a parameter from the routine ./ReadWrite/read_grads</dd> 431 432 <dt><a href="./Obsolete/lect.html#_lect">date2</a></dt> 433 <dd>a parameter from the routine ./Obsolete/lect</dd> 434 423 435 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib.html#_read_grib">date2</a></dt> 424 436 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib</dd> 425 437 426 <dt><a href="./ReadWrite/read_grads.html#_read_grads">date2</a></dt>427 <dd>a parameter from the routine ./ReadWrite/read_grads</dd>428 429 <dt><a href="./Obsolete/lect.html#_lect">date2</a></dt>430 <dd>a parameter from the routine ./Obsolete/lect</dd>431 432 <dt><a href="./Obsolete/nlecserie.html#_nlecserie">date2</a></dt>433 <dd>a parameter from the routine ./Obsolete/nlecserie</dd>434 435 438 <dt><a href="./Calendar/date2jul.html#_date2jul">date2jul</a></dt> 436 439 <dd>a function from the file date2jul.pro</dd> … … 451 454 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd> 452 455 456 <dt><a href="./Calendar/caldat.html#_caldat">day</a></dt> 457 <dd>a parameter from the routine ./Calendar/caldat</dd> 458 453 459 <dt><a href="./Calendar/julday.html#_julday">day</a></dt> 454 460 <dd>a parameter from the routine ./Calendar/julday</dd> 455 461 456 <dt><a href="./Calendar/caldat.html#_caldat">day</a></dt>457 <dd>a parameter from the routine ./Calendar/caldat</dd>458 459 462 <dt><a href="./Calendar/daysinmonth.html#_daysinmonth">daysinmonth</a></dt> 460 463 <dd>a function from the file daysinmonth.pro</dd> … … 592 595 <dd>a parameter from the routine ./Obsolete/fictype</dd> 593 596 597 <dt><a href="./Matrix/cmapply.html#_cmapply_redim">dimapply</a></dt> 598 <dd>a parameter from the routine ./Matrix/cmapply</dd> 599 594 600 <dt><a href="./Matrix/cmapply.html#_cmapply">dimapply</a></dt> 595 601 <dd>a parameter from the routine ./Matrix/cmapply</dd> 596 602 597 <dt><a href="./Matrix/cmapply.html#_cmapply_redim">dimapply</a></dt>598 <dd>a parameter from the routine ./Matrix/cmapply</dd>599 600 603 <dt><a href="./ReadWrite/ncdf_getaxis.html#_ncdf_getaxis">dimidx</a></dt> 601 604 <dd>a parameter from the routine ./ReadWrite/ncdf_getaxis</dd> … … 619 622 <dd>a parameter from the routine ./Obsolete/lect</dd> 620 623 624 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">direc</a></dt> 625 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd> 626 621 627 <dt><a href="./Computation/grad.html#_grad">direc</a></dt> 622 628 <dd>a parameter from the routine ./Computation/grad</dd> … … 625 631 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grossemoyenne</dd> 626 632 627 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">direc</a></dt>628 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd>629 630 633 <dt><a href="./Utilities/isadirectory.html#_isadirectory">directoryin</a></dt> 631 634 <dd>a parameter from the routine ./Utilities/isadirectory</dd> … … 637 640 <dd>a file from the directory ./Computation</dd> 638 641 639 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html#_barrecouleur">divisions</a></dt>640 <dd>a keyword from the routine barrecouleur</dd>641 642 642 <dt><a href="./ReadWrite/write_ncdf.html#_writenc_unlimdim_update">dnames_imposed</a></dt> 643 643 <dd>a parameter from the routine ./ReadWrite/write_ncdf</dd> -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-E.html
r338 r363 190 190 <dd>a keyword from the routine write_oasis</dd> 191 191 192 <dt><a href="./Interpolation/cutpar.html#_cutpar">ENDPOINTS</a></dt> 193 <dd>a keyword from the routine cutpar</dd> 194 195 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">ENDPOINTS</a></dt> 196 <dd>a keyword from the routine plt1d</dd> 197 198 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">ENDPOINTS</a></dt> 199 <dd>a keyword from the routine pltt</dd> 200 201 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">ENDPOINTS</a></dt> 202 <dd>a keyword from the routine pltz</dd> 203 192 204 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html#_placedessin">ENDPOINTS</a></dt> 193 205 <dd>a keyword from the routine placedessin</dd> … … 199 211 <dd>a keyword from the routine domdef</dd> 200 212 201 <dt><a href="./Interpolation/cutpar.html#_cutpar">ENDPOINTS</a></dt>202 <dd>a keyword from the routine cutpar</dd>203 204 213 <dt><a href="./ToBeReviewed/TRIANGULATION/section.html#_section">ENDPOINTS</a></dt> 205 214 <dd>a keyword from the routine section</dd> 206 215 207 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">ENDPOINTS</a></dt>208 <dd>a keyword from the routine plt1d</dd>209 210 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">ENDPOINTS</a></dt>211 <dd>a keyword from the routine pltt</dd>212 213 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">ENDPOINTS</a></dt>214 <dd>a keyword from the routine pltz</dd>215 216 216 <dt><a href="./Interpolation/cutsegment.html#_cutsegment">ENDPOINTS</a></dt> 217 217 <dd>a keyword from the routine cutsegment</dd> … … 232 232 <dd>a keyword from the routine putfile</dd> 233 233 234 <dt><a href="./ToBeReviewed/STRING/getfile.html#_getfile">ERROR</a></dt> 235 <dd>a keyword from the routine getfile</dd> 236 234 237 <dt><a href="./ReadWrite/readoldoparestart.html#_readoldoparestart">ETAB</a></dt> 235 238 <dd>a keyword from the routine readoldoparestart</dd> … … 301 304 <dd>a function from the file fitintobox.pro</dd> 302 305 303 <dt><a href="./ToBeReviewed/STRING/getfile.html#_getfile">error</a></dt>304 <dd>a keyword from the routine getfile</dd>305 306 306 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html#_cw_bgroup_event">ev</a></dt> 307 307 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd> -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-GH.html
r338 r363 388 388 table.variables td.image { width: 64px; } 389 389 390 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; 390 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; 391 391 margin: 2em; 392 392 font-size: 80%; -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-I.html
r321 r363 295 295 <dd>a keyword from the routine grossemoyenne</dd> 296 296 297 <dt><a href="./Picture/imdisp.html#_imdisp_imregrid">INTERP</a></dt> 298 <dd>a keyword from the routine imdisp_imregrid</dd> 299 297 300 <dt><a href="./Picture/imdisp.html#_imdisp">INTERP</a></dt> 298 301 <dd>a keyword from the routine imdisp</dd> 299 302 300 <dt><a href="./Picture/imdisp.html#_imdisp_imregrid">INTERP</a></dt> 301 <dd>a keyword from the routine imdisp_imregrid</dd> 303 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">INTERVALLE</a></dt> 304 <dd>a keyword from the routine label</dd> 305 306 <dt><a href="./ToBeReviewed/PLOTS/legende.html#_legende">INTERVALLE</a></dt> 307 <dd>a keyword from the routine legende</dd> 308 309 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">INTERVALLE</a></dt> 310 <dd>a keyword from the routine pltz</dd> 302 311 303 312 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">INTERVALLE</a></dt> 304 313 <dd>a keyword from the routine pltt</dd> 305 314 315 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">INTERVALLE</a></dt> 316 <dd>a keyword from the routine plt</dd> 317 306 318 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">INTERVALLE</a></dt> 307 319 <dd>a keyword from the routine determineminmax</dd> 308 320 309 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">INTERVALLE</a></dt> 310 <dd>a keyword from the routine pltz</dd> 311 312 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">INTERVALLE</a></dt> 313 <dd>a keyword from the routine label</dd> 314 315 <dt><a href="./ToBeReviewed/PLOTS/legende.html#_legende">INTERVALLE</a></dt> 316 <dd>a keyword from the routine legende</dd> 317 318 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">INTERVALLE</a></dt> 319 <dd>a keyword from the routine plt</dd> 321 <dt><a href="./Interpolation/file_interp.html#_file_interp">INTESTOP</a></dt> 322 <dd>a keyword from the routine file_interp</dd> 320 323 321 324 <dt><a href="./Interpolation/file_interp.html#_file_interp">INUSEASMASK</a></dt> 322 325 <dd>a keyword from the routine file_interp</dd> 323 326 327 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">INV</a></dt> 328 <dd>a keyword from the routine pltt</dd> 329 324 330 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">INV</a></dt> 325 331 <dd>a keyword from the routine pltz</dd> 326 332 333 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">INV</a></dt> 334 <dd>a keyword from the routine plt</dd> 335 327 336 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html#_pltv">INV</a></dt> 328 337 <dd>a keyword from the routine pltv</dd> 329 338 330 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">INV</a></dt>331 <dd>a keyword from the routine plt</dd>332 333 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">INV</a></dt>334 <dd>a keyword from the routine pltt</dd>335 336 339 <dt><a href="./ToBeReviewed/PLOTS/reinitplt.html#_reinitplt">INVERT</a></dt> 337 340 <dd>a keyword from the routine reinitplt</dd> … … 349 352 <dd>a keyword from the routine xncdf_lec</dd> 350 353 354 <dt><a href="./Grid/smallmeshmask.html#_smallmeshmask">IODIR</a></dt> 355 <dd>a keyword from the routine smallmeshmask</dd> 356 357 <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html#_ncdf_lec">IODIR</a></dt> 358 <dd>a keyword from the routine ncdf_lec</dd> 359 351 360 <dt><a href="./Grid/micromeshmask.html#_micromeshmask">IODIR</a></dt> 352 361 <dd>a keyword from the routine micromeshmask</dd> 353 362 354 <dt><a href="./Grid/smallmeshmask.html#_smallmeshmask">IODIR</a></dt> 355 <dd>a keyword from the routine smallmeshmask</dd> 356 357 <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html#_ncdf_lec">IODIR</a></dt> 358 <dd>a keyword from the routine ncdf_lec</dd> 363 <dt><a href="./Utilities/isadirectory.html#_isadirectory">IODIRECTORY</a></dt> 364 <dd>a keyword from the routine isadirectory</dd> 365 366 <dt><a href="./Utilities/isafile.html#_isafile">IODIRECTORY</a></dt> 367 <dd>a keyword from the routine isafile</dd> 368 369 <dt><a href="./Interpolation/angle.html#_angle">IODIRECTORY</a></dt> 370 <dd>a keyword from the routine angle</dd> 359 371 360 372 <dt><a href="./Utilities/find.html#_find">IODIRECTORY</a></dt> 361 373 <dd>a keyword from the routine find</dd> 362 374 363 <dt><a href="./Utilities/isafile.html#_isafile">IODIRECTORY</a></dt>364 <dd>a keyword from the routine isafile</dd>365 366 <dt><a href="./Interpolation/angle.html#_angle">IODIRECTORY</a></dt>367 <dd>a keyword from the routine angle</dd>368 369 <dt><a href="./Utilities/isadirectory.html#_isadirectory">IODIRECTORY</a></dt>370 <dd>a keyword from the routine isadirectory</dd>371 372 375 <dt><a href="./ToBeReviewed/STRUCTURE/where_tag.html#_where_tag">ISELECT</a></dt> 373 376 <dd>a keyword from the routine where_tag</dd> … … 379 382 <dd>a parameter from the routine ./Textoidl/matchdelim</dd> 380 383 384 <dt><a href="./Textoidl/strtrans.html#_strtrans">InputString</a></dt> 385 <dd>a parameter from the routine ./Textoidl/strtrans</dd> 386 387 <dt><a href="./Textoidl/textoidl.html#_textoidl">InputString</a></dt> 388 <dd>a parameter from the routine ./Textoidl/textoidl</dd> 389 381 390 <dt><a href="./Textoidl/translate_sub_super.html#_translate_sub_super">InputString</a></dt> 382 391 <dd>a parameter from the routine ./Textoidl/translate_sub_super</dd> 383 392 384 <dt><a href="./Textoidl/textoidl.html#_textoidl">InputString</a></dt>385 <dd>a parameter from the routine ./Textoidl/textoidl</dd>386 387 <dt><a href="./Textoidl/strtrans.html#_strtrans">InputString</a></dt>388 <dd>a parameter from the routine ./Textoidl/strtrans</dd>389 390 393 <dt><a href="./Colors/xlct.html#_xlct_draw_cps">i</a></dt> 391 394 <dd>a parameter from the routine ./Colors/xlct</dd> 392 395 396 <dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html#_cw_selectinterval_get_value">id</a></dt> 397 <dd>a parameter from the routine ./ToBeReviewed/HOPE/cw_selectinterval</dd> 398 399 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html#_cw_specifie_get_value">id</a></dt> 400 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie</dd> 401 402 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html#_cw_specifie_set_value">id</a></dt> 403 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie</dd> 404 405 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html#_cw_slider_pm_get_value">id</a></dt> 406 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd> 407 408 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html#_cw_slider_pm_set_value">id</a></dt> 409 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd> 410 411 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html#_cw_slide_slice_set_value">id</a></dt> 412 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice</dd> 413 414 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html#_cw_droplist_pm_get_value">id</a></dt> 415 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd> 416 417 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html#_cw_droplist_pm_set_value">id</a></dt> 418 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd> 419 420 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html#_cw_domain_get_value">id</a></dt> 421 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd> 422 423 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html#_cw_domain_set_value">id</a></dt> 424 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd> 425 426 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html#_cw_combobox_pm_get_value">id</a></dt> 427 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd> 428 429 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html#_cw_combobox_pm_set_value">id</a></dt> 430 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd> 431 432 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html#_get_cal_value">id</a></dt> 433 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd> 434 393 435 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html#_cw_calendar_get_value">id</a></dt> 394 436 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd> 395 437 396 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html#_cw_slider_pm_set_value">id</a></dt>397 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd>398 399 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.html#_cw_slide_slice_set_value">id</a></dt>400 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice</dd>401 402 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html#_cw_slider_pm_get_value">id</a></dt>403 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm</dd>404 405 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html#_cw_droplist_pm_get_value">id</a></dt>406 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd>407 408 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html#_cw_specifie_set_value">id</a></dt>409 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie</dd>410 411 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm.html#_cw_droplist_pm_set_value">id</a></dt>412 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_droplist_pm</dd>413 414 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie.html#_cw_specifie_get_value">id</a></dt>415 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_specifie</dd>416 417 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html#_cw_domain_get_value">id</a></dt>418 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd>419 420 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain.html#_cw_domain_set_value">id</a></dt>421 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_domain</dd>422 423 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html#_cw_combobox_pm_get_value">id</a></dt>424 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd>425 426 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm.html#_cw_combobox_pm_set_value">id</a></dt>427 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_combobox_pm</dd>428 429 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html#_get_cal_value">id</a></dt>430 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd>431 432 438 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar.html#_cw_calendar_set_value">id</a></dt> 433 439 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_calendar</dd> 434 440 441 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html#_cw_bgroup_getv">id</a></dt> 442 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd> 443 435 444 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html#_cw_bgroup_setv">id</a></dt> 436 445 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd> 437 446 438 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html#_cw_bgroup_getv">id</a></dt>439 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup</dd>440 441 <dt><a href="./ToBeReviewed/HOPE/cw_selectinterval.html#_cw_selectinterval_get_value">id</a></dt>442 <dd>a parameter from the routine ./ToBeReviewed/HOPE/cw_selectinterval</dd>443 444 447 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/identifyclick.html#_identifyclick">identifyclick</a></dt> 445 448 <dd>a function from the file identifyclick.pro</dd> … … 448 451 <dd>a file from the directory ./ToBeReviewed/WIDGET/AUTOUR_de_XXX</dd> 449 452 453 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html#_selectfile">idlfile</a></dt> 454 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile</dd> 455 450 456 <dt><a href="./ToBeReviewed/WIDGET/xxx.html#_xxx">idlfile</a></dt> 451 457 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/xxx</dd> 452 458 453 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile.html#_selectfile">idlfile</a></dt>454 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/selectfile</dd>455 456 459 <dt><a href="./ReadWrite/write_ncdf.html#_writenc_unlimdim_update">iid</a></dt> 457 460 <dd>a parameter from the routine ./ReadWrite/write_ncdf</dd> … … 577 580 <dd>a parameter from the routine ./Interpolation/get_gridparams</dd> 578 581 582 <dt><a href="./Colors/getcolor.html#_getcolor">index</a></dt> 583 <dd>a parameter from the routine ./Colors/getcolor</dd> 584 579 585 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_numtri">index</a></dt> 580 586 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd> 581 587 588 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html#_label_date">index</a></dt> 589 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_date</dd> 590 582 591 <dt><a href="./ToBeReviewed/PLOTS/LABEL/lataxe.html#_lataxe">index</a></dt> 583 592 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/lataxe</dd> 584 593 585 <dt><a href="./Colors/getcolor.html#_getcolor">index</a></dt>586 <dd>a parameter from the routine ./Colors/getcolor</dd>587 588 594 <dt><a href="./ToBeReviewed/PLOTS/LABEL/lonaxe.html#_lonaxe">index</a></dt> 589 595 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/lonaxe</dd> 590 596 591 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html#_label_date">index</a></dt>592 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_date</dd>593 594 597 <dt><a href="./Matrix/extrac2.html#_extrac2">index1</a></dt> 595 598 <dd>a parameter from the routine ./Matrix/extrac2</dd> … … 664 667 <dd>a parameter from the routine ./Interpolation/file_interp</dd> 665 668 669 <dt><a href="./Grid/smallmeshmask.html#_ncdf_transfer">inname</a></dt> 670 <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 671 666 672 <dt><a href="./Grid/micromeshmask.html#_ncdf_transfer">inname</a></dt> 667 673 <dd>a parameter from the routine ./Grid/micromeshmask</dd> 668 674 669 <dt><a href="./ Grid/smallmeshmask.html#_ncdf_transfer">inname</a></dt>670 <dd>a parameter from the routine ./ Grid/smallmeshmask</dd>675 <dt><a href="./ToBeReviewed/STRING/tostr.html#_tostr">input</a></dt> 676 <dd>a parameter from the routine ./ToBeReviewed/STRING/tostr</dd> 671 677 672 678 <dt><a href="./ReadWrite/idl-NetCDF/ncdf_listvars.html#_ncdf_listvars">input</a></dt> 673 679 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_listvars</dd> 674 680 675 <dt><a href="./ToBeReviewed/STRING/tostr.html#_tostr">input</a></dt>676 <dd>a parameter from the routine ./ToBeReviewed/STRING/tostr</dd>677 678 681 <dt><a href="./Interpolation/inquad.html#_inquad">inquad</a></dt> 679 682 <dd>a function from the file inquad.pro</dd> -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-M.html
r338 r363 175 175 <dd>a keyword from the routine strsci</dd> 176 176 177 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html#_placedessin">MAP</a></dt> 178 <dd>a keyword from the routine placedessin</dd> 179 180 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">MAP</a></dt> 181 <dd>a keyword from the routine plt</dd> 182 177 183 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_bgroup.html#_cw_bgroup">MAP</a></dt> 178 184 <dd>a keyword from the routine cw_bgroup</dd> 179 185 180 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">MAP</a></dt>181 <dd>a keyword from the routine plt</dd>182 183 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html#_placedessin">MAP</a></dt>184 <dd>a keyword from the routine placedessin</dd>185 186 186 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html#_placedessin">MARGES</a></dt> 187 187 <dd>a keyword from the routine placedessin</dd> … … 232 232 <dd>a keyword from the routine pltv</dd> 233 233 234 <dt><a href="./Colors/colorbar.html#_colorbar">MAX</a></dt> 235 <dd>a keyword from the routine colorbar</dd> 236 237 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html#_barrecouleur">MAX</a></dt> 238 <dd>a keyword from the routine barrecouleur</dd> 239 240 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html#_checktypeminmax">MAX</a></dt> 241 <dd>a keyword from the routine checktypeminmax</dd> 242 234 243 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html#_tvplus">MAX</a></dt> 235 244 <dd>a keyword from the routine tvplus</dd> 236 245 237 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html#_barrecouleur">MAX</a></dt>238 <dd>a keyword from the routine barrecouleur</dd>239 240 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html#_checktypeminmax">MAX</a></dt>241 <dd>a keyword from the routine checktypeminmax</dd>242 243 <dt><a href="./Colors/colorbar.html#_colorbar">MAX</a></dt>244 <dd>a keyword from the routine colorbar</dd>245 246 246 <dt><a href="./Matrix/cmset_op.html#_cmset_op">MAXARRAY</a></dt> 247 247 <dd>a keyword from the routine cmset_op</dd> … … 250 250 <dd>a keyword from the routine cw_slider_pm</dd> 251 251 252 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html#_pltv">MAXIN</a></dt> 253 <dd>a keyword from the routine pltv</dd> 254 255 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">MAXIN</a></dt> 256 <dd>a keyword from the routine determineminmax</dd> 257 252 258 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">MAXIN</a></dt> 253 259 <dd>a keyword from the routine pltz</dd> 254 260 261 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">MAXIN</a></dt> 262 <dd>a keyword from the routine pltt</dd> 263 264 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">MAXIN</a></dt> 265 <dd>a keyword from the routine plt1d</dd> 266 255 267 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">MAXIN</a></dt> 256 268 <dd>a keyword from the routine plt</dd> 257 269 258 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">MAXIN</a></dt> 259 <dd>a keyword from the routine plt1d</dd> 260 261 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">MAXIN</a></dt> 262 <dd>a keyword from the routine pltt</dd> 263 264 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html#_pltv">MAXIN</a></dt> 265 <dd>a keyword from the routine pltv</dd> 266 267 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">MAXIN</a></dt> 268 <dd>a keyword from the routine determineminmax</dd> 270 <dt><a href="./Interpolation/extrapolate.html#_extrapolate">MAXVAL</a></dt> 271 <dd>a keyword from the routine extrapolate</dd> 269 272 270 273 <dt><a href="./Interpolation/extrapsmooth.html#_extrapsmooth">MAXVAL</a></dt> 271 274 <dd>a keyword from the routine extrapsmooth</dd> 272 275 273 <dt><a href="./Interpolation/extrapolate.html#_extrapolate">MAXVAL</a></dt>274 <dd>a keyword from the routine extrapolate</dd>275 276 276 <dt><a href="./ToBeReviewed/STRUCTURE/struct2string.html#_struct2string">MAX_STRUCT_LENGTH</a></dt> 277 277 <dd>a keyword from the routine struct2string</dd> … … 286 286 <dd>a keyword from the routine xx</dd> 287 287 288 <dt><a href="./Interpolation/file_interp.html#_file_interp">METHOD</a></dt> 289 <dd>a keyword from the routine file_interp</dd> 290 288 291 <dt><a href="./Interpolation/file_interp.html#_call_interp2d">METHOD</a></dt> 289 292 <dd>a keyword from the routine call_interp2d</dd> 290 293 291 <dt><a href="./Interpolation/file_interp.html#_file_interp">METHOD</a></dt>292 <dd>a keyword from the routine file_interp</dd>293 294 294 <dt><a href="./Interpolation/map_npoints.html#_map_npoints">MIDDLE</a></dt> 295 295 <dd>a keyword from the routine map_npoints</dd> … … 304 304 <dd>a keyword from the routine div</dd> 305 305 306 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html#_checktypeminmax">MIN</a></dt> 307 <dd>a keyword from the routine checktypeminmax</dd> 308 309 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html#_barrecouleur">MIN</a></dt> 310 <dd>a keyword from the routine barrecouleur</dd> 311 312 <dt><a href="./Colors/colorbar.html#_colorbar">MIN</a></dt> 313 <dd>a keyword from the routine colorbar</dd> 314 306 315 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/tvplus.html#_tvplus">MIN</a></dt> 307 316 <dd>a keyword from the routine tvplus</dd> 308 317 309 <dt><a href="./Colors/colorbar.html#_colorbar">MIN</a></dt>310 <dd>a keyword from the routine colorbar</dd>311 312 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html#_checktypeminmax">MIN</a></dt>313 <dd>a keyword from the routine checktypeminmax</dd>314 315 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html#_barrecouleur">MIN</a></dt>316 <dd>a keyword from the routine barrecouleur</dd>317 318 318 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html#_cw_slider_pm">MINIMUM</a></dt> 319 319 <dd>a keyword from the routine cw_slider_pm</dd> 320 320 321 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">MININ</a></dt> 322 <dd>a keyword from the routine plt</dd> 323 324 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">MININ</a></dt> 325 <dd>a keyword from the routine plt1d</dd> 326 327 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">MININ</a></dt> 328 <dd>a keyword from the routine pltz</dd> 329 330 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">MININ</a></dt> 331 <dd>a keyword from the routine determineminmax</dd> 332 333 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html#_pltv">MININ</a></dt> 334 <dd>a keyword from the routine pltv</dd> 335 321 336 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">MININ</a></dt> 322 337 <dd>a keyword from the routine pltt</dd> 323 338 324 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">MININ</a></dt>325 <dd>a keyword from the routine pltz</dd>326 327 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html#_pltv">MININ</a></dt>328 <dd>a keyword from the routine pltv</dd>329 330 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">MININ</a></dt>331 <dd>a keyword from the routine plt1d</dd>332 333 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">MININ</a></dt>334 <dd>a keyword from the routine plt</dd>335 336 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">MININ</a></dt>337 <dd>a keyword from the routine determineminmax</dd>338 339 339 <dt><a href="./Calendar/date2jul.html#_date2jul">MINUTE</a></dt> 340 340 <dd>a keyword from the routine date2jul</dd> … … 355 355 <dd>a keyword from the routine velovect</dd> 356 356 357 <dt><a href="./Interpolation/file_interp.html#_file_interp">MISSING_VALUE</a></dt> 358 <dd>a keyword from the routine file_interp</dd> 359 360 <dt><a href="./Interpolation/file_interp.html#_call_interp2d">MISSING_VALUE</a></dt> 361 <dd>a keyword from the routine call_interp2d</dd> 362 363 <dt><a href="./ReadWrite/ncdf_getmask.html#_ncdf_getmask">MISSING_VALUE</a></dt> 364 <dd>a keyword from the routine ncdf_getmask</dd> 365 357 366 <dt><a href="./ReadWrite/ncdf_getatt.html#_ncdf_getatt">MISSING_VALUE</a></dt> 358 367 <dd>a keyword from the routine ncdf_getatt</dd> 359 368 360 <dt><a href="./ReadWrite/ncdf_getmask.html#_ncdf_getmask">MISSING_VALUE</a></dt>361 <dd>a keyword from the routine ncdf_getmask</dd>362 363 369 <dt><a href="./Colors/xlct.html#_xlct">MODAL</a></dt> 364 370 <dd>a keyword from the routine xlct</dd> … … 382 388 <dd>a keyword from the routine saveimage</dd> 383 389 390 <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html#_timeauto_cov">m</a></dt> 391 <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate</dd> 392 384 393 <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html#_timecross_cov">m</a></dt> 385 394 <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate</dd> 386 395 387 <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html#_timeauto_cov">m</a></dt>388 <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate</dd>389 390 396 <dt><a href="./ToBeReviewed/PLOTS/legende.html#_legende">ma</a></dt> 391 397 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/legende</dd> … … 409 415 <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/calibre</dd> 410 416 417 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html#_axis4pltz">mask</a></dt> 418 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd> 419 420 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html#_drawcoast_e">mask</a></dt> 421 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_e</dd> 422 411 423 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">mask</a></dt> 412 424 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd> 413 425 414 <dt><a href="./ToBeReviewed/ TRIANGULATION/drawcoast_e.html#_drawcoast_e">mask</a></dt>415 <dd>a parameter from the routine ./ToBeReviewed/ TRIANGULATION/drawcoast_e</dd>426 <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html#_decoupeterre">mask</a></dt> 427 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd> 416 428 417 429 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html#_drawcoast_c">mask</a></dt> 418 430 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_c</dd> 419 431 432 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">mask</a></dt> 433 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd> 434 420 435 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html#_pltbase">mask</a></dt> 421 436 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltbase</dd> 422 437 423 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html#_axis4pltz">mask</a></dt>424 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd>425 426 <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html#_decoupeterre">mask</a></dt>427 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/decoupeterre</dd>428 429 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">mask</a></dt>430 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd>431 432 438 <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_e.html#_triangule_e">maskentree</a></dt> 433 439 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule_e</dd> 434 440 441 <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html#_triangule">maskentree</a></dt> 442 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule</dd> 443 444 <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html#_tracemask">maskentree</a></dt> 445 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/tracemask</dd> 446 435 447 <dt><a href="./ToBeReviewed/TRIANGULATION/triangule_c.html#_triangule_c">maskentree</a></dt> 436 448 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule_c</dd> 437 449 438 <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html#_tracemask">maskentree</a></dt>439 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/tracemask</dd>440 441 <dt><a href="./ToBeReviewed/TRIANGULATION/triangule.html#_triangule">maskentree</a></dt>442 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/triangule</dd>443 444 450 <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html#_drawsectionbottom">maskin</a></dt> 445 451 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawsectionbottom</dd> … … 454 460 <dd>a file from the directory ./Textoidl</dd> 455 461 462 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">max</a></dt> 463 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd> 464 456 465 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html#_autoscale">max</a></dt> 457 466 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/autoscale</dd> … … 463 472 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd> 464 473 465 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">max</a></dt>466 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd>467 468 474 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html#_pltsc">max1</a></dt> 469 475 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltsc</dd> … … 493 499 <dd>a file from the directory ./Obsolete</dd> 494 500 501 <dt><a href="./Interpolation/fromreg.html#_fromreg">method</a></dt> 502 <dd>a parameter from the routine ./Interpolation/fromreg</dd> 503 495 504 <dt><a href="./Interpolation/fromirr.html#_fromirr">method</a></dt> 496 505 <dd>a parameter from the routine ./Interpolation/fromirr</dd> 497 506 498 <dt><a href="./Interpolation/fromreg.html#_fromreg">method</a></dt>499 <dd>a parameter from the routine ./Interpolation/fromreg</dd>500 501 507 <dt><a href="./ToBeReviewed/PLOTS/legende.html#_legende">mi</a></dt> 502 508 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/legende</dd> … … 508 514 <dd>a file from the directory ./Grid</dd> 509 515 516 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">min</a></dt> 517 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd> 518 519 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html#_autoscale">min</a></dt> 520 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/autoscale</dd> 521 522 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html#_label_gmt">min</a></dt> 523 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd> 524 510 525 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltv.html#_pltv">min</a></dt> 511 526 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltv</dd> 512 527 513 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/autoscale.html#_autoscale">min</a></dt>514 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/autoscale</dd>515 516 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html#_label_gmt">min</a></dt>517 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd>518 519 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">min</a></dt>520 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd>521 522 528 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html#_pltsc">min1</a></dt> 523 529 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltsc</dd> … … 541 547 <dd>a parameter from the routine ./Obsolete/jourdsmois</dd> 542 548 549 <dt><a href="./Calendar/daysinmonth.html#_daysinmonth">month</a></dt> 550 <dd>a parameter from the routine ./Calendar/daysinmonth</dd> 551 543 552 <dt><a href="./Calendar/caldat.html#_caldat">month</a></dt> 544 553 <dd>a parameter from the routine ./Calendar/caldat</dd> 545 554 546 <dt><a href="./Calendar/daysinmonth.html#_daysinmonth">month</a></dt>547 <dd>a parameter from the routine ./Calendar/daysinmonth</dd>548 549 555 <dt><a href="./Calendar/monthname.html#_monthname">month</a></dt> 550 556 <dd>a parameter from the routine ./Calendar/monthname</dd> … … 568 574 <dd>a parameter from the routine ./Grid/numbisland</dd> 569 575 576 <dt><a href="./Interpolation/fromirr.html#_fromirr">mskin</a></dt> 577 <dd>a parameter from the routine ./Interpolation/fromirr</dd> 578 570 579 <dt><a href="./Grid/numbisland.html#_numbisland">mskin</a></dt> 571 580 <dd>a parameter from the routine ./Grid/numbisland</dd> … … 574 583 <dd>a parameter from the routine ./Interpolation/extrapsmooth</dd> 575 584 576 <dt><a href="./Interpolation/fromirr.html#_fromirr">mskin</a></dt>577 <dd>a parameter from the routine ./Interpolation/fromirr</dd>578 579 585 <dt><a href="./Grid/numbisland.html#_mskneig">mskneig</a></dt> 580 586 <dd>a procedure from the file numbisland.pro</dd> -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-N.html
r338 r363 172 172 <dl> 173 173 174 <dt><a href="./Obsolete/lec.html#_lec">NAME</a></dt> 175 <dd>a keyword from the routine lec</dd> 176 174 177 <dt><a href="./ToBeReviewed/LECTURE/litchamp.html#_litchamp">NAME</a></dt> 175 178 <dd>a keyword from the routine litchamp</dd> 176 179 177 <dt><a href="./Obsolete/lec.html#_lec">NAME</a></dt>178 <dd>a keyword from the routine lec</dd>179 180 180 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html#_buildreadcmd">NAMEFIELD</a></dt> 181 181 <dd>a keyword from the routine buildreadcmd</dd> … … 184 184 <dd>a keyword from the routine getcolor</dd> 185 185 186 <dt><a href="./ToBeReviewed/STATISTICS/skewness_4d.html#_Skewness_Num">NAN</a></dt> 187 <dd>a keyword from the routine Skewness_Num</dd> 188 186 189 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltbase.html#_pltbase">NAN</a></dt> 187 190 <dd>a keyword from the routine pltbase</dd> 188 191 192 <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html#_grossemoyenne">NAN</a></dt> 193 <dd>a keyword from the routine grossemoyenne</dd> 194 195 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">NAN</a></dt> 196 <dd>a keyword from the routine moyenne</dd> 197 198 <dt><a href="./ToBeReviewed/CALCULS/remplit.html#_remplit">NAN</a></dt> 199 <dd>a keyword from the routine remplit</dd> 200 201 <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html#_timeauto_cov">NAN</a></dt> 202 <dd>a keyword from the routine timeauto_cov</dd> 203 189 204 <dt><a href="./Obsolete/nlec.html#_nlec">NAN</a></dt> 190 205 <dd>a keyword from the routine nlec</dd> 191 206 192 <dt><a href="./ToBeReviewed/STATISTICS/skewness_4d.html#_Skewness_Num">NAN</a></dt>193 <dd>a keyword from the routine Skewness_Num</dd>194 195 <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html#_timeauto_cov">NAN</a></dt>196 <dd>a keyword from the routine timeauto_cov</dd>197 198 <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html#_grossemoyenne">NAN</a></dt>199 <dd>a keyword from the routine grossemoyenne</dd>200 201 <dt><a href="./ToBeReviewed/CALCULS/remplit.html#_remplit">NAN</a></dt>202 <dd>a keyword from the routine remplit</dd>203 204 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">NAN</a></dt>205 <dd>a keyword from the routine moyenne</dd>206 207 <dt><a href="./Interpolation/file_interp.html#_call_interp2d">NAN_VALUE</a></dt>208 <dd>a keyword from the routine call_interp2d</dd>209 210 <dt><a href="./Interpolation/file_interp.html#_file_interp">NAN_VALUE</a></dt>211 <dd>a keyword from the routine file_interp</dd>212 213 207 <dt><a href="./Obsolete/imprime.html#_imprime">NB</a></dt> 214 208 <dd>a keyword from the routine imprime</dd> … … 217 211 <dd>a keyword from the routine pltv</dd> 218 212 213 <dt><a href="./Picture/imdisp.html#_imdisp">NCOLORS</a></dt> 214 <dd>a keyword from the routine imdisp</dd> 215 219 216 <dt><a href="./Colors/colorbar.html#_colorbar">NCOLORS</a></dt> 220 217 <dd>a keyword from the routine colorbar</dd> 221 218 219 <dt><a href="./Picture/imdisp.html#_imdisp_imscale">NCOLORS</a></dt> 220 <dd>a keyword from the routine imdisp_imscale</dd> 221 222 222 <dt><a href="./Colors/xlct.html#_xlct">NCOLORS</a></dt> 223 223 <dd>a keyword from the routine xlct</dd> … … 226 226 <dd>a keyword from the routine tvplus</dd> 227 227 228 <dt><a href="./Picture/imdisp.html#_imdisp">NCOLORS</a></dt>229 <dd>a keyword from the routine imdisp</dd>230 231 <dt><a href="./Picture/imdisp.html#_imdisp_imscale">NCOLORS</a></dt>232 <dd>a keyword from the routine imdisp_imscale</dd>233 234 228 <dt><a href="./Calendar/caldat.html#_caldat">NDAYSPM</a></dt> 235 229 <dd>a keyword from the routine caldat</dd> … … 256 250 <dd>a keyword from the routine remplit</dd> 257 251 252 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">NLEVEL</a></dt> 253 <dd>a keyword from the routine pltt</dd> 254 258 255 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">NLEVEL</a></dt> 259 256 <dd>a keyword from the routine label</dd> 260 257 258 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">NLEVEL</a></dt> 259 <dd>a keyword from the routine pltz</dd> 260 261 261 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">NLEVEL</a></dt> 262 262 <dd>a keyword from the routine plt</dd> 263 263 264 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">NLEVEL</a></dt>265 <dd>a keyword from the routine pltt</dd>266 267 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">NLEVEL</a></dt>268 <dd>a keyword from the routine pltz</dd>269 270 264 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/updatewidget.html#_updatewidget">NOBOXZOOM</a></dt> 271 265 <dd>a keyword from the routine updatewidget</dd> … … 289 283 <dd>a keyword from the routine updatewidget</dd> 290 284 285 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">NODOMDEF</a></dt> 286 <dd>a keyword from the routine moyenne</dd> 287 291 288 <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html#_grossemoyenne">NODOMDEF</a></dt> 292 289 <dd>a keyword from the routine grossemoyenne</dd> 293 290 294 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">NODOMDEF</a></dt>295 <dd>a keyword from the routine moyenne</dd>296 297 291 <dt><a href="./buildinit.html#_cw_field2">NOEDIT</a></dt> 298 292 <dd>a keyword from the routine cw_field2</dd> … … 301 295 <dd>a keyword from the routine placedessin</dd> 302 296 297 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">NOFILL</a></dt> 298 <dd>a keyword from the routine plt</dd> 299 303 300 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html#_barrecouleur">NOFILL</a></dt> 304 301 <dd>a keyword from the routine barrecouleur</dd> … … 307 304 <dd>a keyword from the routine pltt</dd> 308 305 309 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">NOFILL</a></dt>310 <dd>a keyword from the routine plt</dd>311 312 306 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html#_placedessin">NOFILL</a></dt> 313 307 <dd>a keyword from the routine placedessin</dd> … … 331 325 <dd>a keyword from the routine depth2level</dd> 332 326 327 <dt><a href="./ToBeReviewed/CALCULS/level2depth.html#_level2depth">NOMASK</a></dt> 328 <dd>a keyword from the routine level2depth</dd> 329 333 330 <dt><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html#_depth2floatlevel">NOMASK</a></dt> 334 331 <dd>a keyword from the routine depth2floatlevel</dd> 335 332 336 <dt><a href="./ToBeReviewed/CALCULS/level2depth.html#_level2depth">NOMASK</a></dt>337 <dd>a keyword from the routine level2depth</dd>338 339 333 <dt><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html#_floatlevel2depth">NOMASK</a></dt> 340 334 <dd>a keyword from the routine floatlevel2depth</dd> … … 352 346 <dd>a keyword from the routine fromreg</dd> 353 347 348 <dt><a href="./Interpolation/inquad.html#_inquad">NOPRINT</a></dt> 349 <dd>a keyword from the routine inquad</dd> 350 354 351 <dt><a href="./ToBeReviewed/STRUCTURE/where_tag.html#_where_tag">NOPRINT</a></dt> 355 352 <dd>a keyword from the routine where_tag</dd> 356 353 357 <dt><a href="./Interpolation/inquad.html#_inquad">NOPRINT</a></dt>358 <dd>a keyword from the routine inquad</dd>359 360 354 <dt><a href="./Utilities/find.html#_find">NOPRO</a></dt> 361 355 <dd>a keyword from the routine find</dd> … … 367 361 <dd>a keyword from the routine splot</dd> 368 362 363 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html#_scontour">NOREINITPLT</a></dt> 364 <dd>a keyword from the routine scontour</dd> 365 369 366 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html#_sbar_plot">NOREINITPLT</a></dt> 370 367 <dd>a keyword from the routine sbar_plot</dd> 371 368 372 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/scontour.html#_scontour">NOREINITPLT</a></dt>373 <dd>a keyword from the routine scontour</dd>374 375 369 <dt><a href="./Picture/imdisp.html#_imdisp">NORESIZE</a></dt> 376 370 <dd>a keyword from the routine imdisp</dd> … … 382 376 <dd>a keyword from the routine imdisp</dd> 383 377 378 <dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html#_compute_fromreg_bilinear_weigaddr">NOSOUTHERNLINE</a></dt> 379 <dd>a keyword from the routine compute_fromreg_bilinear_weigaddr</dd> 380 381 <dt><a href="./Interpolation/fromreg.html#_fromreg">NOSOUTHERNLINE</a></dt> 382 <dd>a keyword from the routine fromreg</dd> 383 384 384 <dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html#_compute_fromreg_imoms3_weigaddr">NOSOUTHERNLINE</a></dt> 385 385 <dd>a keyword from the routine compute_fromreg_imoms3_weigaddr</dd> 386 386 387 <dt><a href="./Interpolation/fromreg.html#_fromreg">NOSOUTHERNLINE</a></dt>388 <dd>a keyword from the routine fromreg</dd>389 390 <dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html#_compute_fromreg_bilinear_weigaddr">NOSOUTHERNLINE</a></dt>391 <dd>a keyword from the routine compute_fromreg_bilinear_weigaddr</dd>392 393 387 <dt><a href="./ReadWrite/read_grads.html#_read_grads">NOSTRUCT</a></dt> 394 388 <dd>a keyword from the routine read_grads</dd> … … 451 445 <dd>a keyword from the routine readoldopadistcoast</dd> 452 446 447 <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html#_a_timecorrelate">NVAL</a></dt> 448 <dd>a keyword from the routine a_timecorrelate</dd> 449 453 450 <dt><a href="./ToBeReviewed/STATISTICS/skewness_4d.html#_skewness_4d">NVAL</a></dt> 454 451 <dd>a keyword from the routine skewness_4d</dd> 455 452 456 <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html#_a_timecorrelate">NVAL</a></dt>457 <dd>a keyword from the routine a_timecorrelate</dd>458 459 453 <dt><a href="./ToBeReviewed/STRING/getwrd.html#_getwrd">NWORDS</a></dt> 460 454 <dd>a keyword from the routine getwrd</dd> 461 455 456 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html#_rotation">NX</a></dt> 457 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation</dd> 458 462 459 <dt><a href="./Picture/imdisp.html#_imdisp_imregrid">NX</a></dt> 463 460 <dd>a parameter from the routine ./Picture/imdisp</dd> 464 461 465 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html#_rotation">NX</a></dt>466 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation</dd>467 468 462 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/rotation.html#_rotation">NY</a></dt> 469 463 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/rotation</dd> … … 481 475 <dd>a parameter from the routine ./Interpolation/cutpar</dd> 482 476 477 <dt><a href="./ToBeReviewed/POSTSCRIPT/chcolps.html#_chcolps">n1</a></dt> 478 <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/chcolps</dd> 479 480 <dt><a href="./Matrix/zero_one.html#_zero_one">n1</a></dt> 481 <dd>a parameter from the routine ./Matrix/zero_one</dd> 482 483 <dt><a href="./Obsolete/zeroun.html#_zeroun">n1</a></dt> 484 <dd>a parameter from the routine ./Obsolete/zeroun</dd> 485 483 486 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_1d">n1</a></dt> 484 487 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 485 488 486 <dt><a href="./Matrix/zero_one.html#_zero_one">n1</a></dt>487 <dd>a parameter from the routine ./Matrix/zero_one</dd>488 489 <dt><a href="./ToBeReviewed/POSTSCRIPT/chcolps.html#_chcolps">n1</a></dt>490 <dd>a parameter from the routine ./ToBeReviewed/POSTSCRIPT/chcolps</dd>491 492 <dt><a href="./Obsolete/zeroun.html#_zeroun">n1</a></dt>493 <dd>a parameter from the routine ./Obsolete/zeroun</dd>494 495 489 <dt><a href="./Grid/n128gaussian.html#_n128gaussian">n128gaussian</a></dt> 496 490 <dd>a function from the file n128gaussian.pro</dd> … … 505 499 <dd>a file from the directory ./Grid</dd> 506 500 501 <dt><a href="./Obsolete/zeroun.html#_zeroun">n2</a></dt> 502 <dd>a parameter from the routine ./Obsolete/zeroun</dd> 503 507 504 <dt><a href="./Matrix/zero_one.html#_zero_one">n2</a></dt> 508 505 <dd>a parameter from the routine ./Matrix/zero_one</dd> 509 506 510 <dt><a href="./Obsolete/zeroun.html#_zeroun">n2</a></dt>511 <dd>a parameter from the routine ./Obsolete/zeroun</dd>512 513 507 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_1d">n2</a></dt> 514 508 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> … … 538 532 <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/skewness_4d</dd> 539 533 534 <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html#_ncdf_quickwrite_typename">name</a></dt> 535 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd> 536 537 <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html#_read_ncdf">name</a></dt> 538 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ncdf</dd> 539 540 <dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html#_xncdf_lec">name</a></dt> 541 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/xncdf_lec</dd> 542 543 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html#_findline">name</a></dt> 544 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline</dd> 545 546 <dt><a href="./ToBeReviewed/WIDGET/slec.html#_slec">name</a></dt> 547 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd> 548 549 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html#_read_vermair">name</a></dt> 550 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair</dd> 551 552 <dt><a href="./Obsolete/nlec.html#_nlec">name</a></dt> 553 <dd>a parameter from the routine ./Obsolete/nlec</dd> 554 540 555 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_1d">name</a></dt> 541 556 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> … … 544 559 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt</dd> 545 560 546 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html#_findline">name</a></dt>547 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline</dd>548 549 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html#_read_vermair">name</a></dt>550 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair</dd>551 552 <dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html#_xncdf_lec">name</a></dt>553 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/xncdf_lec</dd>554 555 <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html#_read_ncdf">name</a></dt>556 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ncdf</dd>557 558 <dt><a href="./ToBeReviewed/WIDGET/slec.html#_slec">name</a></dt>559 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd>560 561 <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html#_ncdf_quickwrite_typename">name</a></dt>562 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd>563 564 <dt><a href="./Obsolete/nlec.html#_nlec">name</a></dt>565 <dd>a parameter from the routine ./Obsolete/nlec</dd>566 567 561 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd.html#_cutcmd">nameexp</a></dt> 568 562 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/cutcmd</dd> … … 586 580 <dd>a parameter from the routine ./Interpolation/extrapolate</dd> 587 581 582 <dt><a href="./Obsolete/nlec5j.html#_nlec5j">nbretps</a></dt> 583 <dd>a parameter from the routine ./Obsolete/nlec5j</dd> 584 588 585 <dt><a href="./Obsolete/nlecan.html#_nlecan">nbretps</a></dt> 589 586 <dd>a parameter from the routine ./Obsolete/nlecan</dd> 590 587 588 <dt><a href="./Obsolete/nlecsaison.html#_nlecsaison">nbretps</a></dt> 589 <dd>a parameter from the routine ./Obsolete/nlecsaison</dd> 590 591 591 <dt><a href="./Obsolete/nlecmois.html#_nlecmois">nbretps</a></dt> 592 592 <dd>a parameter from the routine ./Obsolete/nlecmois</dd> 593 593 594 <dt><a href="./Obsolete/nlecsaison.html#_nlecsaison">nbretps</a></dt>595 <dd>a parameter from the routine ./Obsolete/nlecsaison</dd>596 597 <dt><a href="./Obsolete/nlec5j.html#_nlec5j">nbretps</a></dt>598 <dd>a parameter from the routine ./Obsolete/nlec5j</dd>599 600 594 <dt><a href="./ReadWrite/ncdf_getatt.html#_ncdf_getatt">ncdf_getatt</a></dt> 601 595 <dd>a procedure from the file ncdf_getatt.pro</dd> … … 721 715 <dd>a file from the directory ./ReadWrite/idl-NetCDF</dd> 722 716 717 <dt><a href="./Grid/micromeshmask.html#_ncdf_transfer">ncdf_transfer</a></dt> 718 <dd>a procedure from the file micromeshmask.pro</dd> 719 723 720 <dt><a href="./Grid/smallmeshmask.html#_ncdf_transfer">ncdf_transfer</a></dt> 724 721 <dd>a procedure from the file smallmeshmask.pro</dd> 725 722 726 <dt><a href="./Grid/micromeshmask.html#_ncdf_transfer">ncdf_transfer</a></dt>727 <dd>a procedure from the file micromeshmask.pro</dd>728 729 723 <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper1.html#_ncdf_quickwrite_helper1">ncdfstruct</a></dt> 730 724 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper1</dd> 731 725 726 <dt><a href="./Grid/micromeshmask.html#_micromeshmask">ncfilein</a></dt> 727 <dd>a parameter from the routine ./Grid/micromeshmask</dd> 728 729 <dt><a href="./ToBeReviewed/INIT/initncdf.html#_initncdf">ncfilein</a></dt> 730 <dd>a parameter from the routine ./ToBeReviewed/INIT/initncdf</dd> 731 732 732 <dt><a href="./Grid/smallmeshmask.html#_smallmeshmask">ncfilein</a></dt> 733 733 <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 734 734 735 <dt><a href="./ToBeReviewed/INIT/initncdf.html#_initncdf">ncfilein</a></dt>736 <dd>a parameter from the routine ./ToBeReviewed/INIT/initncdf</dd>737 738 <dt><a href="./Grid/micromeshmask.html#_micromeshmask">ncfilein</a></dt>739 <dd>a parameter from the routine ./Grid/micromeshmask</dd>740 741 735 <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html#_ncdf_quickwrite_helper2">ncfilename</a></dt> 742 736 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd> … … 751 745 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_listdims</dd> 752 746 747 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">ncontour</a></dt> 748 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd> 749 753 750 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html#_label_gmt">ncontour</a></dt> 754 751 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd> 755 752 756 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label.html#_label">ncontour</a></dt>757 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label</dd>758 759 753 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_gmt.html#_label_gmt">ncoul</a></dt> 760 754 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/LABEL/label_gmt</dd> … … 865 859 <dd>a keyword from the routine ncdf_struct</dd> 866 860 861 <dt><a href="./Obsolete/nlec5j.html#_nlec5j">nom</a></dt> 862 <dd>a parameter from the routine ./Obsolete/nlec5j</dd> 863 864 <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html#_ncdf_lec">nom</a></dt> 865 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/ncdf_lec</dd> 866 867 <dt><a href="./Obsolete/nlecserie.html#_nlecserie">nom</a></dt> 868 <dd>a parameter from the routine ./Obsolete/nlecserie</dd> 869 870 <dt><a href="./Obsolete/nlecmois.html#_nlecmois">nom</a></dt> 871 <dd>a parameter from the routine ./Obsolete/nlecmois</dd> 872 873 <dt><a href="./Obsolete/nlecsaison.html#_nlecsaison">nom</a></dt> 874 <dd>a parameter from the routine ./Obsolete/nlecsaison</dd> 875 867 876 <dt><a href="./Obsolete/nlecan.html#_nlecan">nom</a></dt> 868 877 <dd>a parameter from the routine ./Obsolete/nlecan</dd> 869 878 870 <dt><a href="./Obsolete/nlec5j.html#_nlec5j">nom</a></dt>871 <dd>a parameter from the routine ./Obsolete/nlec5j</dd>872 873 <dt><a href="./Obsolete/nlecmois.html#_nlecmois">nom</a></dt>874 <dd>a parameter from the routine ./Obsolete/nlecmois</dd>875 876 <dt><a href="./Obsolete/nlecsaison.html#_nlecsaison">nom</a></dt>877 <dd>a parameter from the routine ./Obsolete/nlecsaison</dd>878 879 <dt><a href="./Obsolete/nlecserie.html#_nlecserie">nom</a></dt>880 <dd>a parameter from the routine ./Obsolete/nlecserie</dd>881 882 <dt><a href="./ToBeReviewed/LECTURE/ncdf_lec.html#_ncdf_lec">nom</a></dt>883 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/ncdf_lec</dd>884 885 879 <dt><a href="./Obsolete/lect.html#_lect">nomchamp</a></dt> 886 880 <dd>a parameter from the routine ./Obsolete/lect</dd> … … 889 883 <dd>a parameter from the routine ./Obsolete/lec</dd> 890 884 885 <dt><a href="./ToBeReviewed/WIDGET/slec.html#_slec">nomexp</a></dt> 886 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd> 887 888 <dt><a href="./Obsolete/ficdate.html#_ficdate">nomexp</a></dt> 889 <dd>a parameter from the routine ./Obsolete/ficdate</dd> 890 891 <dt><a href="./Obsolete/lec.html#_lec">nomexp</a></dt> 892 <dd>a parameter from the routine ./Obsolete/lec</dd> 893 894 <dt><a href="./Obsolete/lect.html#_lect">nomexp</a></dt> 895 <dd>a parameter from the routine ./Obsolete/lect</dd> 896 891 897 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair.html#_read_vermair">nomexp</a></dt> 892 898 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/read_vermair</dd> 893 899 894 <dt><a href="./Obsolete/ficdate.html#_ficdate">nomexp</a></dt>895 <dd>a parameter from the routine ./Obsolete/ficdate</dd>896 897 <dt><a href="./Obsolete/lec.html#_lec">nomexp</a></dt>898 <dd>a parameter from the routine ./Obsolete/lec</dd>899 900 <dt><a href="./Obsolete/lect.html#_lect">nomexp</a></dt>901 <dd>a parameter from the routine ./Obsolete/lect</dd>902 903 <dt><a href="./ToBeReviewed/WIDGET/slec.html#_slec">nomexp</a></dt>904 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/slec</dd>905 906 900 <dt><a href="./Obsolete/nlec.html#_nlec">nomexperience</a></dt> 907 901 <dd>a parameter from the routine ./Obsolete/nlec</dd> … … 937 931 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/symbols</dd> 938 932 933 <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html#_timecross_cov">nt</a></dt> 934 <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate</dd> 935 939 936 <dt><a href="./ToBeReviewed/STATISTICS/a_timecorrelate.html#_timeauto_cov">nt</a></dt> 940 937 <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/a_timecorrelate</dd> 941 938 942 <dt><a href="./ToBeReviewed/STATISTICS/c_timecorrelate.html#_timecross_cov">nt</a></dt>943 <dd>a parameter from the routine ./ToBeReviewed/STATISTICS/c_timecorrelate</dd>944 945 939 <dt><a href="./ToBeReviewed/STRING/getwrd.html#_getwrd">nth</a></dt> 946 940 <dd>a parameter from the routine ./ToBeReviewed/STRING/getwrd</dd> 947 941 942 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_date.html#_scan_grib_date">num</a></dt> 943 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_date</dd> 944 945 <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html#_ncdf_quickwrite_typename">num</a></dt> 946 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd> 947 948 <dt><a href="./ReadWrite/readoldopadistcoast.html#_read3fromopa">num</a></dt> 949 <dd>a parameter from the routine ./ReadWrite/readoldopadistcoast</dd> 950 951 <dt><a href="./ReadWrite/readoldoparestart.html#_read2fromopa">num</a></dt> 952 <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd> 953 954 <dt><a href="./ReadWrite/readoldoparestart.html#_read3fromopa">num</a></dt> 955 <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd> 956 957 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_bds.html#_read_grib_bds">num</a></dt> 958 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_bds</dd> 959 960 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_end.html#_read_grib_end">num</a></dt> 961 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_end</dd> 962 963 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_gds.html#_read_grib_gds">num</a></dt> 964 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_gds</dd> 965 948 966 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_is.html#_read_grib_is">num</a></dt> 949 967 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_is</dd> 950 968 969 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_pds.html#_read_grib_pds">num</a></dt> 970 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_pds</dd> 971 972 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_code.html#_scan_grib_code">num</a></dt> 973 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_code</dd> 974 951 975 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_messize.html#_scan_grib_messize">num</a></dt> 952 976 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_messize</dd> 953 977 954 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_date.html#_scan_grib_date">num</a></dt> 955 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_date</dd> 956 957 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_gds.html#_read_grib_gds">num</a></dt> 958 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_gds</dd> 959 960 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_code.html#_scan_grib_code">num</a></dt> 961 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_code</dd> 962 963 <dt><a href="./ReadWrite/readoldopadistcoast.html#_read3fromopa">num</a></dt> 964 <dd>a parameter from the routine ./ReadWrite/readoldopadistcoast</dd> 965 966 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_pds.html#_read_grib_pds">num</a></dt> 967 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_pds</dd> 978 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits.html#_scan_grib_nbits">num</a></dt> 979 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits</dd> 968 980 969 981 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_recstart.html#_scan_grib_recstart">num</a></dt> 970 982 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_recstart</dd> 971 983 972 <dt><a href="./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits.html#_scan_grib_nbits">num</a></dt>973 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/scan_grib_nbits</dd>974 975 <dt><a href="./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2.html#_ncdf_quickwrite_typename">num</a></dt>976 <dd>a parameter from the routine ./ReadWrite/idl-NetCDF/ncdf_quickwrite/ncdf_quickwrite_helper2</dd>977 978 <dt><a href="./ReadWrite/readoldoparestart.html#_read2fromopa">num</a></dt>979 <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd>980 981 <dt><a href="./ReadWrite/readoldoparestart.html#_read3fromopa">num</a></dt>982 <dd>a parameter from the routine ./ReadWrite/readoldoparestart</dd>983 984 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_bds.html#_read_grib_bds">num</a></dt>985 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_bds</dd>986 987 <dt><a href="./ToBeReviewed/LECTURE/GRIB/read_grib_end.html#_read_grib_end">num</a></dt>988 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_end</dd>989 990 984 <dt><a href="./Grid/numbisland.html#_mskneig">numb</a></dt> 991 985 <dd>a parameter from the routine ./Grid/numbisland</dd> … … 1009 1003 <dd>a parameter from the routine ./Obsolete/nlec5j</dd> 1010 1004 1005 <dt><a href="./Obsolete/nlecan.html#_nlecan">numsortie79</a></dt> 1006 <dd>a parameter from the routine ./Obsolete/nlecan</dd> 1007 1008 <dt><a href="./Obsolete/nlecmois.html#_nlecmois">numsortie79</a></dt> 1009 <dd>a parameter from the routine ./Obsolete/nlecmois</dd> 1010 1011 1011 <dt><a href="./Obsolete/nlecsaison.html#_nlecsaison">numsortie79</a></dt> 1012 1012 <dd>a parameter from the routine ./Obsolete/nlecsaison</dd> 1013 1013 1014 <dt><a href="./Obsolete/nlecmois.html#_nlecmois">numsortie79</a></dt>1015 <dd>a parameter from the routine ./Obsolete/nlecmois</dd>1016 1017 <dt><a href="./Obsolete/nlecan.html#_nlecan">numsortie79</a></dt>1018 <dd>a parameter from the routine ./Obsolete/nlecan</dd>1019 1020 1014 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_numtri">numtri</a></dt> 1021 1015 <dd>a function from the file definetri_e.pro</dd> … … 1030 1024 <dd>a file from the directory ./ToBeReviewed/STRING</dd> 1031 1025 1026 <dt><a href="./Grid/numbisland.html#_mskneig">nx</a></dt> 1027 <dd>a parameter from the routine ./Grid/numbisland</dd> 1028 1029 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri.html#_definetri">nx</a></dt> 1030 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri</dd> 1031 1032 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_numtri">nx</a></dt> 1033 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd> 1034 1035 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_definetri_e">nx</a></dt> 1036 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd> 1037 1038 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html#_drawcoast_c">nx</a></dt> 1039 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_c</dd> 1040 1041 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html#_drawcoast_e">nx</a></dt> 1042 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_e</dd> 1043 1044 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">nx</a></dt> 1045 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1046 1047 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_2d">nx</a></dt> 1048 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1049 1032 1050 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">nx</a></dt> 1033 1051 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd> 1034 1052 1035 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">nx</a></dt>1036 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd>1037 1038 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_2d">nx</a></dt>1039 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd>1040 1041 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri.html#_definetri">nx</a></dt>1042 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri</dd>1043 1044 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_numtri">nx</a></dt>1045 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd>1046 1047 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_definetri_e">nx</a></dt>1048 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd>1049 1050 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html#_drawcoast_c">nx</a></dt>1051 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_c</dd>1052 1053 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html#_drawcoast_e">nx</a></dt>1054 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_e</dd>1055 1056 <dt><a href="./Grid/numbisland.html#_mskneig">nx</a></dt>1057 <dd>a parameter from the routine ./Grid/numbisland</dd>1058 1059 1053 <dt><a href="./Utilities/fitintobox.html#_err_mess">nx</a></dt> 1060 1054 <dd>a parameter from the routine ./Utilities/fitintobox</dd> … … 1066 1060 <dd>a parameter from the routine ./Grid/computegrid</dd> 1067 1061 1062 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">ny</a></dt> 1063 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1064 1065 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_2d">ny</a></dt> 1066 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1067 1068 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_definetri_e">ny</a></dt> 1069 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd> 1070 1071 <dt><a href="./Utilities/fitintobox.html#_err_mess">ny</a></dt> 1072 <dd>a parameter from the routine ./Utilities/fitintobox</dd> 1073 1074 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri.html#_definetri">ny</a></dt> 1075 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri</dd> 1076 1077 <dt><a href="./Utilities/fitintobox.html#_fitintobox">ny</a></dt> 1078 <dd>a parameter from the routine ./Utilities/fitintobox</dd> 1079 1080 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_numtri">ny</a></dt> 1081 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd> 1082 1068 1083 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">ny</a></dt> 1069 1084 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd> 1070 1085 1071 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_definetri_e">ny</a></dt>1072 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd>1073 1074 1086 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_e.html#_drawcoast_e">ny</a></dt> 1075 1087 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_e</dd> 1076 1088 1077 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">ny</a></dt> 1078 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1079 1080 <dt><a href="./Utilities/fitintobox.html#_err_mess">ny</a></dt> 1081 <dd>a parameter from the routine ./Utilities/fitintobox</dd> 1082 1083 <dt><a href="./Utilities/fitintobox.html#_fitintobox">ny</a></dt> 1084 <dd>a parameter from the routine ./Utilities/fitintobox</dd> 1085 1086 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_2d">ny</a></dt> 1087 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1089 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html#_drawcoast_c">ny</a></dt> 1090 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_c</dd> 1088 1091 1089 1092 <dt><a href="./Grid/numbisland.html#_mskneig">ny</a></dt> 1090 1093 <dd>a parameter from the routine ./Grid/numbisland</dd> 1091 1094 1092 <dt><a href="./ToBeReviewed/TRIANGULATION/drawcoast_c.html#_drawcoast_c">ny</a></dt>1093 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/drawcoast_c</dd>1094 1095 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri_e.html#_numtri">ny</a></dt>1096 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri_e</dd>1097 1098 <dt><a href="./ToBeReviewed/TRIANGULATION/definetri.html#_definetri">ny</a></dt>1099 <dd>a parameter from the routine ./ToBeReviewed/TRIANGULATION/definetri</dd>1100 1101 1095 <dt><a href="./Grid/computegrid.html#_computegrid">nyin</a></dt> 1102 1096 <dd>a parameter from the routine ./Grid/computegrid</dd> 1103 1097 1098 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">nz</a></dt> 1099 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1100 1101 <dt><a href="./Utilities/fitintobox.html#_fitintobox">nz</a></dt> 1102 <dd>a parameter from the routine ./Utilities/fitintobox</dd> 1103 1104 <dt><a href="./Utilities/fitintobox.html#_err_mess">nz</a></dt> 1105 <dd>a parameter from the routine ./Utilities/fitintobox</dd> 1106 1104 1107 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">nz</a></dt> 1105 1108 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/grille</dd> 1106 1109 1107 <dt><a href="./Utilities/fitintobox.html#_err_mess">nz</a></dt>1108 <dd>a parameter from the routine ./Utilities/fitintobox</dd>1109 1110 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">nz</a></dt>1111 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd>1112 1113 1110 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_2d">nz</a></dt> 1114 1111 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 1115 1112 1116 <dt><a href="./Utilities/fitintobox.html#_fitintobox">nz</a></dt>1117 <dd>a parameter from the routine ./Utilities/fitintobox</dd>1118 1119 1113 </dl> 1120 1114 -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-O.html
r321 r363 181 181 <dd>a keyword from the routine read_hope</dd> 182 182 183 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html#_label_date">OFFSET</a></dt> 184 <dd>a keyword from the routine label_date</dd> 185 183 186 <dt><a href="./ToBeReviewed/LECTURE/xncdf_lec.html#_xncdf_lec">OFFSET</a></dt> 184 187 <dd>a keyword from the routine xncdf_lec</dd> … … 187 190 <dd>a keyword from the routine tvplus</dd> 188 191 189 <dt><a href="./ToBeReviewed/PLOTS/LABEL/label_date.html#_label_date">OFFSET</a></dt>190 <dd>a keyword from the routine label_date</dd>191 192 192 <dt><a href="./ReadWrite/write_ncdf.html#_write_ncdf">OKNAN</a></dt> 193 193 <dd>a keyword from the routine write_ncdf</dd> 194 194 195 <dt><a href="./Grid/ncdf_meshroms.html#_ncdf_meshroms">ONEARTH</a></dt> 196 <dd>a keyword from the routine ncdf_meshroms</dd> 197 195 198 <dt><a href="./Grid/ncdf_meshread.html#_ncdf_meshread">ONEARTH</a></dt> 196 199 <dd>a keyword from the routine ncdf_meshread</dd> … … 199 202 <dd>a keyword from the routine computegrid</dd> 200 203 201 <dt><a href="./Grid/ncdf_meshroms.html#_ncdf_meshroms">ONEARTH</a></dt>202 <dd>a keyword from the routine ncdf_meshroms</dd>203 204 204 <dt><a href="./ToBeReviewed/TRIANGULATION/dessinetri.html#_dessinetri">ONEBYONE</a></dt> 205 205 <dd>a keyword from the routine dessinetri</dd> … … 211 211 <dd>a keyword from the routine section</dd> 212 212 213 <dt><a href="./Utilities/find.html#_find">ONLYNC</a></dt> 214 <dd>a keyword from the routine find</dd> 215 213 216 <dt><a href="./Utilities/isafile.html#_isafile">ONLYNC</a></dt> 214 217 <dd>a keyword from the routine isafile</dd> 215 218 216 <dt><a href="./Utilities/find.html#_find">ONLYNC</a></dt>217 <dd>a keyword from the routine find</dd>218 219 219 <dt><a href="./Utilities/find.html#_find">ONLYPRO</a></dt> 220 220 <dd>a keyword from the routine find</dd> … … 226 226 <dd>a keyword from the routine make_selection</dd> 227 227 228 <dt><a href="./Interpolation/cutpar.html#_cutpar">ONSPHERE</a></dt> 229 <dd>a keyword from the routine cutpar</dd> 230 231 <dt><a href="./Interpolation/inquad.html#_inquad">ONSPHERE</a></dt> 232 <dd>a keyword from the routine inquad</dd> 233 228 234 <dt><a href="./Interpolation/cutsegment.html#_cutsegment">ONSPHERE</a></dt> 229 235 <dd>a keyword from the routine cutsegment</dd> 230 236 231 <dt><a href="./Interpolation/cutpar.html#_cutpar">ONSPHERE</a></dt>232 <dd>a keyword from the routine cutpar</dd>233 234 <dt><a href="./Interpolation/inquad.html#_inquad">ONSPHERE</a></dt>235 <dd>a keyword from the routine inquad</dd>236 237 237 <dt><a href="./Textoidl/matchdelim.html#_matchdelim">OPEN_DELIM</a></dt> 238 238 <dd>a keyword from the routine matchdelim</dd> … … 265 265 <dd>a keyword from the routine inrecgrid</dd> 266 266 267 <dt><a href="./Interpolation/file_interp.html#_file_interp">OUTTESTOP</a></dt> 268 <dd>a keyword from the routine file_interp</dd> 269 267 270 <dt><a href="./Interpolation/file_interp.html#_file_interp">OUTUSEASMASK</a></dt> 268 271 <dd>a keyword from the routine file_interp</dd> … … 280 283 <dd>a keyword from the routine pltt</dd> 281 284 285 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">OV1D</a></dt> 286 <dd>a keyword from the routine plt1d</dd> 287 282 288 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltsc.html#_pltsc">OV1D</a></dt> 283 289 <dd>a keyword from the routine pltsc</dd> 284 290 285 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">OV1D</a></dt>286 <dd>a keyword from the routine plt1d</dd>287 288 291 <dt><a href="./Colors/newpalette.html#_newpalette">OVER</a></dt> 289 292 <dd>a keyword from the routine newpalette</dd> 290 293 294 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/bar_plot.html#_bar_plot">OVERPLOT</a></dt> 295 <dd>a keyword from the routine bar_plot</dd> 296 297 <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html#_tracemask">OVERPLOT</a></dt> 298 <dd>a keyword from the routine tracemask</dd> 299 291 300 <dt><a href="./ToBeReviewed/TRIANGULATION/drawsectionbottom.html#_drawsectionbottom">OVERPLOT</a></dt> 292 301 <dd>a keyword from the routine drawsectionbottom</dd> 293 302 294 <dt><a href="./ToBeReviewed/PLOTS/ DESSINE/bar_plot.html#_bar_plot">OVERPLOT</a></dt>295 <dd>a keyword from the routine bar_plot</dd>303 <dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html#_velovect">OVERPLOT</a></dt> 304 <dd>a keyword from the routine velovect</dd> 296 305 297 306 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">OVERPLOT</a></dt> 298 307 <dd>a keyword from the routine plt</dd> 299 308 309 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">OVERPLOT</a></dt> 310 <dd>a keyword from the routine pltz</dd> 311 300 312 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">OVERPLOT</a></dt> 301 313 <dd>a keyword from the routine pltt</dd> 302 314 303 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">OVERPLOT</a></dt>304 <dd>a keyword from the routine pltz</dd>305 306 <dt><a href="./ToBeReviewed/PLOTS/VECTEUR/velovect.html#_velovect">OVERPLOT</a></dt>307 <dd>a keyword from the routine velovect</dd>308 309 <dt><a href="./ToBeReviewed/TRIANGULATION/tracemask.html#_tracemask">OVERPLOT</a></dt>310 <dd>a keyword from the routine tracemask</dd>311 312 315 <dt><a href="./Textoidl/matchdelim.html#_matchdelim">OpenPos</a></dt> 313 316 <dd>a parameter from the routine ./Textoidl/matchdelim</dd> … … 319 322 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/GRIB/read_grib_end</dd> 320 323 324 <dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html#_compute_fromreg_bilinear_weigaddr">olat</a></dt> 325 <dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr</dd> 326 321 327 <dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html#_compute_fromreg_imoms3_weigaddr">olat</a></dt> 322 328 <dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr</dd> 323 329 324 <dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html#_compute_fromreg_bilinear_weigaddr">olat</a></dt>325 <dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr</dd>326 327 330 <dt><a href="./Interpolation/compute_fromirr_bilinear_weigaddr.html#_compute_fromirr_bilinear_weigaddr">olat</a></dt> 328 331 <dd>a parameter from the routine ./Interpolation/compute_fromirr_bilinear_weigaddr</dd> … … 337 340 <dd>a file from the directory ./ForOldVersion</dd> 338 341 342 <dt><a href="./Interpolation/compute_fromirr_bilinear_weigaddr.html#_compute_fromirr_bilinear_weigaddr">olonin</a></dt> 343 <dd>a parameter from the routine ./Interpolation/compute_fromirr_bilinear_weigaddr</dd> 344 339 345 <dt><a href="./Interpolation/compute_fromreg_imoms3_weigaddr.html#_compute_fromreg_imoms3_weigaddr">olonin</a></dt> 340 346 <dd>a parameter from the routine ./Interpolation/compute_fromreg_imoms3_weigaddr</dd> 341 347 342 <dt><a href="./Interpolation/compute_fromirr_bilinear_weigaddr.html#_compute_fromirr_bilinear_weigaddr">olonin</a></dt>343 <dd>a parameter from the routine ./Interpolation/compute_fromirr_bilinear_weigaddr</dd>344 345 348 <dt><a href="./Interpolation/compute_fromreg_bilinear_weigaddr.html#_compute_fromreg_bilinear_weigaddr">olonin</a></dt> 346 349 <dd>a parameter from the routine ./Interpolation/compute_fromreg_bilinear_weigaddr</dd> … … 367 370 <dd>a keyword from the routine ftp_post</dd> 368 371 372 <dt><a href="./Grid/smallmeshmask.html#_ncdf_transfer">outid</a></dt> 373 <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 374 369 375 <dt><a href="./Grid/micromeshmask.html#_ncdf_transfer">outid</a></dt> 370 376 <dd>a parameter from the routine ./Grid/micromeshmask</dd> 371 377 372 <dt><a href="./Grid/smallmeshmask.html#_ncdf_transfer">outid</a></dt>373 <dd>a parameter from the routine ./Grid/smallmeshmask</dd>374 375 378 <dt><a href="./Interpolation/file_interp.html#_call_interp2d">outlat</a></dt> 376 379 <dd>a parameter from the routine ./Interpolation/file_interp</dd> … … 379 382 <dd>a parameter from the routine ./Interpolation/file_interp</dd> 380 383 384 <dt><a href="./Grid/micromeshmask.html#_ncdf_transfer">outname</a></dt> 385 <dd>a parameter from the routine ./Grid/micromeshmask</dd> 386 381 387 <dt><a href="./Grid/smallmeshmask.html#_ncdf_transfer">outname</a></dt> 382 388 <dd>a parameter from the routine ./Grid/smallmeshmask</dd> 383 389 384 <dt><a href="./Grid/micromeshmask.html#_ncdf_transfer">outname</a></dt>385 <dd>a parameter from the routine ./Grid/micromeshmask</dd>386 387 390 </dl> 388 391 -
trunk/SRC/Documentation/idldoc_html_output/idldoc-index-T.html
r338 r363 193 193 <dd>a keyword from the routine write_oasis</dd> 194 194 195 <dt><a href="./ReadWrite/ncdf_getmask.html#_ncdf_getmask">TESTOP</a></dt> 196 <dd>a keyword from the routine ncdf_getmask</dd> 197 195 198 <dt><a href="./buildinit.html#_cw_field2">TEXT_FRAME</a></dt> 196 199 <dd>a keyword from the routine cw_field2</dd> … … 217 220 <dd>a keyword from the routine ncdf_gettime</dd> 218 221 222 <dt><a href="./Utilities/isadirectory.html#_isadirectory">TITLE</a></dt> 223 <dd>a keyword from the routine isadirectory</dd> 224 225 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html#_cw_slider_pm">TITLE</a></dt> 226 <dd>a keyword from the routine cw_slider_pm</dd> 227 228 <dt><a href="./buildinit.html#_getdir">TITLE</a></dt> 229 <dd>a keyword from the routine getdir</dd> 230 219 231 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/bar_plot.html#_bar_plot">TITLE</a></dt> 220 232 <dd>a keyword from the routine bar_plot</dd> … … 223 235 <dd>a keyword from the routine cw_field2</dd> 224 236 225 <dt><a href="./buildinit.html#_getdir">TITLE</a></dt>226 <dd>a keyword from the routine getdir</dd>227 228 <dt><a href="./ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slider_pm.html#_cw_slider_pm">TITLE</a></dt>229 <dd>a keyword from the routine cw_slider_pm</dd>230 231 <dt><a href="./Utilities/isadirectory.html#_isadirectory">TITLE</a></dt>232 <dd>a keyword from the routine isadirectory</dd>233 234 237 <dt><a href="./ToBeReviewed/HOPE/read_hope.html#_read_hope">TLIMITS</a></dt> 235 238 <dd>a keyword from the routine read_hope</dd> … … 241 244 <dd>a keyword from the routine colorbar</dd> 242 245 246 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">TOUT</a></dt> 247 <dd>a keyword from the routine grille</dd> 248 249 <dt><a href="./Obsolete/lec.html#_lec">TOUT</a></dt> 250 <dd>a keyword from the routine lec</dd> 251 252 <dt><a href="./Obsolete/nlec.html#_nlec">TOUT</a></dt> 253 <dd>a keyword from the routine nlec</dd> 254 255 <dt><a href="./Obsolete/nlec5j.html#_nlec5j">TOUT</a></dt> 256 <dd>a keyword from the routine nlec5j</dd> 257 258 <dt><a href="./Obsolete/nlecan.html#_nlecan">TOUT</a></dt> 259 <dd>a keyword from the routine nlecan</dd> 260 261 <dt><a href="./Obsolete/nlecmois.html#_nlecmois">TOUT</a></dt> 262 <dd>a keyword from the routine nlecmois</dd> 263 243 264 <dt><a href="./Obsolete/nlecsaison.html#_nlecsaison">TOUT</a></dt> 244 265 <dd>a keyword from the routine nlecsaison</dd> 245 266 246 <dt><a href="./Obsolete/lec.html#_lec">TOUT</a></dt>247 <dd>a keyword from the routine lec</dd>248 249 <dt><a href="./Obsolete/nlec.html#_nlec">TOUT</a></dt>250 <dd>a keyword from the routine nlec</dd>251 252 <dt><a href="./Obsolete/nlec5j.html#_nlec5j">TOUT</a></dt>253 <dd>a keyword from the routine nlec5j</dd>254 255 <dt><a href="./Obsolete/nlecan.html#_nlecan">TOUT</a></dt>256 <dd>a keyword from the routine nlecan</dd>257 258 <dt><a href="./Obsolete/nlecmois.html#_nlecmois">TOUT</a></dt>259 <dd>a keyword from the routine nlecmois</dd>260 261 267 <dt><a href="./Obsolete/nlecserie.html#_nlecserie">TOUT</a></dt> 262 268 <dd>a keyword from the routine nlecserie</dd> 263 269 264 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">TOUT</a></dt>265 <dd>a keyword from the routine grille</dd>266 267 270 <dt><a href="./ToBeReviewed/LECTURE/read_ncdf.html#_read_ncdf">TOUT</a></dt> 268 271 <dd>a keyword from the routine read_ncdf</dd> … … 310 313 <dd>a keyword from the routine find</dd> 311 314 315 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">TT</a></dt> 316 <dd>a keyword from the routine plt1d</dd> 317 312 318 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">TT</a></dt> 313 319 <dd>a keyword from the routine pltt</dd> 314 320 315 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">TT</a></dt>316 <dd>a keyword from the routine plt1d</dd>317 318 321 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html#_checktypeminmax">TT</a></dt> 319 322 <dd>a keyword from the routine checktypeminmax</dd> … … 322 325 <dd>a keyword from the routine map_npoints</dd> 323 326 327 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">TYPE</a></dt> 328 <dd>a keyword from the routine grille</dd> 329 330 <dt><a href="./ToBeReviewed/GRILLE/domdef.html#_domdef">TYPE</a></dt> 331 <dd>a keyword from the routine domdef</dd> 332 324 333 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html#_placedessin">TYPE</a></dt> 325 334 <dd>a keyword from the routine placedessin</dd> 326 335 336 <dt><a href="./Matrix/cmapply.html#_cmapply">TYPE</a></dt> 337 <dd>a keyword from the routine cmapply</dd> 338 327 339 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_checkfield">TYPE</a></dt> 328 340 <dd>a keyword from the routine checkfield</dd> … … 331 343 <dd>a keyword from the routine checktypeminmax</dd> 332 344 333 <dt><a href="./ToBeReviewed/GRILLE/grille.html#_grille">TYPE</a></dt>334 <dd>a keyword from the routine grille</dd>335 336 345 <dt><a href="./ToBeReviewed/TRIANGULATION/section.html#_section">TYPE</a></dt> 337 346 <dd>a keyword from the routine section</dd> 338 347 339 <dt><a href="./ToBeReviewed/GRILLE/domdef.html#_domdef">TYPE</a></dt>340 <dd>a keyword from the routine domdef</dd>341 342 <dt><a href="./Matrix/cmapply.html#_cmapply">TYPE</a></dt>343 <dd>a keyword from the routine cmapply</dd>344 345 348 <dt><a href="./ToBeReviewed/GRILLE/decoupeterre.html#_decoupeterre">TYPE</a></dt> 346 349 <dd>a keyword from the routine decoupeterre</dd> … … 349 352 <dd>a keyword from the routine pltt</dd> 350 353 354 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">TYPEIN</a></dt> 355 <dd>a keyword from the routine pltz</dd> 356 351 357 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">TYPEIN</a></dt> 352 358 <dd>a keyword from the routine plt1d</dd> 353 359 354 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">TYPEIN</a></dt>355 <dd>a keyword from the routine pltz</dd>356 357 360 <dt><a href="./ToBeReviewed/PLOTS/legende.html#_legende">TYPE_YZ</a></dt> 358 361 <dd>a keyword from the routine legende</dd> … … 364 367 <dd>a file from the directory ./ToBeReviewed/GRILLE</dd> 365 368 369 <dt><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html#_depth2floatlevel">tab</a></dt> 370 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2floatlevel</dd> 371 372 <dt><a href="./Obsolete/extrait.html#_extrait">tab</a></dt> 373 <dd>a parameter from the routine ./Obsolete/extrait</dd> 374 375 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">tab</a></dt> 376 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd> 377 378 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">tab</a></dt> 379 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd> 380 381 <dt><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html#_floatlevel2depth">tab</a></dt> 382 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/floatlevel2depth</dd> 383 384 <dt><a href="./ToBeReviewed/CALCULS/depth2mask.html#_depth2mask">tab</a></dt> 385 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2mask</dd> 386 387 <dt><a href="./ToBeReviewed/CALCULS/depth2level.html#_depth2level">tab</a></dt> 388 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2level</dd> 389 366 390 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltt.html#_pltt">tab</a></dt> 367 391 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltt</dd> 368 392 393 <dt><a href="./Grid/changemsk.html#_changemsk">tab</a></dt> 394 <dd>a parameter from the routine ./Grid/changemsk</dd> 395 396 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">tab</a></dt> 397 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd> 398 399 <dt><a href="./ToBeReviewed/CALCULS/level2mask.html#_level2mask">tab</a></dt> 400 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2mask</dd> 401 402 <dt><a href="./ToBeReviewed/CALCULS/level2depth.html#_level2depth">tab</a></dt> 403 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2depth</dd> 404 369 405 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/pltz.html#_pltz">tab</a></dt> 370 406 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/pltz</dd> 371 407 372 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/determineminmax.html#_determineminmax">tab</a></dt>373 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/determineminmax</dd>374 375 <dt><a href="./ToBeReviewed/CALCULS/moyenne.html#_moyenne">tab</a></dt>376 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/moyenne</dd>377 378 <dt><a href="./Grid/changemsk.html#_changemsk">tab</a></dt>379 <dd>a parameter from the routine ./Grid/changemsk</dd>380 381 <dt><a href="./ToBeReviewed/CALCULS/level2mask.html#_level2mask">tab</a></dt>382 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2mask</dd>383 384 <dt><a href="./ToBeReviewed/CALCULS/level2depth.html#_level2depth">tab</a></dt>385 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/level2depth</dd>386 387 408 <dt><a href="./ToBeReviewed/CALCULS/grossemoyenne.html#_grossemoyenne">tab</a></dt> 388 409 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/grossemoyenne</dd> 389 410 390 <dt><a href="./ToBeReviewed/CALCULS/floatlevel2depth.html#_floatlevel2depth">tab</a></dt>391 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/floatlevel2depth</dd>392 393 <dt><a href="./ToBeReviewed/CALCULS/depth2mask.html#_depth2mask">tab</a></dt>394 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2mask</dd>395 396 <dt><a href="./ToBeReviewed/CALCULS/depth2level.html#_depth2level">tab</a></dt>397 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2level</dd>398 399 <dt><a href="./Obsolete/extrait.html#_extrait">tab</a></dt>400 <dd>a parameter from the routine ./Obsolete/extrait</dd>401 402 <dt><a href="./ToBeReviewed/CALCULS/depth2floatlevel.html#_depth2floatlevel">tab</a></dt>403 <dd>a parameter from the routine ./ToBeReviewed/CALCULS/depth2floatlevel</dd>404 405 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt1d.html#_plt1d">tab</a></dt>406 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt1d</dd>407 408 411 <dt><a href="./ToBeReviewed/PLOTS/DESSINE/plt.html#_plt">tab1</a></dt> 409 412 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DESSINE/plt</dd> … … 436 439 <dd>a parameter from the routine ./ToBeReviewed/STRING/str_size</dd> 437 440 441 <dt><a href="./ToBeReviewed/GRILLE/t2v.html#_t2v">temp</a></dt> 442 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/t2v</dd> 443 438 444 <dt><a href="./ToBeReviewed/GRILLE/v2t.html#_v2t">temp</a></dt> 439 445 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/v2t</dd> … … 442 448 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/f2v</dd> 443 449 444 <dt><a href="./ToBeReviewed/GRILLE/t2v.html#_t2v">temp</a></dt>445 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/t2v</dd>446 447 450 <dt><a href="./ToBeReviewed/GRILLE/u2t.html#_u2t">temp</a></dt> 448 451 <dd>a parameter from the routine ./ToBeReviewed/GRILLE/u2t</dd> … … 472 475 <dd>a parameter from the routine ./ToBeReviewed/LECTURE/read_ftp</dd> 473 476 477 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html#_inserthistory">text</a></dt> 478 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory</dd> 479 474 480 <dt><a href="./Utilities/text_box.html#_text_box">text</a></dt> 475 481 <dd>a parameter from the routine ./Utilities/text_box</dd> 476 482 477 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory.html#_inserthistory">text</a></dt>478 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/inserthistory</dd>479 480 483 <dt><a href="./Utilities/text_box.html#_text_box">text_box</a></dt> 481 484 <dd>a procedure from the file text_box.pro</dd> … … 529 532 <dd>a parameter from the routine ./Textoidl/strtrans</dd> 530 533 534 <dt><a href="./Textoidl/str_token.html#_str_token">token</a></dt> 535 <dd>a parameter from the routine ./Textoidl/str_token</dd> 536 537 <dt><a href="./ToBeReviewed/STRING/strtok.html#_strtok">token</a></dt> 538 <dd>a parameter from the routine ./ToBeReviewed/STRING/strtok</dd> 539 540 <dt><a href="./Textoidl/translate_sub_super.html#_sub_sup_idl">token</a></dt> 541 <dd>a parameter from the routine ./Textoidl/translate_sub_super</dd> 542 531 543 <dt><a href="./Textoidl/sub_sup_idl.html#_sub_sup_idl">token</a></dt> 532 544 <dd>a parameter from the routine ./Textoidl/sub_sup_idl</dd> 533 545 534 <dt><a href="./Textoidl/str_token.html#_str_token">token</a></dt>535 <dd>a parameter from the routine ./Textoidl/str_token</dd>536 537 <dt><a href="./ToBeReviewed/STRING/strtok.html#_strtok">token</a></dt>538 <dd>a parameter from the routine ./ToBeReviewed/STRING/strtok</dd>539 540 <dt><a href="./Textoidl/translate_sub_super.html#_sub_sup_idl">token</a></dt>541 <dd>a parameter from the routine ./Textoidl/translate_sub_super</dd>542 543 546 <dt><a href="./Textoidl/nexttok.html#_nexttok">tokens</a></dt> 544 547 <dd>a parameter from the routine ./Textoidl/nexttok</dd> … … 547 550 <dd>a function from the file string2struct.pro</dd> 548 551 552 <dt><a href="./ToBeReviewed/HOPE/domainpart.html#_domainpart">top_uvalue</a></dt> 553 <dd>a parameter from the routine ./ToBeReviewed/HOPE/domainpart</dd> 554 555 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt.html#_extractatt">top_uvalue</a></dt> 556 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt</dd> 557 549 558 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline.html#_findline">top_uvalue</a></dt> 550 559 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/findline</dd> 551 560 552 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt.html#_extractatt">top_uvalue</a></dt>553 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/extractatt</dd>554 555 <dt><a href="./ToBeReviewed/HOPE/domainpart.html#_domainpart">top_uvalue</a></dt>556 <dd>a parameter from the routine ./ToBeReviewed/HOPE/domainpart</dd>557 558 561 <dt><a href="./ToBeReviewed/HOPE/rh_alldomains.html#_rh_alldomains">topid</a></dt> 559 562 <dd>a parameter from the routine ./ToBeReviewed/HOPE/rh_alldomains</dd> … … 781 784 <dd>a parameter from the routine ./ToBeReviewed/STRING/isnumber</dd> 782 785 786 <dt><a href="./ToBeReviewed/STRING/getwrd.html#_getwrd">txtstr</a></dt> 787 <dd>a parameter from the routine ./ToBeReviewed/STRING/getwrd</dd> 788 783 789 <dt><a href="./ToBeReviewed/STRING/nwrds.html#_nwrds">txtstr</a></dt> 784 790 <dd>a parameter from the routine ./ToBeReviewed/STRING/nwrds</dd> 785 791 786 <dt><a href="./ToBeReviewed/STRING/getwrd.html#_getwrd">txtstr</a></dt> 787 <dd>a parameter from the routine ./ToBeReviewed/STRING/getwrd</dd> 792 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">type</a></dt> 793 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 794 795 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html#_buildreadcmd">type</a></dt> 796 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd> 797 798 <dt><a href="./Colors/xpal.html#_xp_change_color">type</a></dt> 799 <dd>a parameter from the routine ./Colors/xpal</dd> 800 801 <dt><a href="./Colors/xpal.html#_xp_replot">type</a></dt> 802 <dd>a parameter from the routine ./Colors/xpal</dd> 803 804 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_1d">type</a></dt> 805 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 806 807 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_2d">type</a></dt> 808 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd> 809 810 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html#_addaxe">type</a></dt> 811 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/addaxe</dd> 788 812 789 813 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/axis4pltz.html#_axis4pltz">type</a></dt> 790 814 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/axis4pltz</dd> 791 815 792 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_2d">type</a></dt>793 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd>794 795 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_3d">type</a></dt>796 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd>797 798 <dt><a href="./Colors/xpal.html#_xp_change_color">type</a></dt>799 <dd>a parameter from the routine ./Colors/xpal</dd>800 801 <dt><a href="./Colors/xpal.html#_xp_replot">type</a></dt>802 <dd>a parameter from the routine ./Colors/xpal</dd>803 804 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_err_1d">type</a></dt>805 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/checkfield</dd>806 807 <dt><a href="./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd.html#_buildreadcmd">type</a></dt>808 <dd>a parameter from the routine ./ToBeReviewed/WIDGET/AUTOUR_de_XXX/buildreadcmd</dd>809 810 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/addaxe.html#_addaxe">type</a></dt>811 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/addaxe</dd>812 813 816 <dt><a href="./ToBeReviewed/PLOTS/DIVERS/placedessin.html#_placedessin">typedessin</a></dt> 814 817 <dd>a parameter from the routine ./ToBeReviewed/PLOTS/DIVERS/placedessin</dd> -
trunk/SRC/Documentation/idldoc_html_output/idldoc-warnings.html
r338 r363 1769 1769 <tr> 1770 1770 <td class="statroutine"><a href="./Grid/ncdf_meshread.html#_ncdf_meshread">ncdf_meshread</a></td> 1771 <td class="stat warning"> 9 5</td>1771 <td class="stat warning"> 99</td> 1772 1772 </tr> 1773 1773 … … 1857 1857 <tr> 1858 1858 <td class="statroutine"><a href="./Interpolation/file_interp.html#_call_interp2d">call_interp2d</a></td> 1859 <td class="stat warning"> 1 0</td>1859 <td class="stat warning"> 11</td> 1860 1860 </tr> 1861 1861 1862 1862 <tr> 1863 1863 <td class="statroutine"><a href="./Interpolation/file_interp.html#_file_interp">file_interp</a></td> 1864 <td class="stat warning"> 6 8</td>1864 <td class="stat warning"> 69</td> 1865 1865 </tr> 1866 1866 … … 2256 2256 <tr> 2257 2257 <td class="statroutine"><a href="./ReadWrite/ncdf_getatt.html#_ncdf_getatt">ncdf_getatt</a></td> 2258 <td class="stat warning"> 2 2</td>2258 <td class="stat warning"> 25</td> 2259 2259 </tr> 2260 2260 … … 2272 2272 <tr> 2273 2273 <td class="statroutine"><a href="./ReadWrite/ncdf_getmask.html#_ncdf_getmask">ncdf_getmask</a></td> 2274 <td class="stat warning"> 24</td>2274 <td class="stat warning"> 34</td> 2275 2275 </tr> 2276 2276 … … 2280 2280 <tr> 2281 2281 <td class="statroutine"><a href="./ReadWrite/ncdf_gettime.html#_ncdf_gettime">ncdf_gettime</a></td> 2282 <td class="stat warning"> 42</td>2282 <td class="stat warning"> 39</td> 2283 2283 </tr> 2284 2284 … … 2955 2955 <tr> 2956 2956 <td class="statroutine"><a href="./ToBeReviewed/PLOTS/DIVERS/checkfield.html#_checkfield">checkfield</a></td> 2957 <td class="stat warning"> 12 0</td>2957 <td class="stat warning"> 121</td> 2958 2958 </tr> 2959 2959 … … 3075 3075 <tr> 3076 3076 <td class="statroutine"><a href="./ToBeReviewed/PLOTS/legende.html#_legende">legende</a></td> 3077 <td class="stat warning"> 6 7</td>3077 <td class="stat warning"> 65</td> 3078 3078 </tr> 3079 3079 -
trunk/SRC/Documentation/idldoc_html_output/overview.html
r338 r363 382 382 <tr> 383 383 <td>Lines of code</td> 384 <td class="value"> 660 00</td>384 <td class="value"> 66068</td> 385 385 </tr> 386 386 </table> -
trunk/SRC/Documentation/idldoc_html_output/search.js
r338 r363 10 10 a[8] = new Array("./Calendar/monthname.html", "monthname.pro", "", " file_comments gives the name of a month categories Calendar String param month in required type scalar or array the month number from 1 to 12 keyword _EXTRA Used to pass keywords to string function returns the month names a string with the same number of elements than month examples IDL print monthname 2 3 February March IDL print monthname 2 format C CMOA0 FEBRUARY IDL print monthname 2 format C CmoA03 : feb history Sebastien Masson smasson lodyc jussieu fr 1 October 2001 version Id: monthname pro 327 2007 12 13 16:22:35Z pinsard FUNCTION monthname month _EXTRA ex compile_opt idl2 strictarrsubs return string format C CMoA0 31 month 1 _EXTRA ex end"); 11 11 a[9] = new Array("./Colors/color24.html", "color24.pro", "", " file_comments The purpose of this function is to convert a RGB color triple into the equivalent 24 big long integer This routine was written to be used with routines like or getcolor categories Graphics Color param rgb_triple in required type byte A three element array A color triple The values of the elements must be between 0 and 255 returns type long integer a 24 bit long integer that is equivalent the input color The color is described in terms of a hexadecimal number e g FF206A where the left two digits represent the blue color the middle two digits represent the green color and the right two digits represent the red color examples To convert the color triple for the color YELLOW 255 255 0 to the hexadecimal value 00FFFF x or the decimal number 65535 type: IDL color COLOR24 255 255 0 history Written by: David Fanning 3 February 96 version Id: color24 pro 327 2007 12 13 16:22:35Z pinsard FUNCTION color24 rgb_triple compile_opt idl2 strictarrsubs ON_ERROR 1 IF N_ELEMENTS rgb_triple NE 3 THEN ras report Argument must be a three element vector IF MAX rgb_triple GT 255 OR MIN rgb_triple LT 0 THEN ras report Argument values must be in range of 0 255 base16 1L 16L 256L 4096L 65536L 1048576L num24bit 0L FOR j 0 2 DO num24bit num24bit rgb_triple j MOD 16 base16 0 j Fix rgb_triple j 16 base16 1 j RETURN num24bit END"); 12 a[10] = new Array("./Colors/colorbar.html", "colorbar.pro", "", " file_comments The purpose of this routine is to add a color bar to the current graphics window categories Graphics keyword BOTTOM default 0B The lowest color index of the colors to be loaded in the bar keyword CB_CHARSIZE default 1 0 The character size of the color bar annotations keyword CB_CHARTHICK default 1 0 The character thick of the color bar annotations keyword CB_COLOR default ncolors 1 bottom The color index of the bar outline and characters keyword CB_LOG to get logarithmic scale for the colorbar keyword CB_TITLE default This is title for the color bar keyword DISCRETE Vector which contain color s indexes to trace in a color bar Therefore we obtain a discrete colorbar which contains only the specified colors in the order they appear in the vector keyword DIVISIONS default 2 The number of divisions to divide the bar into There will be divisions 1 annotations keyword FORMAT default F6 2 The format of the bar annotations keyword CB_LABEL type vector A vector to specify sticks values of the color bar It allows when we use DISCRETE to have colors that don t increase by increments in a regular way keyword MAX default NCOLORS 1 The maximum data value for the bar annotation keyword MIN default 0 The minimum data value for the bar annotation keyword NCOLORS default D N_COLORS This is the number of colors in the color bar keyword NOTITLE Force to don t write title even if CB_TITLE is declared keyword POSITION default see bel low A four element array of normalized coordinates in the same form as the POSITION keyword on a plot Default is 0 88 0 15 0 95 0 95 for a vertical bar and 0 15 0 88 0 95 0 95 for a horizontal bar keyword PSCOLOR This keyword is only applied if the output is being sent to a Postscript file It indicates that the Postscript device is configured for color output If this keyword is set then the annotation is drawn in the color specified by the COLOR keyword If the keyword is not set the annotation is drawn in the color specified by the P COLOR system variable usually this will be the color black In general this gives better looking output on non color or gray scale printers If you are not specifically setting the annotation color with the COLOR keyword it will probably be better NOT to set this keyword either even if you are outputting to a color Postscript printer keyword RIGHT This puts the labels on the right hand side of a vertical color bar It applies only to vertical color bars keyword TOP This puts the labels on top of the bar rather than under it The keyword only applies if a horizontal color bar is rendered keyword VERTICAL default 0 horizontal color bar Setting this keyword give a vertical color bar keyword _EXTRA pass any keyword to colorbar restrictions The number of colors available on the display device not the Postscript device is used unless the NCOLORS keyword is used examples To display a horizontal color bar above a contour plot type: IDL LOADCT 5 NCOLORS 100 IDL CONTOUR DIST 31 41 POSITION 0 15 0 15 0 95 0 75 IDL C_COLORS INDGEN 25 4 NLEVELS 25 IDL COLORBAR NCOLORS 100 history Written by: David Fanning 10 JUNE 96 10 27 96: Added the ability to send output to PostScript DWF 11 04 96: Substantially rewritten to go to screen or PostScript file without having to know much about the PostScript device or even what the current graphics device is DWF 01 27 97: Added the RIGHT and TOP keywords Also modified the way the TITLE keyword works DWF 07 15 97: Fixed a problem some machines have with plots that have no valid data range in them DWF 03 03 98: Add DISCRETE keyword sebastien masson smasson lodyc jussieu fr version Id: colorbar pro 327 2007 12 13 16:22:35Z pinsard PRO colorbar BOTTOM bottom CB_CHARSIZE cb_charsize CB_CHARTHICK cb_charthick CB_COLOR cb_color DIVISIONS divisions DISCRETE discrete CB_LABEL cb_label FORMAT format POSITION position MAX max MIN min NCOLORS ncolors PSCOLOR pscolor CB_TITLE cb_title VERTICAL vertical TOP top RIGHT right CB_LOG CB_log NOTITLE notitle _EXTRA ex compile_opt idl2 strictarrsubs Is the PostScript device selected postScriptDevice D NAME EQ PS Check and define keywords IF N_ELEMENTS ncolors EQ 0 THEN BEGIN Most display devices to not use the 256 colors available to the PostScript device This presents a problem when writing general purpose programs that can be output to the display or to the PostScript device This problem is especially bothersome if you don t specify the number of colors you are using in the program One way to work around this problem is to make the default number of colors the same for the display device and for the PostScript device Then the colors you see in PostScript are identical to the colors you see on your display Here is one way to do it IF postScriptDevice THEN BEGIN oldDevice D NAME What kind of computer are we using SET_PLOT to appropriate display device 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 Open a window to make sure D N_COLORS is accurate WINDOW FREE PIXMAP XSIZE 10 YSIZE 10 WDELETE D WINDOW Here is how many colors we should use ncolors D N_COLORS SET_PLOT oldDevice IF oldDevice EQ X OR oldDevice EQ MAC OR oldDevice 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 ENDIF ELSE ncolors D N_COLORS ENDIF IF N_ELEMENTS bottom EQ 0 THEN bottom 0B IF N_ELEMENTS cb_charsize EQ 0 THEN cb_charsize 1 0 IF N_ELEMENTS cb_charthick EQ 0 THEN cb_charthick 1 0 IF N_ELEMENTS format EQ 0 THEN format F6 2 IF N_ELEMENTS cb_color EQ 0 THEN cb_color ncolors 1 bottom IF N_ELEMENTS min EQ 0 THEN min 0 0 IF N_ELEMENTS max EQ 0 THEN max FLOAT ncolors 1 IF N_ELEMENTS divisions EQ 0 THEN divisions 2 IF N_ELEMENTS cb_title EQ 0 THEN cb_title IF N_ELEMENTS notitle EQ 1 THEN cb_title pscolor KEYWORD_SET pscolor IF KEYWORD_SET vertical THEN BEGIN IF KEYWORD_SET discrete THEN begin facteur 256 n_elements discrete discrete reform replicate 1 facteur discrete facteur n_elements discrete overwrite bar REPLICATE 1B 10 discrete endif else bar REPLICATE 1B 10 BINDGEN 256 IF N_ELEMENTS position EQ 0 THEN position 0 88 0 15 0 95 0 95 ENDIF ELSE BEGIN IF KEYWORD_SET discrete THEN begin facteur 256 n_elements discrete discrete reform replicate 1 facteur discrete facteur n_elements discrete overwrite bar discrete REPLICATE 1B 10 endif else bar BINDGEN 256 REPLICATE 1B 10 IF N_ELEMENTS position EQ 0 THEN position 0 15 0 88 0 95 0 95 ENDELSE Scale the color bar IF NOT KEYWORD_SET discrete THEN bar BYTSCL bar TOP ncolors 1 bottom Get starting locations in DEVICE coordinates xstart position 0 D X_VSIZE ystart position 1 D Y_VSIZE Get the size of the bar in DEVICE coordinates xsize position 2 position 0 D X_VSIZE ysize position 3 position 1 D Y_VSIZE For PostScript output only draw the annotation in P COLOR unless pscolor is set This makes better output on grayscale printers IF postScriptDevice AND pscolor NE 1 THEN BEGIN oldcolor cb_color cb_color P COLOR ENDIF Display the color bar in the window Sizing is different for PostScript and regular display IF postScriptDevice THEN BEGIN TV bar xstart ystart XSIZE xsize YSIZE ysize ENDIF ELSE BEGIN IF CEIL xsize LT 0 OR CEIL ysize LT 0 THEN return bar CONGRID bar CEIL xsize CEIL ysize INTERP TV bar xstart ystart ENDELSE Annotate the color bar if keyword_set cb_label then begin divisions n_elements cb_label 1 for i 0 divisions DO cb_label string cb_label FORMAT format format ENDIF ELSE cb_label IF KEYWORD_SET vertical THEN BEGIN IF KEYWORD_SET right THEN BEGIN PLOT min max min max NODATA XTICKS 1 YTICKS divisions XSTYLE 1 YSTYLE 9 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT A1 XTICKFORMAT A1 YTICKLEN 0 1 YRANGE min max YTITLE cb_title AXIS YAXIS 1 YRANGE min max YTICKFORMAT format YTICKS divisions YTICKLEN 0 1 YSTYLE 1 COLOR cb_color CHARTHICK cb_charthick CHARSIZE cb_charsize xtickname cb_label ylog cb_log ENDIF ELSE BEGIN PLOT min max min max NODATA XTICKS 1 YTICKS divisions XSTYLE 1 YSTYLE 9 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT format XTICKFORMAT A1 YTICKLEN 0 1 YRANGE min max xtickname cb_label AXIS YAXIS 1 YRANGE min max YTICKFORMAT A1 YTICKS divisions YTICKLEN 0 1 YTITLE cb_title YSTYLE 1 COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick ylog cb_log ENDELSE ENDIF ELSE BEGIN IF KEYWORD_SET top THEN BEGIN PLOT min max min max NODATA XTICKS divisions YTICKS 1 XSTYLE 9 YSTYLE 1 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT A1 XTICKFORMAT A1 XTICKLEN 0 1 XRANGE min max XTITLE cb_title AXIS XTICKS divisions XSTYLE 1 COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick XTICKFORMAT format XTICKLEN 0 1 XRANGE min max XAXIS 1 xtickname cb_label xlog cb_log ENDIF ELSE BEGIN PLOT min max min max NODATA XTICKS divisions YTICKS 1 XSTYLE 1 YSTYLE 1 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT A1 XTICKFORMAT format XTICKLEN 0 1 XRANGE min max TITLE cb_title xtickname cb_label xlog cb_log ENDELSE ENDELSE Restore color variable if changed for PostScript IF postScriptDevice AND pscolor NE 1 THEN cb_color oldcolor return END");12 a[10] = new Array("./Colors/colorbar.html", "colorbar.pro", "", " file_comments The purpose of this routine is to add a color bar to the current graphics window categories Graphics keyword BOTTOM default 0B The lowest color index of the colors to be loaded in the bar keyword CB_CHARSIZE default 1 0 The character size of the color bar annotations keyword CB_CHARTHICK default 1 0 The character thick of the color bar annotations keyword CB_COLOR default ncolors 1 bottom The color index of the bar outline and characters keyword CB_LOG to get logarithmic scale for the colorbar keyword CB_TITLE default This is title for the color bar keyword DISCRETE Vector which contain color s indexes to trace in a color bar Therefore we obtain a discrete colorbar which contains only the specified colors in the order they appear in the vector keyword DIVISIONS default 2 The number of divisions to divide the bar into There will be divisions 1 annotations keyword FORMAT default F6 2 The format of the bar annotations keyword CB_LABEL type vector A vector to specify sticks values of the color bar It allows when we use DISCRETE to have colors that don t increase by increments in a regular way keyword MAX default NCOLORS 1 The maximum data value for the bar annotation keyword MIN default 0 The minimum data value for the bar annotation keyword NCOLORS default D N_COLORS This is the number of colors in the color bar keyword NOTITLE Force to don t write title even if CB_TITLE is declared keyword POSITION default see below A four element array of normalized coordinates in the same form as the POSITION keyword on a plot Default is 0 88 0 15 0 95 0 95 for a vertical bar and 0 15 0 88 0 95 0 95 for a horizontal bar keyword PSCOLOR This keyword is only applied if the output is being sent to a Postscript file It indicates that the Postscript device is configured for color output If this keyword is set then the annotation is drawn in the color specified by the COLOR keyword If the keyword is not set the annotation is drawn in the color specified by the P COLOR system variable usually this will be the color black In general this gives better looking output on non color or gray scale printers If you are not specifically setting the annotation color with the COLOR keyword it will probably be better NOT to set this keyword either even if you are outputting to a color Postscript printer keyword RIGHT This puts the labels on the right hand side of a vertical color bar It applies only to vertical color bars keyword TOP This puts the labels on top of the bar rather than under it The keyword only applies if a horizontal color bar is rendered keyword VERTICAL default 0 horizontal color bar Setting this keyword give a vertical color bar keyword _EXTRA pass any keyword to colorbar restrictions The number of colors available on the display device not the Postscript device is used unless the NCOLORS keyword is used examples To display a horizontal color bar above a contour plot type: IDL LOADCT 5 NCOLORS 100 IDL CONTOUR DIST 31 41 POSITION 0 15 0 15 0 95 0 75 IDL C_COLORS INDGEN 25 4 NLEVELS 25 IDL COLORBAR NCOLORS 100 history Written by: David Fanning 10 JUNE 96 10 27 96: Added the ability to send output to PostScript DWF 11 04 96: Substantially rewritten to go to screen or PostScript file without having to know much about the PostScript device or even what the current graphics device is DWF 01 27 97: Added the RIGHT and TOP keywords Also modified the way the TITLE keyword works DWF 07 15 97: Fixed a problem some machines have with plots that have no valid data range in them DWF 03 03 98: Add DISCRETE keyword sebastien masson smasson lodyc jussieu fr version Id: colorbar pro 358 2008 04 28 09:41:14Z pinsard PRO colorbar BOTTOM bottom CB_CHARSIZE cb_charsize CB_CHARTHICK cb_charthick CB_COLOR cb_color DIVISIONS divisions DISCRETE discrete CB_LABEL cb_label FORMAT format POSITION position MAX max MIN min NCOLORS ncolors PSCOLOR pscolor CB_TITLE cb_title VERTICAL vertical TOP top RIGHT right CB_LOG CB_log NOTITLE notitle _EXTRA ex compile_opt idl2 strictarrsubs Is the PostScript device selected postScriptDevice D NAME EQ PS Check and define keywords IF N_ELEMENTS ncolors EQ 0 THEN BEGIN Most display devices to not use the 256 colors available to the PostScript device This presents a problem when writing general purpose programs that can be output to the display or to the PostScript device This problem is especially bothersome if you don t specify the number of colors you are using in the program One way to work around this problem is to make the default number of colors the same for the display device and for the PostScript device Then the colors you see in PostScript are identical to the colors you see on your display Here is one way to do it IF postScriptDevice THEN BEGIN oldDevice D NAME What kind of computer are we using SET_PLOT to appropriate display device 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 Open a window to make sure D N_COLORS is accurate WINDOW FREE PIXMAP XSIZE 10 YSIZE 10 WDELETE D WINDOW Here is how many colors we should use ncolors D N_COLORS SET_PLOT oldDevice IF oldDevice EQ X OR oldDevice EQ MAC OR oldDevice 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 ENDIF ELSE ncolors D N_COLORS ENDIF IF N_ELEMENTS bottom EQ 0 THEN bottom 0B IF N_ELEMENTS cb_charsize EQ 0 THEN cb_charsize 1 0 IF N_ELEMENTS cb_charthick EQ 0 THEN cb_charthick 1 0 IF N_ELEMENTS format EQ 0 THEN format F6 2 IF N_ELEMENTS cb_color EQ 0 THEN cb_color ncolors 1 bottom IF N_ELEMENTS min EQ 0 THEN min 0 0 IF N_ELEMENTS max EQ 0 THEN max FLOAT ncolors 1 IF N_ELEMENTS divisions EQ 0 THEN divisions 2 IF N_ELEMENTS cb_title EQ 0 THEN cb_title IF N_ELEMENTS notitle EQ 1 THEN cb_title pscolor KEYWORD_SET pscolor IF KEYWORD_SET vertical THEN BEGIN IF KEYWORD_SET discrete THEN begin facteur 256 n_elements discrete discrete reform replicate 1 facteur discrete facteur n_elements discrete overwrite bar REPLICATE 1B 10 discrete endif else bar REPLICATE 1B 10 BINDGEN 256 IF N_ELEMENTS position EQ 0 THEN position 0 88 0 15 0 95 0 95 ENDIF ELSE BEGIN IF KEYWORD_SET discrete THEN begin facteur 256 n_elements discrete discrete reform replicate 1 facteur discrete facteur n_elements discrete overwrite bar discrete REPLICATE 1B 10 endif else bar BINDGEN 256 REPLICATE 1B 10 IF N_ELEMENTS position EQ 0 THEN position 0 15 0 88 0 95 0 95 ENDELSE Scale the color bar IF NOT KEYWORD_SET discrete THEN bar BYTSCL bar TOP ncolors 1 bottom Get starting locations in DEVICE coordinates xstart position 0 D X_VSIZE ystart position 1 D Y_VSIZE Get the size of the bar in DEVICE coordinates xsize position 2 position 0 D X_VSIZE ysize position 3 position 1 D Y_VSIZE For PostScript output only draw the annotation in P COLOR unless pscolor is set This makes better output on grayscale printers IF postScriptDevice AND pscolor NE 1 THEN BEGIN oldcolor cb_color cb_color P COLOR ENDIF Display the color bar in the window Sizing is different for PostScript and regular display IF postScriptDevice THEN BEGIN TV bar xstart ystart XSIZE xsize YSIZE ysize ENDIF ELSE BEGIN IF CEIL xsize LT 0 OR CEIL ysize LT 0 THEN return bar CONGRID bar CEIL xsize CEIL ysize INTERP TV bar xstart ystart ENDELSE Annotate the color bar if keyword_set cb_label then begin divisions n_elements cb_label 1 for i 0 divisions DO cb_label string cb_label FORMAT format format ENDIF ELSE cb_label IF KEYWORD_SET vertical THEN BEGIN IF KEYWORD_SET right THEN BEGIN PLOT min max min max NODATA XTICKS 1 YTICKS divisions XSTYLE 1 YSTYLE 9 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT A1 XTICKFORMAT A1 YTICKLEN 0 1 YRANGE min max YTITLE cb_title AXIS YAXIS 1 YRANGE min max YTICKFORMAT format YTICKS divisions YTICKLEN 0 1 YSTYLE 1 COLOR cb_color CHARTHICK cb_charthick CHARSIZE cb_charsize xtickname cb_label ylog cb_log ENDIF ELSE BEGIN PLOT min max min max NODATA XTICKS 1 YTICKS divisions XSTYLE 1 YSTYLE 9 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT format XTICKFORMAT A1 YTICKLEN 0 1 YRANGE min max xtickname cb_label AXIS YAXIS 1 YRANGE min max YTICKFORMAT A1 YTICKS divisions YTICKLEN 0 1 YTITLE cb_title YSTYLE 1 COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick ylog cb_log ENDELSE ENDIF ELSE BEGIN IF KEYWORD_SET top THEN BEGIN PLOT min max min max NODATA XTICKS divisions YTICKS 1 XSTYLE 9 YSTYLE 1 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT A1 XTICKFORMAT A1 XTICKLEN 0 1 XRANGE min max XTITLE cb_title AXIS XTICKS divisions XSTYLE 1 COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick XTICKFORMAT format XTICKLEN 0 1 XRANGE min max XAXIS 1 xtickname cb_label xlog cb_log ENDIF ELSE BEGIN PLOT min max min max NODATA XTICKS divisions YTICKS 1 XSTYLE 1 YSTYLE 1 POSITION position COLOR cb_color CHARSIZE cb_charsize CHARTHICK cb_charthick NOERASE YTICKFORMAT A1 XTICKFORMAT format XTICKLEN 0 1 XRANGE min max TITLE cb_title xtickname cb_label xlog cb_log ENDELSE ENDELSE Restore color variable if changed for PostScript IF postScriptDevice AND pscolor NE 1 THEN cb_color oldcolor return END"); 13 13 a[11] = new Array("./Colors/getcolor.html", "getcolor.pro", "", " file_comments The original purpose of this function was to enable the user to specify one of the 16 colors supported by the McIDAS color map by name Over time however the function has become a general purpose function for handling and supporting drawing colors in a device independent way In particular I have been looking for ways to write color handling code that will work transparently on both 8 bit and 24 bit machines On 24 bit machines the code should work the same where color decomposition is turned on or off The 16 supported colors in GETCOLOR come from the McIDAS color table offered on the IDL newsgroup by Liam Gumley categories Graphics Color param thiscolor in optional A string with the name of the color Valid names are: black magenta cyan yellow green red blue navy gold pink aqua orchid gray sky beige white The color YELLOW is returned if the color name can t be resolved Case is unimportant param index in optional The color table index where the specified color should be loaded returns If no positional parameter is present then the return value is either a 16 by 3 byte array containing the RGB values of all 16 colors or it is a 16 element long integer array containing color values that can be decomposed into colors The 16 by 3 array is appropriate for loading color tables with the TVLCT command: Device Decomposed 0 colors GetColor TVLCT colors 100 If function is called with just this single input parameter the return value is either a 1 by 3 array containing the RGB values of that particular color or a 24 bit integer that can be decomposed into that particular color depending upon the state of the TRUE keyword and upon whether color decomposition is turned on or off The state of color decomposition can ONLY be determined if the program is being run in IDL 5 2 or higher If index parameter is passed then the return value of the function is the index number and not the color triple If color decomposition is turned on AND the user specifies an index parameter the color is loaded in the color table at the proper index but a 24 bit value is returned to the user in IDL 5 2 and higher keyword NAMES If this keyword is set the return value of the function is a 16 element string array containing the names of the colors These names would be appropriate for example in building a list widget with the names of the colors If the NAMES keyword is set the COLOR and INDEX parameters are ignored listID Widget_List baseID Value GetColor Names YSize 16 keyword LOAD If this keyword is set all 16 colors are automatically loaded starting at the color index specified by the START keyword Note that setting this keyword means that the return value of the function will be a structure with each field of the structure corresponding to a color name The value of each field will be an index number set by the START keyword corresponding to the associated color or a 24 bit long integer value that creates the color on a true color device What you have as the field values is determined by the TRUE keyword or whether color decomposition is on or off in the absence of the TRUE keyword It will either be a 1 by 3 byte array or a long integer value keyword START default D TABLE_SIZE 17 The starting color index number if the LOAD keyword is set This keyword value is ignored unless the LOAD keyword is also set The keyword is also ignored if the TRUE keyword is set or if color decomposition in on in IDL 5 2 and higher keyword TRUE If this keyword is set the specified color triple is returned as a 24 bit integer equivalent The lowest 8 bits correspond to the red value the middle 8 bits to the green value and the highest 8 bits correspond to the blue value In IDL 5 2 and higher if color decomposition is turned on it is as though this keyword were set restrictions The TRUE keyword causes the START keyword to be ignored The NAMES keyword causes the COLOR INDEX START and TRUE parameters to be ignored The COLOR parameter is ignored if the LOAD keyword is used On systems where it is possible to tell the state of color decomposition i e IDL 5 2 and higher a 24 bit value or values is automatically returned if color decomposition is ON examples To load a yellow color in color index 100 and plot in yellow type: IDL yellow GETCOLOR yellow 100 IDL PLOT data COLOR yellow or IDL PLOT data COLOR GETCOLOR yellow 100 To do the same thing on a 24 bit color system with decomposed color on type: IDL PLOT data COLOR GETCOLOR yellow TRUE or in IDL 5 2 and higher IDL DEVICE Decomposed 1 IDL PLOT data COLOR GETCOLOR yellow To load all 16 colors into the current color table starting at color index 200 type: IDL TVLCT GETCOLOR 200 To add the color names to a list widget: IDL listID Widget_List baseID Value GetColor Names YSize 16 To load all 16 colors and have the color indices returned in a structure: IDL DEVICE Decomposed 0 IDL colors GetColor Load Start 1 IDL HELP colors Structure PLOT data COLOR colors yellow To get the direct color values as 24 bit integers in color structure fields: IDL DEVICE Decomposed 1 IDL colors GetColor Load IDL PLOT data COLOR colors yellow Note that the START keyword value is ignored if on a 24 bit device so it is possible to write completely device independent code by writing code like this: IDL colors GetColor Load IDL PLOT data Color colors yellow IDL DEVICE Decomposed 0 IDL colors GetColor Load Start 1 IDL HELP colors Structure PLOT data COLOR colors yellow To get the direct color values as 24 bit integers in color structure fields: IDL DEVICE Decomposed 1 IDL colors GetColor Load IDL PLOT data COLOR colors yellow Note that the START keyword value is ignored if on a 24 bit device so it is possible to write completely device independent code by writing code like this: IDL colors GetColor Load IDL PLOT data Color colors yellow history Written by: David Fanning 10 February 96 Fixed a bug in which N_ELEMENTS was spelled wrong 7 Dec 96 DWF Added the McIDAS colors to the program 24 Feb 99 DWF Added the INDEX parameter to the program 8 Mar 99 DWF Added the NAMES keyword at insistence of Martin Schultz 10 Mar 99 DWF Reordered the colors so black is first and white is last 7 June 99 DWF Added automatic recognition of DECOMPOSED 1 state 7 June 99 DWF Added LOAD AND START keywords 7 June 99 DWF version Id: getcolor pro 327 2007 12 13 16:22:35Z pinsard FUNCTION getcolor thiscolor index TRUE truecolor NAMES colornames LOAD load START start compile_opt idl2 strictarrsubs Set up the color vectors names Black Magenta Cyan Yellow Green rvalue 0 255 0 255 0 gvalue 0 0 255 255 255 bvalue 0 255 255 0 0 names names Red Blue Navy Gold Pink rvalue rvalue 255 0 0 255 255 gvalue gvalue 0 0 0 187 127 bvalue bvalue 0 255 115 0 127 names names Aqua Orchid Gray Sky Beige White rvalue rvalue 112 219 127 0 255 255 gvalue gvalue 219 112 127 163 171 255 bvalue bvalue 147 219 127 255 127 255 Did the user ask for a specific color If not return all the colors If the user asked for a specific color find out if a 24 bit value is required Return to main IDL level if an error occurs ON_Error 1 np N_Params IF Keyword_Set start EQ 0 THEN start D TABLE_SIZE 17 User ask for the color names IF Keyword_Set colornames THEN RETURN names ELSE names StrUpCase names If no positional parameter return all colors IF np EQ 0 THEN BEGIN Did the user want a 24 bit value If so call COLOR24 IF Keyword_Set trueColor THEN BEGIN returnColor LonArr 16 FOR j 0 15 DO returnColor j Color24 rvalue j gvalue j bvalue j If LOAD keyword set return a color structure IF Keyword_Set load THEN BEGIN returnValue Create_Struct black returnColor 0 FOR j 1 15 DO returnValue Create_Struct returnValue names j returnColor j returnColor returnValue ENDIF RETURN returnColor ENDIF If color decomposition is ON return 24 bit values IF Float Version Release GE 5 2 THEN BEGIN IF D Name EQ X OR D Name EQ WIN OR D Name EQ MAC THEN BEGIN Device Get_Decomposed decomposedState ENDIF ELSE decomposedState 0 IF decomposedState EQ 1 THEN BEGIN returnColor LonArr 16 FOR j 0 15 DO returnColor j Color24 rvalue j gvalue j bvalue j IF Keyword_Set load THEN BEGIN returnValue Create_Struct black returnColor 0 FOR j 1 15 DO returnValue Create_Struct returnValue names j returnColor j RETURN returnValue ENDIF RETURN returnColor ENDIF IF Keyword_Set load THEN BEGIN TVLCT Reform rvalue gvalue bvalue 16 3 start returnValue Create_Struct black start FOR j 1 15 DO returnValue Create_Struct returnValue names j start j RETURN returnValue ENDIF returnColor REFORM rvalue gvalue bvalue 16 3 RETURN returnColor ENDIF IF Keyword_Set load THEN BEGIN TVLCT Reform rvalue gvalue bvalue 16 3 start returnValue Create_Struct black start FOR j 1 15 DO returnValue Create_Struct returnValue names j start j RETURN returnValue ENDIF returnColor REFORM rvalue gvalue bvalue 16 3 RETURN returnColor ENDIF Check synonyms of colors IF StrUpCase thisColor EQ GREY THEN thisColor GRAY IF StrUpCase thisColor EQ CHARCOAL THEN thisColor GRAY IF StrUpCase thisColor EQ AQUAMARINE THEN thisColor AQUA IF StrUpCase thisColor EQ SKYBLUE THEN thisColor SKY Make sure the parameter is an uppercase string varInfo SIZE thisColor IF varInfo varInfo 0 1 NE 7 THEN ras report The color name must be a string thisColor STRUPCASE thisColor Get the color triple for this color colorIndex WHERE names EQ thisColor If you can t find it Issue an informational message set the index to a YELLOW color and continue IF colorIndex 0 LT 0 THEN BEGIN ras report Can t find color Returning YELLOW INFORMATIONAL colorIndex 3 ENDIF Get the color triple r rvalue colorIndex g gvalue colorIndex b bvalue colorIndex returnColor REFORM r g b 1 3 Did the user want a 24 bit value If so call COLOR24 IF KEYWORD_SET trueColor THEN BEGIN returnColor COLOR24 returnColor RETURN returnColor ENDIF If color decomposition is ON return 24 bit value IF Float Version Release GE 5 2 THEN BEGIN IF D Name EQ X OR D Name EQ WIN OR D Name EQ MAC THEN BEGIN Device Get_Decomposed decomposedState ENDIF ELSE decomposedState 0 IF decomposedState EQ 1 THEN BEGIN Before you change return color load index if requested IF N_Elements index NE 0 THEN BEGIN index 0 index index D Table_Size 1 TVLCT returnColor index returnColor index ENDIF RETURN returnColor END"); 14 14 a[12] = new Array("./Colors/lct.html", "lct.pro", "", " file_comments Fastest than type loadct file palette tbl categories Graphics Color param numpal in optional number of the color palette we want to select in the file palette tbl keyword LIGHTNESS a scalar used to change the Lightness of the color palette to be able to adjust according to the printer we use the media paper or slide lightness 1 to get darker colors keyword FILE default palette tbl The file containing the color palette It can be in any directory of the path keyword GET_NAME Set this keyword to a named variable in which the names of the color tables are returned as a string array No changes are made to the color table keyword _EXTRA Used to pass keywords to LOADCT history Sebastien Masson smasson lodyc jussieu fr 30 3 1999: add extra 6 7 1999: mac windows compatibility version Id: lct pro 327 2007 12 13 16:22:35Z pinsard PRO lct numpal FILE file GET_NAME get_name LIGHTNESS lightness _EXTRA ex compile_opt idl2 strictarrsubs definition of the name of the file containing colors palettes if keyword_set file then nametbl file ELSE nametbl palette tbl look for nametbl file nametbl find nametbl firstfound nopro if nametbl NE NOT FOUND then BEGIN if n_elements ex NE 0 then if where tag_names ex EQ FILE 0 NE 1 then ex FILE nametbl if we are in POSTSCRIPT mode we have to pass in X mode in order to change the color palette oldname d name if d name EQ PS OR d name EQ Z then BEGIN 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 ENDIF if arg_present get_name then begin if n_elements numpal EQ 0 then loadct file nametbl GET_NAME get_name _EXTRA ex ELSE loadct numpal file nametbl silent GET_NAME get_name _EXTRA ex ENDIF ELSE BEGIN if n_elements numpal EQ 0 then loadct file nametbl _EXTRA ex ELSE loadct numpal file nametbl silent _EXTRA ex ENDELSE if oldname EQ PS AND keyword_set lightness then palit lightness set_plot oldname IF oldname EQ X OR oldname EQ MAC OR oldname 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 ENDIF ELSE ras report The file containing the color palettes doesn t exist return end"); … … 42 42 a[40] = new Array("./Grid/n48gaussian.html", "n48gaussian.pro", "", " file_comments compute the latitudes of the n48 gaussian grid See: Gaussian 48 categories Grid examples IDL lat n48gaussian returns a 1d array history Sebastien Masson smasson lodyc jussieu fr June 2004 version Id: n48gaussian pro 325 2007 12 06 10:04:53Z pinsard FUNCTION n48gaussian compile_opt idl2 strictarrsubs latitude reduced regular latitude number points points n48 1 20 192 88 57216 2 25 192 86 72253 3 36 192 84 86197 4 40 192 82 99894 5 45 192 81 13497 6 50 192 79 27055 7 60 192 77 40588 8 60 192 75 54106 9 72 192 73 67613 10 75 192 71 81113 11 80 192 69 94608 12 90 192 68 08099 13 96 192 66 21587 14 100 192 64 35073 15 108 192 62 48557 16 120 192 60 62039 17 120 192 58 75520 18 120 192 56 89001 19 128 192 55 02480 20 135 192 53 15959 21 144 192 51 29437 22 144 192 49 42915 23 160 192 47 56392 24 160 192 45 69869 25 160 192 43 83345 26 160 192 41 96822 27 160 192 40 10297 28 180 192 38 23773 29 180 192 36 37249 30 180 192 34 50724 31 180 192 32 64199 32 180 192 30 77674 33 192 192 28 91149 34 192 192 27 04623 35 192 192 25 18098 36 192 192 23 31573 37 192 192 21 45047 38 192 192 19 58521 39 192 192 17 71996 40 192 192 15 85470 41 192 192 13 98944 42 192 192 12 12418 43 192 192 10 25892 44 192 192 8 39366 45 192 192 6 52840 46 192 192 4 66314 47 192 192 2 79788 48 192 192 0 93262 n48 reform n48 4 48 over n48 reform n48 3 over n48 n48 reverse n48 return n48 end"); 43 43 a[41] = new Array("./Grid/n80gaussian.html", "n80gaussian.pro", "", " file_comments compute the latitudes of the n80 gaussian grid See: Gaussian 80 categories Grid examples IDL lat n80gaussian returns a 1d array history Sebastien Masson smasson lodyc jussieu fr June 2004 version Id: n80gaussian pro 325 2007 12 06 10:04:53Z pinsard FUNCTION n80gaussian compile_opt idl2 strictarrsubs latitude reduced regular latitude number points points n80 1 18 320 89 14152 2 25 320 88 02943 3 36 320 86 91077 4 40 320 85 79063 5 45 320 84 66992 6 54 320 83 54895 7 60 320 82 42782 8 64 320 81 30659 9 72 320 80 18531 10 72 320 79 06398 11 80 320 77 94262 12 90 320 76 82124 13 96 320 75 69984 14 100 320 74 57843 15 108 320 73 45701 16 120 320 72 33558 17 120 320 71 21414 18 128 320 70 09269 19 135 320 68 97124 20 144 320 67 84978 21 144 320 66 72833 22 150 320 65 60686 23 160 320 64 48540 24 160 320 63 36393 25 180 320 62 24246 26 180 320 61 12099 27 180 320 59 99952 28 192 320 58 87804 29 192 320 57 75657 30 200 320 56 63509 31 200 320 55 51361 32 216 320 54 39214 33 216 320 53 27066 34 216 320 52 14917 35 225 320 51 02769 36 225 320 49 90621 37 240 320 48 78473 38 240 320 47 66325 39 240 320 46 54176 40 256 320 45 42028 41 256 320 44 29879 42 256 320 43 17731 43 256 320 42 05582 44 288 320 40 93434 45 288 320 39 81285 46 288 320 38 69137 47 288 320 37 56988 48 288 320 36 44839 49 288 320 35 32691 50 288 320 34 20542 51 288 320 33 08393 52 288 320 31 96244 53 300 320 30 84096 54 300 320 29 71947 55 300 320 28 59798 56 300 320 27 47649 57 320 320 26 35500 58 320 320 25 23351 59 320 320 24 11203 60 320 320 22 99054 61 320 320 21 86905 62 320 320 20 74756 63 320 320 19 62607 64 320 320 18 50458 65 320 320 17 38309 66 320 320 16 26160 67 320 320 15 14011 68 320 320 14 01862 69 320 320 12 89713 70 320 320 11 77564 71 320 320 10 65415 72 320 320 9 53266 73 320 320 8 41117 74 320 320 7 28968 75 320 320 6 16819 76 320 320 5 04670 77 320 320 3 92521 78 320 320 2 80372 79 320 320 1 68223 80 320 320 0 56074 n80 reform n80 4 80 over n80 reform n80 3 over n80 n80 reverse n80 return n80 end"); 44 a[42] = new Array("./Grid/ncdf_meshread.html", "ncdf_meshread.pro", "", " file_comments read NetCDF meshmask file created by OPA categories Grid examples IDL ncdf_meshread filename param filename in optional default meshmask nc type scalar string Name of the meshmask file to read If this name does not contain any and if iodirectory keyword is not specified then the common variable iodir will be used to define the mesh file path keyword GLAMBOUNDARY default those defined in the file type 2 elements vector Longitude boundaries that should be used to visualize the data lon2 lon1 lon2 lon1 le 360 By default the common cm_4mesh variable key_shift will be automatically defined according to GLAMBOUNDARY keyword CHECKDAT Suppressed Use micromeshmask to create an appropriate meshmask keyword ONEARTH default 1 type scalar: 0 or 1 Force the manual definition of data localization on the earth or not 0 if the data are not on the earth 1 if the data are on earth in that case we can for example use the labels longitude latitude in plots The resulting value will be stored in the common cm_4mesh variable key_onearth ONEARTH 0 forces PERIODIC 0 SHIFT 0 and is cancelling GLAMBOUNDARY keyword GETDIMENSIONS default 0 type scalar: 0 or 1 Activate this keywords if you only want to know the dimension of the domain stored in the mesh file This dimension will be defined in jpiglo jpjglo jpkglo cm_4mesh common variables keyword PERIODIC default computed by using the first line of glamt type scalar: 0 or 1 Force the manual definition of the grid zonal periodicity The resulting value will be stored in the common cm_4mesh variable key_periodic PERIODIC 0 forces SHIFT 0 keyword SHIFT default computed according to glamboundary type scalar Force the manual definition of the zonal shift that must be apply to the data The resulting value will be stored in the common cm_4mesh variable key_shift Note that if key_periodic 0 then in any case key_shift 0 keyword STRCALLING type scalar string the calling command used to call computegrid this is used by xxx keyword STRIDE default 1 1 1 type 3 elements vector Specify the stride in x y and z direction The resulting value will be stored in the common cm_4mesh variable key_stride keyword _EXTRA Used to pass keywords to isafile uses cm_4mesh cm_4data cm_4cal restrictions ixminmesh ixmaxmesh iyminmesh iymaxmesh izminmesh izmaxmesh must be defined before calling ncdf_meshread If some of those values are equal to 1 they will be automatically defined history Sebastien Masson smasson lodyc jussieu fr 12 1999 July 2004 Sebastien Masson: Several modifications micromeshmask clean partial steps clean use of key_stride automatic definition of key_shift Oct 2004 Sebastien Masson: add PERIODIC and SHIFT Aug 2005 Sebastien Masson: some cleaning english version Id: ncdf_meshread pro 3 27 2007 12 13 16:22:35Z pinsard PRO ncdf_meshread filename GLAMBOUNDARY glamboundary CHECKDAT checkdat ONEARTH onearth GETDIMENSIONS getdimensions PERIODIC periodic SHIFT shift STRIDE stride 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 tempsun systime 1 for key_performance IF keyword_set CHECKDAT THEN BEGIN ras report The keyword CHECKDAT has been suppressed it could create bugs Remove it from the call of ncdf_meshread Please use smallmeshmask pro or micromeshmask pro to create a meshmask that has manageable size return ENDIF find meshfile name and open it def of filename by default IF n_params EQ 0 then filename meshmask nc meshname isafile file filename iodirectory iodir _EXTRA ex meshname meshname 0 noticebase xnotice Reading file C meshname C if the meshmask is on tape archive get it back IF version OS_FAMILY EQ unix THEN spawn file meshname dev null cdfid ncdf_open meshname inq ncdf_inquire cdfid dimensions ncdf_diminq cdfid x name jpiglo ncdf_diminq cdfid y name jpjglo listdims strlowcase ncdf_listdims cdfid IF where listdims EQ z 0 NE 1 THEN ncdf_diminq cdfid z name jpkglo ELSE BEGIN dimid where strmid listdims 0 5 EQ depth 0 IF dimid NE 1 THEN ncdf_diminq cdfid dimid name jpkglo ELSE BEGIN dummy report We could not find the vertical dimension its name must be z or start with depth stop ENDELSE ENDELSE if keyword_set getdimensions then begin widget_control noticebase bad_id nothing destroy ncdf_close cdfid return endif check that all i xyz min ax mesh are well defined if n_elements ixminmesh EQ 0 THEN ixminmesh 0 if n_elements ixmaxmesh EQ 0 then ixmaxmesh jpiglo 1 if ixminmesh EQ 1 THEN ixminmesh 0 IF ixmaxmesh EQ 1 then ixmaxmesh jpiglo 1 if n_elements iyminmesh EQ 0 THEN iyminmesh 0 IF n_elements iymaxmesh EQ 0 then iymaxmesh jpjglo 1 if iyminmesh EQ 1 THEN iyminmesh 0 IF iymaxmesh EQ 1 then iymaxmesh jpjglo 1 if n_elements izminmesh EQ 0 THEN izminmesh 0 IF n_elements izmaxmesh EQ 0 then izmaxmesh jpkglo 1 if izminmesh EQ 1 THEN izminmesh 0 IF izmaxmesh EQ 1 then izmaxmesh jpkglo 1 definition of jpi jpj jpj jpi long ixmaxmesh ixminmesh 1 jpj long iymaxmesh iyminmesh 1 jpk long izmaxmesh izminmesh 1 check onearth and its consequences IF n_elements onearth EQ 0 THEN key_onearth 1 ELSE key_onearth keyword_set onearth IF NOT key_onearth THEN BEGIN periodic 0 shift 0 ENDIF automatic definition of key_periodic IF n_elements periodic EQ 0 THEN BEGIN IF jpi GT 1 THEN BEGIN varinq ncdf_varinq cdfid glamt CASE varinq ndims OF 2:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh count jpi 1 3:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 count jpi 1 1 4:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 0 count jpi 1 1 1 ENDCASE xaxis xaxis 720 MOD 360 xaxis xaxis sort xaxis key_periodic xaxis jpi 1 2 xaxis jpi 1 xaxis jpi 2 GE xaxis 0 360 ENDIF ELSE key_periodic 0 ENDIF ELSE key_periodic keyword_set periodic automatic definition of key_shift IF n_elements shift EQ 0 THEN BEGIN key_shift long testvar var key_shift key_shift will be defined according to the first line of glamt if keyword_set glamboundary AND jpi GT 1 AND key_periodic EQ 1 THEN BEGIN varinq ncdf_varinq cdfid glamt CASE varinq ndims OF 2:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh count jpi 1 3:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 count jpi 1 1 4:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 0 count jpi 1 1 1 ENDCASE xaxis between glamboundary 0 and glamboundary 1 xaxis xaxis MOD 360 smaller where xaxis LT glamboundary 0 if smaller 0 NE 1 then xaxis smaller xaxis smaller 360 bigger where xaxis GE glamboundary 1 if bigger 0 NE 1 then xaxis bigger xaxis bigger 360 key_shift where xaxis EQ min xaxis 0 IF key_shift NE 0 THEN BEGIN key_shift jpi key_shift xaxis shift xaxis key_shift ENDIF IF array_equal sort xaxis lindgen jpi NE 1 THEN BEGIN ras report the x axis 1st line of glamt is not sorted in the increasing order after the automatic definition of key_shift please use the keyword shift and periodic to suppress the automatic definition of key_shift and key_periodic and define by hand a more suitable value widget_control noticebase bad_id nothing destroy return ENDIF ENDIF ELSE key_shift 0 ENDIF ELSE key_shift long shift key_periodic EQ 1 check key_stride and related things if n_elements stride eq 3 then key_stride stride if n_elements key_stride LE 2 then key_stride 1 1 1 key_stride 1l long key_stride IF total key_stride NE 3 THEN BEGIN IF key_shift NE 0 THEN BEGIN for explanation see header of read_ncdf_varget pro jpiright key_shift jpileft jpi key_shift key_stride 0 1 key_shift 1 MOD key_stride 0 jpi jpiright 1 key_stride 0 1 jpileft 1 key_stride 0 1 ENDIF ELSE jpi jpi 1 key_stride 0 1 jpj jpj 1 key_stride 1 1 jpk jpk 1 key_stride 2 1 ENDIF default definitions to be able to use read_ncdf_varget default definitions to be able to use read_ncdf_varget ixmindtasauve testvar var ixmindta iymindtasauve testvar var iymindta izmindtasauve testvar var izmindta ixmindta 0l iymindta 0l izmindta 0l jpt 1 time 1 firsttps 0 firstx 0 lastx jpi 1 firsty 0 lasty jpj 1 firstz 0 lastz jpk 1 nx jpi ny jpj nz 1 izminmeshsauve izminmesh izminmesh 0 key_yreverse 0 key_zreverse 0 key_gridtype c 2d arrays: list the 2d variables that must be read namevar glamt glamu glamv glamf gphit gphiu gphiv gphif e1t e1u e1v e1f e2t e2u e2v e2f for the variables related to the partial steps allvarname ncdf_listvars cdfid IF where allvarname EQ hdept 0 NE 1 THEN BEGIN key_partialstep 1 namevar namevar hdept hdepw ENDIF ELSE BEGIN key_partialstep 0 hdept 1 hdepw 1 ENDELSE for compatibility with old versions of meshmask partial steps IF where allvarname EQ e3tp 0 NE 1 THEN namevar namevar e3tp e3wp ELSE BEGIN e3t_ps 1 e3w_ps 1 ENDELSE IF where allvarname EQ e3t_ps 0 NE 1 THEN namevar namevar e3t_ps e3w_ps ELSE BEGIN e3t_ps 1 e3w_ps 1 ENDELSE IF where allvarname EQ e3u_ps 0 NE 1 THEN namevar namevar e3u_ps e3v_ps ELSE BEGIN e3u_ps 1 e3v_ps 1 ENDELSE read all the 2d variables for i 0 n_elements namevar 1 do begin varinq ncdf_varinq cdfid namevar i name varinq name read_ncdf_varget command namevar i float temporary res nothing execute command ENDFOR for compatibility with old versions of meshmask partial steps change e3 tw p to e3 tw _ps IF n_elements e3tp NE 0 THEN e3t_ps temporary e3tp IF n_elements e3wp NE 0 THEN e3w_ps temporary e3wp in the case of key_stride ne 1 1 1 redefine f points coordinates: they must be in the middle of 3 T points if key_stride 0 NE 1 OR key_stride 1 NE 1 then BEGIN we must recompute glamf and gphif IF jpi GT 1 THEN BEGIN if keyword_set key_onearth AND keyword_set xnotsorted OR keyword_set key_periodic AND key_irregular then BEGIN stepxf glamt 720 MOD 360 stepxf shift stepxf 1 1 stepxf stepxf stepxf stepxf 360 stepxf 360 stepxf min abs stepxf dimension 3 IF NOT keyword_set key_periodic THEN stepxf jpi 1 stepxf jpi 2 ENDIF ELSE BEGIN stepxf shift glamt 1 1 glamt IF keyword_set key_periodic THEN stepxf jpi 1 360 stepxf jpi 1 ELSE stepxf jpi 1 stepxf jpi 2 ENDELSE IF jpj GT 1 THEN BEGIN stepxf jpj 1 stepxf jpj 2 stepxf jpi 1 jpj 1 stepxf jpi 2 jpj 2 ENDIF glamf glamt 0 5 stepxf ENDIF ELSE glamf glamt 0 5 IF jpj GT 1 THEN BEGIN we must compute stepyf: y distance between T i j T i 1 j 1 stepyf shift gphit 1 1 gphit stepyf jpj 1 stepyf jpj 2 IF jpi GT 1 THEN BEGIN if NOT keyword_set key_periodic THEN stepyf jpi 1 stepyf jpi 2 stepyf jpi 1 jpj 1 stepyf jpi 2 jpj 2 ENDIF gphif gphit 0 5 stepyf ENDIF ELSE gphif gphit 0 5 ENDIF 3d arrays: nz jpk izminmesh izminmeshsauve listdims ncdf_listdims cdfid micromask where listdims EQ y_m 0 varinq ncdf_varinq cdfid tmask name varinq name IF micromask NE 1 THEN BEGIN keep original values iyminmeshtrue iyminmesh key_stridetrue key_stride yyy1 firsty key_stridetrue 1 iyminmeshtrue yyy2 lasty key_stridetrue 1 iyminmeshtrue the mask is stored as the bit values of the byte array along the y dimension see micromeshmask pro we must modify several parameters iyminmesh 0L firsty yyy1 8 lasty yyy2 8 ny lasty firsty 1 key_stride key_stride 0 1 key_stride 2 read_ncdf_varget tmask bytarr jpi jpj jpk now we must get back the mask loop on the level to save memory the loop is short and thus should be fast enough FOR k 0 jpk 1 DO BEGIN zzz transpose res k zzz reform binary zzz 8 ny nx over zzz transpose temporary zzz zzz zzz yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 IF key_stridetrue 1 NE 1 THEN BEGIN IF float strmid version release 0 3 LT 5 6 THEN BEGIN nnny size zzz 2 yind key_stridetrue 1 lindgen nnny 1 key_stridetrue 1 1 tmask k temporary zzz yind ENDIF ELSE tmask k temporary zzz 0: :key_stridetrue 1 ENDIF ELSE tmask k temporary zzz ENDFOR ENDIF ELSE BEGIN read_ncdf_varget tmask byte res ENDELSE boundary conditions used to compute umask varinq ncdf_varinq cdfid umask name varinq name nx 1L firstx jpi 1 lastx jpi 1 IF micromask NE 1 THEN BEGIN read_ncdf_varget umaskred reform binary res 8 ny jpk over umaskred umaskred yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 IF key_stridetrue 1 NE 1 THEN umaskred temporary umaskred yind ENDIF ELSE BEGIN read_ncdf_varget umaskred reform byte res over ENDELSE boundary conditions used to compute fmask 1 varinq ncdf_varinq cdfid fmask name varinq name IF micromask NE 1 THEN BEGIN read_ncdf_varget fmaskredy reform binary res 8 ny jpk over fmaskredy fmaskredy yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 IF key_stridetrue 1 NE 1 THEN fmaskredy temporary fmaskredy yind ENDIF ELSE BEGIN read_ncdf_varget fmaskredy reform byte res over fmaskredy temporary fmaskredy MOD 2 ENDELSE boundary conditions used to compute vmask varinq ncdf_varinq cdfid vmask name varinq name nx jpi firstx 0L lastx jpi 1L ny 1L firsty jpj 1 lasty jpj 1 IF micromask NE 1 THEN BEGIN yyy1 firsty key_stridetrue 1 iyminmeshtrue yyy2 lasty key_stridetrue 1 iyminmeshtrue iyminmesh 0L firsty yyy1 8 lasty yyy2 8 ny lasty firsty 1 read_ncdf_varget IF jpk EQ 1 THEN res reform res jpi 1 jpk over vmaskred transpose temporary res 1 0 2 vmaskred reform binary vmaskred 8 ny nx nz over vmaskred transpose temporary vmaskred 1 0 2 vmaskred reform vmaskred yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 ENDIF ELSE BEGIN read_ncdf_varget vmaskred reform byte res over ENDELSE boundary conditions used to compute fmask 2 varinq ncdf_varinq cdfid fmask name varinq name IF micromask NE 1 THEN BEGIN read_ncdf_varget IF jpk EQ 1 THEN res reform res jpi 1 jpk over fmaskredx transpose temporary res 1 0 2 fmaskredx reform binary fmaskredx 8 ny nx nz over fmaskredx transpose temporary fmaskredx 1 0 2 fmaskredx reform fmaskredx yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 iyminmesh iyminmeshtrue key_stride key_stridetrue ENDIF ELSE BEGIN read_ncdf_varget fmaskredx reform byte res over fmaskredx fmaskredx MOD 2 ENDELSE1d arrays IF where allvarname EQ e3t_0 0 NE 1 THEN fnamevar e3t_0 e3w_0 gdept_0 gdepw_0 ELSE fnamevar e3t e3w gdept gdepw namevar e3t e3w gdept gdepw for i 0 n_elements namevar 1 do begin varinq ncdf_varinq cdfid fnamevar i CASE n_elements varinq dim OF 4:BEGIN command ncdf_varget cdfid fnamevar i namevar i offset 0 0 izminmesh 0 count 1 1 jpk 1 if key_stride 2 NE 1 then command command stride 1 1 key_stride 2 1 END 2:BEGIN command ncdf_varget cdfid fnamevar i namevar i offset izminmesh 0 count jpk 1 if key_stride 2 NE 1 then command command stride key_stride 2 END 1:BEGIN command ncdf_varget cdfid fnamevar i namevar i offset izminmesh count jpk if key_stride 2 NE 1 then command command stride key_stride 2 END ENDCASE nothing execute command command namevar i float namevar i nothing execute command command if size namevar i n_dimension gt 0 then namevar i reform namevar i over nothing execute command ENDFOR ncdf_close cdfid Apply Glamboundary if keyword_set glamboundary AND key_onearth then BEGIN if glamboundary 0 NE glamboundary 1 then BEGIN glamt temporary glamt MOD 360 smaller where glamt LT glamboundary 0 if smaller 0 NE 1 then glamt smaller glamt smaller 360 bigger where glamt GE glamboundary 1 if bigger 0 NE 1 then glamt bigger glamt bigger 360 glamu temporary glamu MOD 360 smaller where glamu LT glamboundary 0 if smaller 0 NE 1 then glamu smaller glamu smaller 360 bigger where glamu GE glamboundary 1 if bigger 0 NE 1 then glamu bigger glamu bigger 360 glamv temporary glamv MOD 360 smaller where glamv LT glamboundary 0 if smaller 0 NE 1 then glamv smaller glamv smaller 360 bigger where glamv GE glamboundary 1 if bigger 0 NE 1 then glamv bigger glamv bigger 360 glamf temporary glamf MOD 360 smaller where glamf LT glamboundary 0 if smaller 0 NE 1 then glamf smaller glamf smaller 360 bigger where glamf GE glamboundary 1 if bigger 0 NE 1 then glamf bigger glamf bigger 360 toosmall where glamu EQ glamboundary 0 IF toosmall 0 NE 1 THEN glamu toosmall glamu toosmall 360 toosmall where glamf EQ glamboundary 0 IF toosmall 0 NE 1 THEN glamf toosmall glamf toosmall 360 endif endif make sure we do have 2d arrays when jpj eq 1 IF jpj EQ 1 THEN BEGIN glamt reform glamt jpi jpj over gphit reform gphit jpi jpj over e1t reform e1t jpi jpj over e2t reform e2t jpi jpj over glamu reform glamu jpi jpj over gphiu reform gphiu jpi jpj over e1u reform e1u jpi jpj over e2u reform e2u jpi jpj over glamv reform glamv jpi jpj over gphiv reform gphiv jpi jpj over e1v reform e1v jpi jpj over e2v reform e2v jpi jpj over glamf reform glamf jpi jpj over gphif reform gphif jpi jpj over e1f reform e1f jpi jpj over e2f reform e2f jpi jpj over IF keyword_set key_partialstep THEN BEGIN hdept reform hdept jpi jpj over hdepw reform hdepw jpi jpj over e3t_ps reform e3t_ps jpi jpj over e3w_ps reform e3w_ps jpi jpj over ENDIF ENDIF ixmindta ixmindtasauve iymindta iymindtasauve izmindta izmindtasauve widget_control noticebase bad_id nothing destroy grid parameters used by xxx IF NOT keyword_set strcalling THEN BEGIN IF n_elements ccmeshparameters EQ 0 THEN strcalling ncdf_meshread ELSE strcalling ccmeshparameters filename ENDIF IF n_elements glamt GE 2 THEN BEGIN glaminfo moment glamt IF finite glaminfo 2 EQ 0 THEN glaminfo glaminfo 0:1 gphiinfo moment gphit IF finite gphiinfo 2 EQ 0 THEN gphiinfo gphiinfo 0:1 ENDIF ELSE BEGIN glaminfo glamt gphiinfo gphit ENDELSE romszinfos h: 1 zeta: 1 theta_s: 1 theta_b: 1 hc: 1 ccmeshparameters filename:strcalling glaminfo:float string glaminfo format E11 4 gphiinfo:float string gphiinfo format E11 4 jpiglo:jpiglo jpjglo:jpjglo jpkglo:jpkglo jpi:jpi jpj:jpj jpk:jpk ixminmesh:ixminmesh ixmaxmesh:ixmaxmesh iyminmesh:iyminmesh iymaxmesh:iymaxmesh izminmesh:izminmesh izmaxmesh:izmaxmesh key_shift:key_shift key_periodic:key_periodic key_stride:key_stride key_gridtype:key_gridtype key_yreverse:key_yreverse key_zreverse:key_zreverse key_partialstep:key_partialstep key_onearth:key_onearth if keyword_set key_performance THEN print time ncdf_meshread systime 1 tempsun updateold return end");44 a[42] = new Array("./Grid/ncdf_meshread.html", "ncdf_meshread.pro", "", " file_comments read NetCDF meshmask file created by OPA categories Grid examples IDL ncdf_meshread filename param filename in optional default meshmask nc type scalar string Name of the meshmask file to read If this name does not contain any and if iodirectory keyword is not specified then the common variable iodir will be used to define the mesh file path keyword GLAMBOUNDARY default those defined in the file type 2 elements vector Longitude boundaries that should be used to visualize the data lon2 lon1 lon2 lon1 le 360 By default the common cm_4mesh variable key_shift will be automatically defined according to GLAMBOUNDARY keyword CHECKDAT Suppressed Use micromeshmask to create an appropriate meshmask keyword ONEARTH default 1 type scalar: 0 or 1 Force the manual definition of data localization on the earth or not 0 if the data are not on the earth 1 if the data are on earth in that case we can for example use the labels longitude latitude in plots The resulting value will be stored in the common cm_4mesh variable key_onearth ONEARTH 0 forces PERIODIC 0 SHIFT 0 and is cancelling GLAMBOUNDARY keyword GETDIMENSIONS default 0 type scalar: 0 or 1 Activate this keywords if you only want to know the dimension of the domain stored in the mesh file This dimension will be defined in jpiglo jpjglo jpkglo cm_4mesh common variables keyword PERIODIC default computed by using the first line of glamt type scalar: 0 or 1 Force the manual definition of the grid zonal periodicity The resulting value will be stored in the common cm_4mesh variable key_periodic PERIODIC 0 forces SHIFT 0 keyword SHIFT default computed according to glamboundary type scalar Force the manual definition of the zonal shift that must be apply to the data The resulting value will be stored in the common cm_4mesh variable key_shift Note that if key_periodic 0 then in any case key_shift 0 keyword STRCALLING type scalar string the calling command used to call computegrid this is used by xxx keyword STRIDE default 1 1 1 type 3 elements vector Specify the stride in x y and z direction The resulting value will be stored in the common cm_4mesh variable key_stride keyword _EXTRA Used to pass keywords to isafile uses cm_4mesh cm_4data cm_4cal restrictions ixminmesh ixmaxmesh iyminmesh iymaxmesh izminmesh izmaxmesh must be defined before calling ncdf_meshread If some of those values are equal to 1 they will be automatically defined history Sebastien Masson smasson lodyc jussieu fr 12 1999 July 2004 Sebastien Masson: Several modifications micromeshmask clean partial steps clean use of key_stride automatic definition of key_shift Oct 2004 Sebastien Masson: add PERIODIC and SHIFT Aug 2005 Sebastien Masson: some cleaning english version Id: ncdf_meshread pro 359 2008 06 05 13:06:39Z smasson PRO ncdf_meshread filename GLAMBOUNDARY glamboundary CHECKDAT checkdat ONEARTH onearth GETDIMENSIONS getdimensions PERIODIC periodic SHIFT shift STRIDE stride 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 tempsun systime 1 for key_performance IF keyword_set CHECKDAT THEN BEGIN ras report The keyword CHECKDAT has been suppressed it could create bugs Remove it from the call of ncdf_meshread Please use smallmeshmask pro or micromeshmask pro to create a meshmask that has manageable size return ENDIF find meshfile name and open it def of filename by default IF n_params EQ 0 then filename meshmask nc meshname isafile file filename iodirectory iodir _EXTRA ex meshname meshname 0 noticebase xnotice Reading file C meshname C if the meshmask is on tape archive get it back IF version OS_FAMILY EQ unix THEN spawn file meshname dev null cdfid ncdf_open meshname inq ncdf_inquire cdfid dimensions ncdf_diminq cdfid x name jpiglo ncdf_diminq cdfid y name jpjglo listdims strlowcase ncdf_listdims cdfid IF where listdims EQ z 0 NE 1 THEN ncdf_diminq cdfid z name jpkglo ELSE BEGIN dimid where strmid listdims 0 5 EQ depth 0 IF dimid NE 1 THEN ncdf_diminq cdfid dimid name jpkglo ELSE BEGIN dummy report We could not find the vertical dimension its name must be z or start with depth stop ENDELSE ENDELSE if keyword_set getdimensions then begin widget_control noticebase bad_id nothing destroy ncdf_close cdfid return endif check that all i xyz min ax mesh are well defined if n_elements ixminmesh EQ 0 THEN ixminmesh 0 if n_elements ixmaxmesh EQ 0 then ixmaxmesh jpiglo 1 if ixminmesh EQ 1 THEN ixminmesh 0 IF ixmaxmesh EQ 1 then ixmaxmesh jpiglo 1 if n_elements iyminmesh EQ 0 THEN iyminmesh 0 IF n_elements iymaxmesh EQ 0 then iymaxmesh jpjglo 1 if iyminmesh EQ 1 THEN iyminmesh 0 IF iymaxmesh EQ 1 then iymaxmesh jpjglo 1 if n_elements izminmesh EQ 0 THEN izminmesh 0 IF n_elements izmaxmesh EQ 0 then izmaxmesh jpkglo 1 if izminmesh EQ 1 THEN izminmesh 0 IF izmaxmesh EQ 1 then izmaxmesh jpkglo 1 definition of jpi jpj jpj jpi long ixmaxmesh ixminmesh 1 jpj long iymaxmesh iyminmesh 1 jpk long izmaxmesh izminmesh 1 check onearth and its consequences IF n_elements onearth EQ 0 THEN key_onearth 1 ELSE key_onearth keyword_set onearth IF NOT key_onearth THEN BEGIN periodic 0 shift 0 ENDIF automatic definition of key_periodic IF n_elements periodic EQ 0 THEN BEGIN IF jpi GT 1 THEN BEGIN varinq ncdf_varinq cdfid glamt CASE varinq ndims OF 2:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh count jpi 1 3:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 count jpi 1 1 4:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 0 count jpi 1 1 1 ENDCASE xaxis xaxis 720 MOD 360 xaxis xaxis sort xaxis key_periodic xaxis jpi 1 2 xaxis jpi 1 xaxis jpi 2 GE xaxis 0 360 ENDIF ELSE key_periodic 0 ENDIF ELSE key_periodic keyword_set periodic automatic definition of key_shift IF n_elements shift EQ 0 THEN BEGIN key_shift long testvar var key_shift key_shift will be defined according to the first line of glamt if keyword_set glamboundary AND jpi GT 1 AND key_periodic EQ 1 THEN BEGIN varinq ncdf_varinq cdfid glamt CASE varinq ndims OF 2:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh count jpi 1 3:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 count jpi 1 1 4:ncdf_varget cdfid glamt xaxis offset ixminmesh iyminmesh 0 0 count jpi 1 1 1 ENDCASE xaxis between glamboundary 0 and glamboundary 1 xaxis xaxis MOD 360 smaller where xaxis LT glamboundary 0 if smaller 0 NE 1 then xaxis smaller xaxis smaller 360 bigger where xaxis GE glamboundary 1 if bigger 0 NE 1 then xaxis bigger xaxis bigger 360 key_shift where xaxis EQ min xaxis 0 IF key_shift NE 0 THEN BEGIN key_shift jpi key_shift xaxis shift xaxis key_shift ENDIF IF array_equal sort xaxis lindgen jpi NE 1 THEN BEGIN ras report the x axis 1st line of glamt is not sorted in the increasing order after the automatic definition of key_shift please use the keyword shift and periodic to suppress the automatic definition of key_shift and key_periodic and define by hand a more suitable value widget_control noticebase bad_id nothing destroy return ENDIF ENDIF ELSE key_shift 0 ENDIF ELSE key_shift long shift key_periodic EQ 1 check key_stride and related things if n_elements stride eq 3 then key_stride stride if n_elements key_stride LE 2 then key_stride 1 1 1 key_stride 1l long key_stride IF total key_stride NE 3 THEN BEGIN IF key_shift NE 0 THEN BEGIN for explanation see header of read_ncdf_varget pro jpiright key_shift jpileft jpi key_shift key_stride 0 1 key_shift 1 MOD key_stride 0 jpi jpiright 1 key_stride 0 1 jpileft 1 key_stride 0 1 ENDIF ELSE jpi jpi 1 key_stride 0 1 jpj jpj 1 key_stride 1 1 jpk jpk 1 key_stride 2 1 ENDIF default definitions to be able to use read_ncdf_varget default definitions to be able to use read_ncdf_varget ixmindtasauve testvar var ixmindta iymindtasauve testvar var iymindta izmindtasauve testvar var izmindta ixmindta 0l iymindta 0l izmindta 0l jpt 1 time 1 firsttps 0 firstx 0 lastx jpi 1 firsty 0 lasty jpj 1 firstz 0 lastz jpk 1 nx jpi ny jpj nz 1 izminmeshsauve izminmesh izminmesh 0 key_yreverse 0 key_zreverse 0 key_gridtype c 2d arrays: list the 2d variables that must be read namevar glamt glamu glamv glamf gphit gphiu gphiv gphif e1t e1u e1v e1f e2t e2u e2v e2f for the variables related to the partial steps allvarname ncdf_listvars cdfid IF where allvarname EQ hdept 0 NE 1 THEN BEGIN key_partialstep 1 namevar namevar hdept hdepw ENDIF ELSE BEGIN key_partialstep 0 hdept 1 hdepw 1 ENDELSE for compatibility with old versions of meshmask partial steps IF where allvarname EQ e3tp 0 NE 1 THEN namevar namevar e3tp e3wp ELSE BEGIN e3t_ps 1 e3w_ps 1 ENDELSE IF where allvarname EQ e3t_ps 0 NE 1 THEN namevar namevar e3t_ps e3w_ps ELSE BEGIN e3t_ps 1 e3w_ps 1 ENDELSE IF where allvarname EQ e3u_ps 0 NE 1 THEN namevar namevar e3u_ps e3v_ps ELSE BEGIN e3u_ps 1 e3v_ps 1 ENDELSE read all the 2d variables for i 0 n_elements namevar 1 do begin varinq ncdf_varinq cdfid namevar i name varinq name read_ncdf_varget command namevar i float temporary res nothing execute command ENDFOR for compatibility with old versions of meshmask partial steps change e3 tw p to e3 tw _ps IF n_elements e3tp NE 0 THEN e3t_ps temporary e3tp IF n_elements e3wp NE 0 THEN e3w_ps temporary e3wp in the case of key_stride ne 1 1 1 redefine f points coordinates: they must be in the middle of 3 T points if key_stride 0 NE 1 OR key_stride 1 NE 1 then BEGIN we must recompute glamf and gphif IF jpi GT 1 THEN BEGIN if keyword_set key_onearth AND keyword_set xnotsorted OR keyword_set key_periodic AND key_irregular then BEGIN stepxf glamt 720 MOD 360 stepxf shift stepxf 1 1 stepxf stepxf stepxf stepxf 360 stepxf 360 stepxf min abs stepxf dimension 3 IF NOT keyword_set key_periodic THEN stepxf jpi 1 stepxf jpi 2 ENDIF ELSE BEGIN stepxf shift glamt 1 1 glamt IF keyword_set key_periodic THEN stepxf jpi 1 360 stepxf jpi 1 ELSE stepxf jpi 1 stepxf jpi 2 ENDELSE IF jpj GT 1 THEN BEGIN stepxf jpj 1 stepxf jpj 2 stepxf jpi 1 jpj 1 stepxf jpi 2 jpj 2 ENDIF glamf glamt 0 5 stepxf ENDIF ELSE glamf glamt 0 5 IF jpj GT 1 THEN BEGIN we must compute stepyf: y distance between T i j T i 1 j 1 stepyf shift gphit 1 1 gphit stepyf jpj 1 stepyf jpj 2 IF jpi GT 1 THEN BEGIN if NOT keyword_set key_periodic THEN stepyf jpi 1 stepyf jpi 2 stepyf jpi 1 jpj 1 stepyf jpi 2 jpj 2 ENDIF gphif gphit 0 5 stepyf ENDIF ELSE gphif gphit 0 5 ENDIF 3d arrays: nz jpk izminmesh izminmeshsauve listdims ncdf_listdims cdfid micromask where listdims EQ y_m 0 varinq ncdf_varinq cdfid tmask name varinq name IF micromask NE 1 THEN BEGIN keep original values iyminmeshtrue iyminmesh key_stridetrue key_stride yyy1 firsty key_stridetrue 1 iyminmeshtrue yyy2 lasty key_stridetrue 1 iyminmeshtrue the mask is stored as the bit values of the byte array along the y dimension see micromeshmask pro we must modify several parameters iyminmesh 0L firsty yyy1 8 lasty yyy2 8 ny lasty firsty 1 key_stride key_stride 0 1 key_stride 2 read_ncdf_varget tmask bytarr jpi jpj jpk now we must get back the mask loop on the level to save memory the loop is short and thus should be fast enough FOR k 0 jpk 1 DO BEGIN zzz transpose res k zzz reform binary zzz 8 ny nx over zzz transpose temporary zzz zzz zzz yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 IF key_stridetrue 1 NE 1 THEN BEGIN IF float strmid version release 0 3 LT 5 6 THEN BEGIN nnny size zzz 2 yind key_stridetrue 1 lindgen nnny 1 key_stridetrue 1 1 tmask k temporary zzz yind ENDIF ELSE tmask k temporary zzz 0: :key_stridetrue 1 ENDIF ELSE tmask k temporary zzz ENDFOR ENDIF ELSE BEGIN read_ncdf_varget tmask byte res ENDELSE boundary conditions used to compute umask IF ncdf_varid cdfid umask NE 1 THEN BEGIN varinq ncdf_varinq cdfid umask name varinq name nx 1L firstx jpi 1 lastx jpi 1 IF micromask NE 1 THEN BEGIN read_ncdf_varget umaskred reform binary res 8 ny jpk over umaskred umaskred yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 IF key_stridetrue 1 NE 1 THEN umaskred temporary umaskred yind ENDIF ELSE BEGIN read_ncdf_varget umaskred reform byte res over ENDELSE ENDIF ELSE umaskred bytarr jpj jpk boundary conditions used to compute fmask 1 IF ncdf_varid cdfid fmask NE 1 THEN BEGIN varinq ncdf_varinq cdfid fmask name varinq name IF micromask NE 1 THEN BEGIN read_ncdf_varget fmaskredy reform binary res 8 ny jpk over fmaskredy fmaskredy yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 IF key_stridetrue 1 NE 1 THEN fmaskredy temporary fmaskredy yind ENDIF ELSE BEGIN read_ncdf_varget fmaskredy reform byte res over fmaskredy temporary fmaskredy MOD 2 ENDELSE ENDIF ELSE fmaskredy bytarr jpj jpk boundary conditions used to compute vmask IF ncdf_varid cdfid vmask NE 1 THEN BEGIN varinq ncdf_varinq cdfid vmask name varinq name nx jpi firstx 0L lastx jpi 1L ny 1L firsty jpj 1 lasty jpj 1 IF micromask NE 1 THEN BEGIN yyy1 firsty key_stridetrue 1 iyminmeshtrue yyy2 lasty key_stridetrue 1 iyminmeshtrue iyminmesh 0L firsty yyy1 8 lasty yyy2 8 ny lasty firsty 1 read_ncdf_varget IF jpk EQ 1 THEN res reform res jpi 1 jpk over vmaskred transpose temporary res 1 0 2 vmaskred reform binary vmaskred 8 ny nx nz over vmaskred transpose temporary vmaskred 1 0 2 vmaskred reform vmaskred yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 ENDIF ELSE BEGIN read_ncdf_varget vmaskred reform byte res over ENDELSE ENDIF ELSE vmaskred bytarr jpi jpk boundary conditions used to compute fmask 2 IF ncdf_varid cdfid fmask NE 1 THEN BEGIN varinq ncdf_varinq cdfid fmask name varinq name IF micromask NE 1 THEN BEGIN read_ncdf_varget IF jpk EQ 1 THEN res reform res jpi 1 jpk over fmaskredx transpose temporary res 1 0 2 fmaskredx reform binary fmaskredx 8 ny nx nz over fmaskredx transpose temporary fmaskredx 1 0 2 fmaskredx reform fmaskredx yyy1 MOD 8: 8 ny 8 yyy2 MOD 8 iyminmesh iyminmeshtrue key_stride key_stridetrue ENDIF ELSE BEGIN read_ncdf_varget fmaskredx reform byte res over fmaskredx fmaskredx MOD 2 ENDELSE ENDIF ELSE fmaskredx bytarr jpi jpk 1d arrays IF where allvarname EQ e3t_0 0 NE 1 THEN fnamevar e3t_0 e3w_0 gdept_0 gdepw_0 ELSE fnamevar e3t e3w gdept gdepw namevar e3t e3w gdept gdepw for i 0 n_elements namevar 1 do begin varinq ncdf_varinq cdfid fnamevar i CASE n_elements varinq dim OF 4:BEGIN command ncdf_varget cdfid fnamevar i namevar i offset 0 0 izminmesh 0 count 1 1 jpk 1 if key_stride 2 NE 1 then command command stride 1 1 key_stride 2 1 END 2:BEGIN command ncdf_varget cdfid fnamevar i namevar i offset izminmesh 0 count jpk 1 if key_stride 2 NE 1 then command command stride key_stride 2 END 1:BEGIN command ncdf_varget cdfid fnamevar i namevar i offset izminmesh count jpk if key_stride 2 NE 1 then command command stride key_stride 2 END ENDCASE nothing execute command command namevar i float namevar i nothing execute command command if size namevar i n_dimension gt 0 then namevar i reform namevar i over nothing execute command ENDFOR ncdf_close cdfid Apply Glamboundary if keyword_set glamboundary AND key_onearth then BEGIN if glamboundary 0 NE glamboundary 1 then BEGIN glamt temporary glamt MOD 360 smaller where glamt LT glamboundary 0 if smaller 0 NE 1 then glamt smaller glamt smaller 360 bigger where glamt GE glamboundary 1 if bigger 0 NE 1 then glamt bigger glamt bigger 360 glamu temporary glamu MOD 360 smaller where glamu LT glamboundary 0 if smaller 0 NE 1 then glamu smaller glamu smaller 360 bigger where glamu GE glamboundary 1 if bigger 0 NE 1 then glamu bigger glamu bigger 360 glamv temporary glamv MOD 360 smaller where glamv LT glamboundary 0 if smaller 0 NE 1 then glamv smaller glamv smaller 360 bigger where glamv GE glamboundary 1 if bigger 0 NE 1 then glamv bigger glamv bigger 360 glamf temporary glamf MOD 360 smaller where glamf LT glamboundary 0 if smaller 0 NE 1 then glamf smaller glamf smaller 360 bigger where glamf GE glamboundary 1 if bigger 0 NE 1 then glamf bigger glamf bigger 360 toosmall where glamu EQ glamboundary 0 IF toosmall 0 NE 1 THEN glamu toosmall glamu toosmall 360 toosmall where glamf EQ glamboundary 0 IF toosmall 0 NE 1 THEN glamf toosmall glamf toosmall 360 endif endif make sure we do have 2d arrays when jpj eq 1 IF jpj EQ 1 THEN BEGIN glamt reform glamt jpi jpj over gphit reform gphit jpi jpj over e1t reform e1t jpi jpj over e2t reform e2t jpi jpj over glamu reform glamu jpi jpj over gphiu reform gphiu jpi jpj over e1u reform e1u jpi jpj over e2u reform e2u jpi jpj over glamv reform glamv jpi jpj over gphiv reform gphiv jpi jpj over e1v reform e1v jpi jpj over e2v reform e2v jpi jpj over glamf reform glamf jpi jpj over gphif reform gphif jpi jpj over e1f reform e1f jpi jpj over e2f reform e2f jpi jpj over IF keyword_set key_partialstep THEN BEGIN hdept reform hdept jpi jpj over hdepw reform hdepw jpi jpj over e3t_ps reform e3t_ps jpi jpj over e3w_ps reform e3w_ps jpi jpj over ENDIF ENDIF ixmindta ixmindtasauve iymindta iymindtasauve izmindta izmindtasauve widget_control noticebase bad_id nothing destroy grid parameters used by xxx IF NOT keyword_set strcalling THEN BEGIN IF n_elements ccmeshparameters EQ 0 THEN strcalling ncdf_meshread ELSE strcalling ccmeshparameters filename ENDIF IF n_elements glamt GE 2 THEN BEGIN glaminfo moment glamt IF finite glaminfo 2 EQ 0 THEN glaminfo glaminfo 0:1 gphiinfo moment gphit IF finite gphiinfo 2 EQ 0 THEN gphiinfo gphiinfo 0:1 ENDIF ELSE BEGIN glaminfo glamt gphiinfo gphit ENDELSE romszinfos h: 1 zeta: 1 theta_s: 1 theta_b: 1 hc: 1 ccmeshparameters filename:strcalling glaminfo:float string glaminfo format E11 4 gphiinfo:float string gphiinfo format E11 4 jpiglo:jpiglo jpjglo:jpjglo jpkglo:jpkglo jpi:jpi jpj:jpj jpk:jpk ixminmesh:ixminmesh ixmaxmesh:ixmaxmesh iyminmesh:iyminmesh iymaxmesh:iymaxmesh izminmesh:izminmesh izmaxmesh:izmaxmesh key_shift:key_shift key_periodic:key_periodic key_stride:key_stride key_gridtype:key_gridtype key_yreverse:key_yreverse key_zreverse:key_zreverse key_partialstep:key_partialstep key_onearth:key_onearth if keyword_set key_performance THEN print time ncdf_meshread systime 1 tempsun updateold return end"); 45 45 a[43] = new Array("./Grid/ncdf_meshroms.html", "ncdf_meshroms.pro", "", " file_comments read NetCDF grid file created by ROMS categories Grid examples IDL ncdf_meshroms filename param filename in optional default roms_grd nc type scalar string Name of the meshmask file to read If this name does not contain any and if iodirectory keyword is not specify then the common variable iodir will be used to define the mesh file path keyword GLAMBOUNDARY default those defined in the file type 2 elements vector Longitude boundaries that should be used to visualize the data lon2 lon1 lon2 lon1 le 360 By default the common cm_4mesh variable key_shift will be automatically defined according to GLAMBOUNDARY keyword ONEARTH default 1 type scalar: 0 or 1 Force the manual definition of data localization on the earth or not 0 if the data are not on the earth 1 if the data are on earth in that case we can for example use the labels longitude latitude in plots The resulting value will be stored in the common cm_4mesh variable key_onearth ONEARTH 0 forces PERIODIC 0 SHIFT 0 and is cancelling GLAMBOUNDARY keyword GETDIMENSIONS default 0 type scalar: 0 or 1 Activate this keywords if you only want to know the dimension of the domain stored in the mesh file This dimension will be defined in jpiglo jpjglo jpkglo cm_4mesh common variables keyword PERIODIC default computed by using the first line of glamt type scalar: 0 or 1 Force the manual definition of the grid zonal periodicity The resulting value will be stored in the common cm_4mesh variable key_periodic PERIODIC 0 forces SHIFT 0 keyword NRHO default 1 type scalar Specify the number of rho level that contain the data we want to explore This is mainly useful when using xxx to get access to the deeper levers and vertical sections keyword SHIFT default computed according to glamboundary type scalar Force the manual definition of the zonal shift that must be apply to the data The resulting value will be stored in the common cm_4mesh variable key_shift Note that if key_periodic 0 then in any case key_shift 0 keyword STRCALLING type scalar string the calling command used to call computegrid this is used by xxx keyword STRIDE default 1 1 1 type 3 elements vector Specify the stride in x y and z direction The resulting value will be stored in the common cm_4mesh variable key_stride keyword _EXTRA Used to pass keywords to isafile uses cm_4mesh cm_4data cm_4cal restrictions ixminmesh ixmaxmesh iyminmesh iymaxmesh izminmesh izmaxmesh must be defined before calling ncdf_meshread If some of those values are equal to 1 they will be automatically defined In the original ROMS grid if F grid has jpi jpj points then T grid will have jpi 1 jpj 1 points U grid will have jpi jpj 1 points and V grid will have jpi 1 jpj points By default C grid used in this package needs the same number of points for T U V and F grid with a T point at the bottom left corner of the grid We therefore ignore the last column of T and V points and the last line of T and U points Scale factors are computed using the distance between the points which is not the exact definition for irregular grid history Sebastien Masson smasson lodyc jussieu fr September 2006 version Id: ncdf_meshroms pro 327 2007 12 13 16:22:35Z pinsard PRO ncdf_meshroms filename NRHO nrho GLAMBOUNDARY glamboundary ONEARTH onearth GETDIMENSIONS getdimensions PERIODIC periodic SHIFT shift STRIDE stride 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 tempsun systime 1 for key_performance find meshfile name and open it def of filename by default IF n_params EQ 0 then filename roms_grd nc meshname isafile file filename iodirectory iodir _EXTRA ex meshname meshname 0 noticebase xnotice Reading file C meshname C if the meshmask is on tape archive get it back IF version OS_FAMILY EQ unix THEN spawn file meshname dev null cdfid ncdf_open meshname inq ncdf_inquire cdfid dimensions ncdf_diminq cdfid xi_rho name jpiglo ncdf_diminq cdfid eta_rho name jpjglo IF n_elements nrho NE 0 THEN jpkglo long nrho 0 ELSE jpkglo 1L if keyword_set getdimensions then begin widget_control noticebase bad_id nothing destroy ncdf_close cdfid return endif check that all i xyz min ax mesh are well defined if n_elements ixminmesh EQ 0 THEN ixminmesh 0 if n_elements ixmaxmesh EQ 0 then ixmaxmesh jpiglo 1 if ixminmesh EQ 1 THEN ixminmesh 0 IF ixmaxmesh EQ 1 then ixmaxmesh jpiglo 1 if n_elements iyminmesh EQ 0 THEN iyminmesh 0 IF n_elements iymaxmesh EQ 0 then iymaxmesh jpjglo 1 if iyminmesh EQ 1 THEN iyminmesh 0 IF iymaxmesh EQ 1 then iymaxmesh jpjglo 1 if n_elements izminmesh EQ 0 THEN izminmesh 0 IF n_elements izmaxmesh EQ 0 then izmaxmesh jpkglo 1 if izminmesh EQ 1 THEN izminmesh 0 IF izmaxmesh EQ 1 then izmaxmesh jpkglo 1 definition of jpi jpj jpj jpi long ixmaxmesh ixminmesh 1 jpj long iymaxmesh iyminmesh 1 jpk long izmaxmesh izminmesh 1 check onearth and its consequences IF n_elements onearth EQ 0 THEN key_onearth 1 ELSE key_onearth keyword_set onearth IF NOT key_onearth THEN BEGIN periodic 0 shift 0 ENDIF automatic definition of key_periodic IF n_elements periodic EQ 0 THEN BEGIN IF jpi GT 1 THEN BEGIN ncdf_varget cdfid lon_rho xaxis offset ixminmesh iyminmesh count jpi 1 xaxis xaxis 720 MOD 360 xaxis xaxis sort xaxis key_periodic xaxis jpi 1 2 xaxis jpi 1 xaxis jpi 2 GE xaxis 0 360 ENDIF ELSE key_periodic 0 ENDIF ELSE key_periodic keyword_set periodic automatic definition of key_shift IF n_elements shift EQ 0 THEN BEGIN key_shift long testvar var key_shift key_shift will be defined according to the first line of glamt if keyword_set glamboundary AND jpi GT 1 AND key_periodic EQ 1 THEN BEGIN ncdf_varget cdfid lon_rho xaxis offset ixminmesh iyminmesh count jpi 1 xaxis between glamboundary 0 and glamboundary 1 xaxis xaxis MOD 360 smaller where xaxis LT glamboundary 0 if smaller 0 NE 1 then xaxis smaller xaxis smaller 360 bigger where xaxis GE glamboundary 1 if bigger 0 NE 1 then xaxis bigger xaxis bigger 360 key_shift where xaxis EQ min xaxis 0 IF key_shift NE 0 THEN BEGIN key_shift jpi key_shift xaxis shift xaxis key_shift ENDIF IF array_equal sort xaxis lindgen jpi NE 1 THEN BEGIN ras report the x axis 1st line of glamt is not sorted in the increasing order after the automatic definition of key_shift please use the keyword shift and periodic to suppress the automatic definition of key_shift and key_periodic and define by hand a more suitable value widget_control noticebase bad_id nothing destroy return ENDIF ENDIF ELSE key_shift 0 ENDIF ELSE key_shift long shift key_periodic EQ 1 check key_stride and related things if n_elements stride eq 3 then key_stride stride if n_elements key_stride LE 2 then key_stride 1 1 1 key_stride 1l long key_stride IF total key_stride NE 3 THEN BEGIN IF key_shift NE 0 THEN BEGIN for explanation see header of read_ncdf_varget pro jpiright key_shift jpileft jpi key_shift key_stride 0 1 key_shift 1 MOD key_stride 0 jpi jpiright 1 key_stride 0 1 jpileft 1 key_stride 0 1 ENDIF ELSE jpi jpi 1 key_stride 0 1 jpj jpj 1 key_stride 1 1 jpk jpk 1 key_stride 2 1 ENDIF for the variables related to the partial steps key_partialstep 0 hdept 1 hdepw 1 default definitions to be able to use read_ncdf_varget default definitions to be able to use read_ncdf_varget ixmindtasauve testvar var ixmindta iymindtasauve testvar var iymindta izmindtasauve testvar var izmindta ixmindta 0l iymindta 0l izmindta 0l jpt 1 time 1 firsttps 0 firstx 0 lastx jpi 1 firsty 0 lasty jpj 1 firstz 0 lastz jpk 1 nx jpi ny jpj nz 1 izminmeshsauve izminmesh izminmesh 0 key_yreverse 0 key_zreverse 1 key_gridtype c 2d arrays: list the 2d variables that must be read namebase lon_ lat_ mask_ x_ y_ namebase2 glam gphi mask d1 d2 read all grid T variables for i 0 n_elements namebase 1 do begin varinq ncdf_varinq cdfid namebase i rho name varinq name read_ncdf_varget command namebase2 i t float temporary res nothing execute command ENDFOR d1t 1 e3 shift d1t 1 0 d1t d2t 1 e3 shift d2t 0 1 d2t for i 0 n_elements namebase2 1 do begin command namebase2 i t namebase2 i t 0:jpi 2 0:jpj 2 nothing execute command ENDFOR tmask byte temporary maskt IF jpk GT 1 THEN tmask reform tmask replicate 1b jpk jpi 1 jpj 1 jpk overwrite e1u temporary d1t e2v temporary d2t h: Final bathymetry at RHO points varinq ncdf_varinq cdfid h name varinq name read_ncdf_varget hroms float temporary res hroms hroms 0:jpi 2 0:jpj 2 read all grid U variables jpiglo jpiglo 1 jpi jpi 1 ixmaxmesh ixmaxmesh 1 firstx 0 lastx jpi 1 nx jpi for i 0 n_elements namebase 1 do begin varinq ncdf_varinq cdfid namebase i u name varinq name read_ncdf_varget command namebase2 i u float temporary res nothing execute command ENDFOR tmpsave 2 1 e3 d1u 0 0:jpj 2 d1u 1 e3 shift d1u 1 0 d1u d2u 1 e3 shift d2u 0 1 d2u for i 0 n_elements namebase2 1 do begin command namebase2 i u namebase2 i u 0:jpj 2 nothing execute command ENDFOR umaskred byte temporary masku jpi 1 IF jpk GT 1 THEN umaskred reform umaskred replicate 1b jpk 1 jpj 1 jpk overwrite e1t temporary d1u e1t shift temporary e1t 1 0 e1t 0 temporary tmpsave e2f temporary d2u read all grid V variables jpiglo jpiglo 1 jpi jpi 1 ixmaxmesh ixmaxmesh 1 firstx 0 lastx jpi 1 nx jpi jpjglo jpjglo 1 jpj jpj 1 iymaxmesh iymaxmesh 1 firsty 0 lasty jpj 1 ny jpj for i 0 n_elements namebase 1 do begin varinq ncdf_varinq cdfid namebase i v name varinq name read_ncdf_varget command namebase2 i v float temporary res nothing execute command ENDFOR d1v 1 e3 shift d1v 1 0 d1v tmpsave 2 1 e3 d2v 0:jpi 2 0 d2v 1 e3 shift d2v 0 1 d2v for i 0 n_elements namebase2 1 do begin command namebase2 i v namebase2 i v 0:jpi 2 nothing execute command ENDFOR vmaskred byte temporary maskv jpj 1 IF jpk GT 1 THEN vmaskred reform vmaskred replicate 1b jpk jpi 1 1 jpk overwrite e1f temporary d1v e2t temporary d2v e2t shift temporary e2t 0 1 e2t 0 temporary tmpsave read all grid F variables jpiglo jpiglo 1 jpi jpi 1 ixmaxmesh ixmaxmesh 1 firstx 0 lastx jpi 1 nx jpi for i 0 n_elements namebase 1 do begin varinq ncdf_varinq cdfid namebase i psi name varinq name read_ncdf_varget command namebase2 i f float temporary res nothing execute command ENDFOR tmpsave1 2 1 e3 d1f 0 d1f 1 e3 shift d1f 1 0 d1f tmpsave2 2 1 e3 d2f 0 d2f 1 e3 shift d2f 0 1 d2f fmaskredy byte maskf jpi 1 IF jpk GT 1 THEN fmaskredy reform fmaskredy replicate 1b jpk 1 jpj jpk overwrite fmaskredx byte temporary maskf jpj 1 IF jpk GT 1 THEN fmaskredx reform fmaskredx replicate 1b jpk jpi 1 jpk overwrite e1v temporary d1f e1v shift temporary e1v 1 0 e1v 0 temporary tmpsave1 e2u temporary d2f e2u shift temporary e2u 0 1 e2u 0 temporary tmpsave2 in the case of key_stride ne 1 1 1 redefine f points coordinates: they must be in the middle of 3 T points if key_stride 0 NE 1 OR key_stride 1 NE 1 then BEGIN we must recompute glamf and gphif IF jpi GT 1 THEN BEGIN if keyword_set key_onearth AND keyword_set xnotsorted OR keyword_set key_periodic AND key_irregular then BEGIN stepxf glamt 720 MOD 360 stepxf shift stepxf 1 1 stepxf stepxf stepxf stepxf 360 stepxf 360 stepxf min abs stepxf dimension 3 IF NOT keyword_set key_periodic THEN stepxf jpi 1 stepxf jpi 2 ENDIF ELSE BEGIN stepxf shift glamt 1 1 glamt IF keyword_set key_periodic THEN stepxf jpi 1 360 stepxf jpi 1 ELSE stepxf jpi 1 stepxf jpi 2 ENDELSE IF jpj GT 1 THEN BEGIN stepxf jpj 1 stepxf jpj 2 stepxf jpi 1 jpj 1 stepxf jpi 2 jpj 2 ENDIF glamf glamt 0 5 stepxf ENDIF ELSE glamf glamt 0 5 IF jpj GT 1 THEN BEGIN we must compute stepyf: y distance between T i j T i 1 j 1 stepyf shift gphit 1 1 gphit stepyf jpj 1 stepyf jpj 2 IF jpi GT 1 THEN BEGIN if NOT keyword_set key_periodic THEN stepyf jpi 1 stepyf jpi 2 stepyf jpi 1 jpj 1 stepyf jpi 2 jpj 2 ENDIF gphif gphit 0 5 stepyf ENDIF ELSE gphif gphit 0 5 ENDIF 1d arrays gdept findgen jpk gdepw findgen jpk e3t replicate 1 jpk e3w replicate 1 jpk ncdf_close cdfid Apply Glamboudary if keyword_set glamboundary AND key_onearth then BEGIN if glamboundary 0 NE glamboundary 1 then BEGIN glamt temporary glamt MOD 360 smaller where glamt LT glamboundary 0 if smaller 0 NE 1 then glamt smaller glamt smaller 360 bigger where glamt GE glamboundary 1 if bigger 0 NE 1 then glamt bigger glamt bigger 360 glamu temporary glamu MOD 360 smaller where glamu LT glamboundary 0 if smaller 0 NE 1 then glamu smaller glamu smaller 360 bigger where glamu GE glamboundary 1 if bigger 0 NE 1 then glamu bigger glamu bigger 360 glamv temporary glamv MOD 360 smaller where glamv LT glamboundary 0 if smaller 0 NE 1 then glamv smaller glamv smaller 360 bigger where glamv GE glamboundary 1 if bigger 0 NE 1 then glamv bigger glamv bigger 360 glamf temporary glamf MOD 360 smaller where glamf LT glamboundary 0 if smaller 0 NE 1 then glamf smaller glamf smaller 360 bigger where glamf GE glamboundary 1 if bigger 0 NE 1 then glamf bigger glamf bigger 360 toosmall where glamu EQ glamboundary 0 IF toosmall 0 NE 1 THEN glamu toosmall glamu toosmall 360 toosmall where glamf EQ glamboundary 0 IF toosmall 0 NE 1 THEN glamf toosmall glamf toosmall 360 endif endif make sure we do have 2d arrays when jpj eq 1 IF jpj EQ 1 THEN BEGIN glamt reform glamt jpi jpj over gphit reform gphit jpi jpj over e1t reform e1t jpi jpj over e2t reform e2t jpi jpj over glamu reform glamu jpi jpj over gphiu reform gphiu jpi jpj over e1u reform e1u jpi jpj over e2u reform e2u jpi jpj over glamv reform glamv jpi jpj over gphiv reform gphiv jpi jpj over e1v reform e1v jpi jpj over e2v reform e2v jpi jpj over glamf reform glamf jpi jpj over gphif reform gphif jpi jpj over e1f reform e1f jpi jpj over e2f reform e2f jpi jpj over ENDIF ixmindta ixmindtasauve iymindta iymindtasauve izmindta izmindtasauve widget_control noticebase bad_id nothing destroy grid parameters used by xxx IF NOT keyword_set strcalling THEN BEGIN IF n_elements ccmeshparameters EQ 0 THEN strcalling ncdf_meshroms 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 romszinfos h:hroms zeta:replicate 0 jpi jpj theta_s: 1 theta_b: 1 hc: 1 ccmeshparameters filename:strcalling glaminfo:float string glaminfo format E11 4 gphiinfo:float string gphiinfo format E11 4 jpiglo:jpiglo jpjglo:jpjglo jpkglo:jpkglo jpi:jpi jpj:jpj jpk:jpk ixminmesh:ixminmesh ixmaxmesh:ixmaxmesh iyminmesh:iyminmesh iymaxmesh:iymaxmesh izminmesh:izminmesh izmaxmesh:izmaxmesh key_shift:key_shift key_periodic:key_periodic key_stride:key_stride key_gridtype:key_gridtype key_yreverse:key_yreverse key_zreverse:key_zreverse key_partialstep:key_partialstep key_onearth:key_onearth if keyword_set key_performance THEN print time ncdf_meshread systime 1 tempsun updateold return end"); 46 46 a[44] = new Array("./Grid/numbisland.html", "numbisland.pro", "", " hidden file_comments recursive function for one given point on an island check if its neighbors are on the same island param msk in required type 2D array of 0 and 1 land sea mask with 0 on the land and 1 on the ocean param nx in required type scalar x size of the mask param ny in required type scalar y size of the mask param indin in required type 1D array index listing the point of the mask which are on the island param numb in required type scalar number of the island PRO mskneig msk nx ny indin numb compile_opt idl2 strictarrsubs flag the point msk indin numb find its neighbors indx indin MOD nx 1L 0L 1L indx temporary indx nx MOD nx x periodicity indy indin nx 1L 0L 1L indy 0 temporary indy a numbisland tmask 0 history Jan 2006: sebastien masson smasson locean ipsl upmc fr version Id: numbisland pro 325 2007 12 06 10:04:53Z pinsard FUNCTION numbisland mskin compile_opt idl2 strictarrsubs time1 systime 1 performance measurement szmsk size reform mskin IF szmsk 0 NE 2 THEN stop nx szmsk 1 ny szmsk 2 msk fix mskin islnumb 10 default value land where msk EQ 0 count 0 WHILE count NE 0 DO BEGIN IF islnumb 9 MOD 10 EQ 0 THEN BEGIN ras report island number : strtrim islnumb 9 1 ENDIF mskneig msk nx ny land islnumb land where msk EQ 0 count 0 islnumb islnumb 1 ENDWHILE msk msk 9 msk where msk EQ 8 0 print time: systime 1 time1 RETURN msk END"); … … 58 58 a[56] = new Array("./Interpolation/extrapolate.html", "extrapolate.pro", "", " file_comments extrapolate data zinput where maskinput equal 0 by filling step by step the coastline points with the mean value of the 8 neighbors weighted by their mask values categories Interpolation param zinput in required type 2d array data to be extrapolate param maskinput in required type 2d array or 1 a 2D array the land sea mask of the output data 1 on ocean 0 on land put 1 if input data are not masked param nb_iteration in optional type integer default large enough to fill everything Maximum number of iterations done in the extrapolation process If there is no more masked values we exit extrapolate before reaching nb_iteration keyword X_PERIODIC type scalar 0 or 1 default 0 put 1 to specify that the data are periodic along x axis keyword MINVAL type scalar default not used to specify a minimum value to the extrapolated values keyword MAXVAL type scalar default not used to specify a maximum value to the extrapolated values keyword GE0 type scalar 0 or 1 default 0 put 1 to force the extrapolated values to be larger than 0 same as using minval 0 keyword _EXTRA to be able to call extrapolate with _extra keyword returns the extrapolated 2d array examples IDL a extrapolate dist jpi jpj tmask 0 x_periodic IDL tvplus a IDL tvplus a 1 tmask 0 get the coastline: IDL a extrapolate tmask 0 tmask 0 1 x_periodic IDL tvplus a tmask 0 history Originaly written by G Roullet Sebastien Masson smasson lodyc jussieu fr version Id: extrapolate pro 327 2007 12 13 16:22:35Z pinsard FUNCTION extrapolate zinput maskinput nb_iteration X_PERIODIC x_periodic MINVAL minval MAXVAL maxval GE0 ge0 _EXTRA ex compile_opt idl2 strictarrsubs check the number of iteration used in the extrapolation szin size zinput IF szin 0 NE 2 THEN return 1 ELSE szin szin 1:2 nx szin 0 ny szin 1 IF n_elements nb_iteration EQ 0 THEN nb_iteration max szin IF nb_iteration EQ 0 THEN return zinput take care of the boundary conditions for the x direction we put 2 additional columns at the left and right side of the array for the y direction we put 2 additional lines at the bottom and top side of the array These changes allow us to use shift function without taking care of the x and y periodicity ztmp bytarr nx 2 ny 2 IF n_elements maskinput EQ 1 AND maskinput 0 EQ 1 THEN maskinput replicate 1b nx ny IF n_elements maskinput NE nx ny THEN BEGIN ras report input grid mask do not have the good size return 1 ENDIF ztmp 1:nx 1:ny byte maskinput msk temporary ztmp ztmp replicate 1 e20 nx 2 ny 2 ztmp 1:nx 1:ny zinput if keyword_set x_periodic then begin ztmp 0 1:ny zinput nx 1 ztmp nx 1 1:ny zinput 0 ENDIF remove NaN points if there is some nan where finite ztmp EQ 0 cnt_nan IF cnt_nan NE 0 THEN ztmp temporary nan 1 e20 z temporary ztmp nx2 nx 2 ny2 ny 2 extrapolation sqrtinv 1 sqrt 2 cnt 1 When we look for the coastline we don t want to select the borderlines of the array we force the value of the mask for those lines msk 0 1b msk nx 1 1b msk 0 1b msk ny 1 1b find the land points land where msk EQ 0 cnt_land WHILE cnt LE nb_iteration AND cnt_land NE 0 DO BEGIN find the coastline points Once the land points list has been found we change back the mask values for the boundary conditions msk 0 0b msk nx 1 0b msk 0 0b msk ny 1 0b if keyword_set x_periodic then begin msk 0 msk nx msk nx 1 msk 1 endif we compute the weighted number of sea neighbors those 4 neighbors have a weight of 1: those 4 neighbors have a weight of 1 sqrt 2 : As we make sure that none of the land points are located on the border of the array we can compute the weight without shift faster weight msk land 1 msk land 1 msk land nx2 msk land nx2 sqrtinv msk land nx2 1 msk land nx2 1 msk land nx2 1 msk land nx2 1 list all the points that have sea neighbors ok where weight GT 0 the coastline points coast land ok their weighted number of sea neighbors weight weight temporary ok fill the coastline points z temporary z msk zcoast z 1 coast z 1 coast z nx2 coast z nx2 coast 1 sqrt 2 z nx2 1 coast z nx2 1 coast z nx2 1 coast z nx2 1 coast IF keyword_set ge0 THEN zcoast 0 temporary zcoast IF n_elements minval NE 0 THEN zcoast minval temporary zcoast IF n_elements maxval NE 0 THEN zcoast temporary zcoast we force the value of the mask for those lines msk 0 1b msk nx 1 1b msk 0 1b msk ny 1 1b find the land points land where msk EQ 0 cnt_land ENDWHILE we return the original size of the array return z 1:nx 1:ny END"); 59 59 a[57] = new Array("./Interpolation/extrapsmooth.html", "extrapsmooth.pro", "", " file_comments similar to extrapolate but could to the job in a better way because the extrapolated values are smoothed takes more time than extrapolate extrapolate data where mskin is equal 0 by filling step by step the coastline points with the mean value of the 8 neighbors categories Interpolation param in in required type 2d array data to be extrapolate param mskin in required type 2d array or 1 a 2D array the land sea mask of the output data 1 on ocean 0 on land put 1 if input data are not masked keyword MINVAL type scalar default not used to specify a minimum value to the extrapolated values keyword MAXVAL type scalar default not used to specify a maximum value to the extrapolated values keyword GE0 type scalar 0 or 1 default 0 put 1 to force the extrapolated values to be larger than 0 same as using minval 0 keyword _EXTRA to be able to call extrapsmooth with _extra keyword returns the extrapolated array with no more masked values restrictions You cannot specify the number of iterations done in the extrapolation process examples IDL a extrapsmooth dist jpi jpj tmask 0 x_periodic IDL tvplus a compare to extrapolate result: IDL b extrapolate dist jpi jpj tmask 0 x_periodic IDL tvplus b window 1 history January 2007: Sebastien Masson smasson lodyc jussieu fr version Id: extrapsmooth pro 327 2007 12 13 16:22:35Z pinsard FUNCTION extrapsmooth in mskin X_PERIODIC x_periodic MINVAL minval MAXVAL maxval GE0 ge0 _EXTRA ex compile_opt strictarr strictarrsubs sz size reform in IF sz 0 NE 2 THEN BEGIN ras report Input arrays must have 2 dimensions return 1 ENDIF nx sz 1 ny sz 2 IF n_elements mskin EQ 1 AND mskin 0 EQ 1 THEN mskin replicate 1b nx ny IF n_elements mskin NE nx ny THEN BEGIN ras report input grid mask do not have the good size return 1 ENDIF out reform in whmsk where mskin EQ 0 nbr IF nbr NE 0 THEN out temporary whmsk values f_nan add values on each side of the array to avoid boundary effects nx2 nx 2 ny2 ny 2 add replicate values f_nan nx ny2 out add temporary out add IF keyword_set x_periodic THEN BEGIN add1 out 0:nx2 add2 out nx nx2:nx 1 out add2 temporary out add1 ENDIF ELSE BEGIN add replicate values f_nan nx2 ny 2 ny2 out add temporary out add ENDELSE msk0 where finite out EQ 0 nnan total finite out nan i 1 WHILE nnan NE 0 DO BEGIN tmp smooth out 2 i 1 nan find only the changed values that where on land new where finite out EQ 0 AND finite tmp EQ 1 nnew IF nnew EQ 0 then nnan 0 ELSE BEGIN IF keyword_set ge0 THEN tmp 0 temporary tmp IF n_elements minval NE 0 THEN tmp minval temporary tmp IF n_elements maxval NE 0 THEN tmp temporary tmp temporary out IF n_elements minval NE 0 THEN out minval temporary out IF n_elements maxval NE 0 THEN out temporary out maxval get back to the original domain out temporary out nx2:nx nx2 1 ny2:ny ny2 1 put back the non maskqed values whmsk where mskin NE 0 out whmsk in whmsk return out END"); 60 a[58] = new Array("./Interpolation/file_interp.html", "file_interp.pro", "", " hidden FUNCTION call_interp2d data inlon inlat inmask outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr NAN_VALUE NaN_value _EXTRA ex compile_opt idl2 strictarrsubs for byte short and long convert to double before extrapolation and interpolation intype size data type if intype LE 3 THEN data double temporary data take care of NaN values mask inmask finite data IF keyword_set NaN_value THEN BEGIN CASE 1 OF nan_value GT 1 e6:mask temporary mask data LT nan_value 10 nan_value LT 1 e6:mask temporary mask data GT nan_value 10 abs nan_value LT 1 e 6:mask temporary mask data GT 1 e 6 ELSE:mask temporary mask data NE nan_value ENDCASE ENDIF extrapolation IF keyword_set smooth THEN data extrapsmooth temporary data mask x_periodic _extra ex ELSE data extrapolate temporary data mask x_periodic _extra ex interpolation IF NOT keyword_set inirr THEN BEGIN data fromreg method temporary data inlon inlat outlon outlat WEIG weig ADDR addr _extra ex ENDIF ELSE BEGIN data fromirr method temporary data inlon inlat 1 outlon outlat 1 WEIG weig ADDR addr ENDELSE if intype LE 3 THEN data round temporary data RETURN data END file_comments interpolate a NetCDF file from a grid to another both regular or not categories Interpolation NetCDF param filein in type scalar string input file name must exist param fileout in type scalar string output file name will be overwritten if already exist param gridout in type scalar string output grid file name must exist and must contain the longitude and latitude axis as 1D or 2D arrays keyword GRIDIN type scalar string default set to filein define the input grid file name It must exist and must contain the longitude and latitude axis as 1D or 2D arrays Useful if filein file doesn t contain longitude and latitude axis keyword MASKIN type scalar string default set to gridin define the input mask file name It must exist The mask will be determined through ncdf_getmask according to the keywords inmaskname ininvmask inuseasmask inmissing_value inaddscl_before see below keyword MASKOUT type scalar string default set to gridout define the output mask file name It must exist The mask will be determined through ncdf_getmask according to the keywords outmaskname outinvmask outuseasmask outmissing_value outaddscl_before see bellow keyword KEEP type string array default all variables array defining the name of the variables that must be kept in the output file keyword REMOVE type string array default empty array defining the name of the variables that will be removed in the output file keyword METHOD type scalar string default bilinear interpolation method: can be only bilinear or imoms3 if the input grid is a regular grid A regular rectangular grid is defined as a grid for which each longitude lines have the same latitude and each latitude columns have the same longitude keyword SMOOTH type scalar 0 or 1 default 0 activate to use extrapsmooth instead of extrapolate when extrapolating input data over masked points keyword SET_XDIMNAME type scalar string default not used used to defined the name of x dimension in filein input file when gridin keyword is used and when the x dimension name is not the same in filein and gridin files By default we assume both file have the same x dimension name keyword SET_YDIMNAME type scalar string default not used same as set_xdimname but for y dimension keyword SET_XAXISNAME type scalar string default not used used to defined the name of the variable containing the x axis in filein input file when gridin keyword is used and when its variable containing the x axis name is not the same By default we assume both file have the same x axis name Not that if filein includes x axis there is no point to use gridin keyword SET_YAXISNAME type scalar string default not used same as set_xaxisname but for y dimension keyword INMASKNAME type scalar string default not used A string giving the name of the variable in the file maskin that contains the land sea mask keyword OUTMASKNAME type scalar string default not used same as inmaskname but for output mask file maskout keyword ININVMASK default 0 type scalar: 0 or 1 Inverse the land sea mask of the input mask file maskin that should have 0 1 values for land sea keyword OUTINVMASK default 0 type scalar: 0 or 1 same as ininvmask but for output mask file maskout keyword INUSEASMASK type scalar string A string giving the name of the variable in the input mask file maskin that will be used to build the land sea mask In this case the mask is based on the first record if record dimension exists The mask is build according to : 1 the keyword missing_value if existing 2 the attribute missing_value if existing 3 NaN values if existing keyword OUTUSEASMASK type scalar string same as inuseasmask but for output mask file maskout keyword INMISSING_VALUE type scalar To define or redefine if the attribute is already existing the missing values used by INUSEASMASK keyword keyword OUTMISSING_VALUE type scalar same as inmissing_value but for output mask file maskout keyword INADDSCL_BEFORE default 0 type scalar: 0 or 1 put 1 to apply add_offset and scale factor on data before looking for missing values when using INUSEASMASK keyword keyword OUTADDSCL_BEFORE default 0 type scalar: 0 or 1 same as inaddscl_before but for output mask file maskout keyword NAN_VALUE type scalar default not used define the missing value in input data missing values are treated like masked values and will be filled with extrapolation before interpolation keyword ADDR type 2d array or variable name 1 at the first call of file_interp: This keyword can be set to a named variable undefined or equal to 0 into which the addresses used to perform the interpolation will be copied when the current routine exits 2 Next once this keyword is set to a defined 2d array it is used to bypass the computation of the weights and addresses used to perform the interpolation In this case interpolation is much faster keyword WEIG type 2d array or variable name see ADDR keyword INXAXISNAME default x longitude nav_lon lon lon_rho or NbLongitudes type scalar string A string giving the name of the variable containing the x axis in the input grid file gridin keyword INYAXISNAME default y latitude nav_lat lat lat_rho or NbLatitudes type scalar string same as inxaxisname but for the y axis in the input grid file gridin keyword OUTXAXISNAME default x longitude nav_lon lon lon_rho or NbLongitudes type scalar string same as inxaxisname but for output grid file gridout keyword OUTYAXISNAME default y latitude nav_lat lat lat_rho or NbLatitudes type scalar string same as inyaxisname but for output grid file gridout keyword _EXTRA to use extrapolate extrapsmooth and fromreg keywords uses extrapsmooth extrapolate fromreg and fromirr restrictions perform only horizontal interpolations on scalar fields will fill all masked and missing values before interpolation attributes like valid_min are not updated see restrictions of fromreg and fromirr examples IDL file_interp filein fileout gridout inxaxisname lo inyaxisname la keep lo la cond_sed IDL file_interp in out gdout inuseasmask sst inmissing_value 1 00000e 30 nan_value 1000 00 history September 2007: Sebastien Masson smasson locean ipsl upmc fr version Id: file_interp pro 330 2008 02 01 16:28:24Z smasson PRO file_interp filein fileout gridout GRIDIN gridin MASKIN maskin MASKOUT maskout KEEP keep REMOVE remove METHOD method SMOOTH smooth SET_XDIMNAME set_xdimname SET_YDIMNAME set_ydimname SET_XAXISNAME set_xaxisname SET_YAXISNAME set_yaxisname INMASKNAME inmaskname ININVMASK ininvmask INUSEASMASK inuseasmask INMISSING_VALUE inmissing_value INADDSCL_BEFORE inaddscl_before OUTMASKNAME outmaskname OUTINVMASK outinvmask OUTUSEASMASK outuseasmask OUTMISSING_VALUE outmissing_value OUTADDSCL_BEFORE outaddscl_before NAN_VALUE NaN_value WEIG weig ADDR addr INXAXISNAME inxaxisname INYAXISNAME inyaxisname OUTXAXISNAME outxaxisname OUTYAXISNAME outyaxisname _EXTRA ex compile_opt idl2 strictarrsubs revision Id: file_interp pro 330 2008 02 01 16:28:24Z smasson IF NOT keyword_set method THEN method bilinear input filenames checks inid ncdf_open filein ininq ncdf_inquire inid outid ncdf_create fileout clobber ncdf_control outid nofill IF NOT keyword_set gridin THEN gridin filein IF NOT keyword_set maskin THEN maskin gridin IF NOT keyword_set maskout THEN maskout gridout Copy global attributes FOR i 0 ininq ngatts 1 DO BEGIN name ncdf_attname inid i global dummy ncdf_attcopy inid name outid in_global out_global ENDFOR ncdf_attput outid Created_by revision GLOBAL x y dim and x yaxis informations ncdf_getaxis gridin indimidx indimidy inlon inlat xdimname inxdimname ydimname inydimname xaxisname inxaxisname yaxisname inyaxisname get_gridparams inlon inlat jpiin jpjin 2 IF keyword_set set_xdimname THEN inxdimname set_xdimname IF keyword_set set_ydimname THEN inydimname set_ydimname IF keyword_set set_xaxisname THEN inxaxisname set_xaxisname IF keyword_set set_yaxisname THEN inyaxisname set_yaxisname ncdf_getaxis gridout outdimidx outdimidy outlon outlat xaxisname outxaxisname yaxisname outyaxisname get_gridparams outlon outlat jpiout jpjout 2 masks inmask ncdf_getmask maskin MASKNAME inmaskname INVMASK ininvmask USEASMASK inuseasmask MISSING_VALUE inmissing_value ADDSCL_BEFORE inaddscl_before inmasksz size inmask dimensions IF size inmask n_dimensions EQ 2 THEN inmasksz inmasksz 0 IF n_elements inmaskname EQ 0 THEN inmaskname not defined default definition outmask ncdf_getmask maskout MASKNAME outmaskname INVMASK outinvmask USEASMASK outuseasmask MISSING_VALUE outmissing_value ADDSCL_BEFORE outaddscl_before irregular grids CASE 0 OF array_equal inlon 0 inlon jpjin 1 :inirr 1b array_equal inlat 0 inlat jpiin 1 :inirr 1b array_equal inlon inlon 0 replicate 1 jpjin :inirr 1b array_equal inlat replicate 1 jpiin inlat 0 :inirr 1b ELSE:inirr 0b ENDCASE CASE 0 OF array_equal outlon 0 outlon jpjout 1 :outirr 1b array_equal outlat 0 outlat jpiout 1 :outirr 1b array_equal outlon outlon 0 replicate 1 jpjout :outirr 1b array_equal outlat replicate 1 jpiout outlat 0 :outirr 1b ELSE:outirr 0b ENDCASE IF inirr AND method NE bilinear THEN stop Dimensions indimsz lonarr ininq ndims outdimsz lonarr ininq ndims outdimid lonarr ininq ndims FOR i 0 ininq ndims 1 DO BEGIN ncdf_diminq inid i name size indimsz i size outdimsz i size CASE 1 OF strlowcase name EQ strlowcase inxdimname : BEGIN outdimid i ncdf_dimdef outid name jpiout outdimsz i jpiout indimx i outdimx outdimid i END strlowcase name EQ strlowcase inydimname : BEGIN outdimid i ncdf_dimdef outid name jpjout outdimsz i jpjout indimy i outdimy outdimid i END i EQ ininq recdim: outdimid i ncdf_dimdef outid name UNLIMITED ELSE: outdimid i ncdf_dimdef outid name size ENDCASE ENDFOR Variables outvarid lonarr ininq nvars FOR i 0 ininq nvars 1 DO BEGIN varinq ncdf_varinq inid i okvar 1 IF keyword_set keep THEN okvar total strlowcase keep EQ strlowcase varinq name EQ 1 IF keyword_set remove THEN okvar total strlowcase remove EQ strlowcase varinq name EQ 0 IF okvar THEN BEGIN IF varinq ndims EQ 0 THEN BEGIN scalar variable outvarid i ncdf_vardef outid varinq name BYTE varinq datatype EQ BYTE CHAR varinq datatype EQ CHAR SHORT varinq datatype EQ INT OR varinq datatype EQ SHORT LONG varinq datatype EQ LONG FLOAT varinq datatype EQ FLOAT DOUBLE varinq datatype EQ DOUBLE ENDIF ELSE BEGIN array CASE 1 OF strlowcase varinq name EQ strlowcase inxaxisname :BEGIN xaxis IF outirr THEN dimvar outdimx outdimy ELSE dimvar outdimx END strlowcase varinq name EQ strlowcase inyaxisname :BEGIN yaxis IF outirr THEN dimvar outdimx outdimy ELSE dimvar outdimy END strlowcase varinq name EQ strlowcase inmaskname :BEGIN mask IF outmask 0 NE 1 THEN dimvar outdimid varinq dim ELSE dimvar 1 END total varinq dim EQ indimx total varinq dim EQ indimx EQ 1: dimvar 1 strange variable ELSE: dimvar outdimid varinq dim ENDCASE IF dimvar 0 NE 1 THEN BEGIN outvarid i ncdf_vardef outid varinq name dimvar BYTE varinq datatype EQ BYTE CHAR varinq datatype EQ CHAR SHORT varinq datatype EQ INT OR varinq datatype EQ SHORT LONG varinq datatype EQ LONG FLOAT varinq datatype EQ FLOAT DOUBLE varinq datatype EQ DOUBLE ENDIF ELSE outvarid i 1 ENDELSE Variables attributes IF outvarid i NE 1 THEN BEGIN FOR j 0 varinq natts 1 DO BEGIN name ncdf_attname inid i j dummy ncdf_attcopy inid i name outid outvarid i ENDFOR ENDIF ENDIF ELSE outvarid i 1 ENDFOR ncdf_control outid endef FOR i 0 ininq nvars 1 DO BEGIN IF outvarid i NE 1 THEN BEGIN varinq ncdf_varinq inid i IF varinq ndims GE 2 THEN BEGIN interp varinq dim 0 EQ indimx AND varinq dim 1 EQ indimy ENDIF ELSE interp 0b CASE 1 OF strlowcase varinq name EQ strlowcase inxaxisname :BEGIN x axis IF outirr THEN ncdf_varput outid outvarid i outlon ELSE ncdf_varput outid outvarid i outlon 0 END strlowcase varinq name EQ strlowcase inyaxisname :BEGIN y axis IF outirr THEN ncdf_varput outid outvarid i outlat ELSE ncdf_varput outid outvarid i reform outlat 0 END strlowcase varinq name EQ strlowcase inmaskname :BEGIN mask ncdf_varput outid outvarid i outmask END ELSE:BEGIN CASE varinq ndims OF 0:BEGIN salar ncdf_varget inid i data ncdf_varput outid outvarid i temporary data END 1:BEGIN 1D ncdf_varget inid i data ncdf_varput outid outvarid i temporary data END 2:BEGIN 2D ncdf_varget inid i data IF interp THEN data call_interp2d temporary data inlon inlat inmask 0 outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr NAN_VALUE NaN_value _extra ex ncdf_varput outid outvarid i temporary data END 3:BEGIN 3D FOR k 0 indimsz varinq dim 2 1 DO BEGIN incnt indimsz varinq dim 0: 1 1 outcnt outdimsz varinq dim 0: 1 1 off 0 0 k ncdf_varget inid i data offset off count incnt IF n_elements inmasksz GE 3 THEN BEGIN IF inmasksz 2 EQ indimsz varinq dim 2 AND varinq dim 2 NE ininq recdim THEN tmpmsk inmask k ELSE tmpmsk inmask 0 ENDIF ELSE tmpmsk inmask 0 IF interp THEN data call_interp2d temporary data inlon inlat temporary tmpmsk outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr NAN_VALUE NaN_value _extra ex ncdf_varput outid outvarid i temporary data offset off count outcnt ENDFOR END 4:BEGIN 4D FOR t 0 indimsz varinq dim 3 1 DO BEGIN FOR k 0 indimsz varinq dim 2 1 DO BEGIN incnt indimsz varinq dim 0: 1 1 1 outcnt outdimsz varinq dim 0: 1 1 1 off 0 0 k t ncdf_varget inid i data offset off count incnt IF n_elements inmasksz GE 3 THEN BEGIN IF inmasksz 2 EQ indimsz varinq dim 2 THEN tmpmsk inmask k ELSE tmpmsk inmask ENDIF ELSE tmpmsk inmask 0 IF interp THEN data call_interp2d temporary data inlon inlat temporary tmpmsk outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr NAN_VALUE NaN_value _extra ex ncdf_varput outid outvarid i temporary data offset off count outcnt ENDFOR ENDFOR END ENDCASE END ENDCASE ENDIF ENDFOR ncdf_close inid ncdf_close outid return END");60 a[58] = new Array("./Interpolation/file_interp.html", "file_interp.pro", "", " hidden FUNCTION call_interp2d data inlon inlat inmask outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr MISSING_VALUE missing_value _EXTRA ex compile_opt idl2 strictarrsubs for byte short and long convert to double before extrapolation and interpolation intype size data type if intype LE 3 THEN data double temporary data take care of NaN values nanmsk finite data IF total nanmsk NE n_elements nanmsk THEN BEGIN data where nanmsk EQ 0b 1 e20 put large value to be sure they are removed during the interpolation mask inmask temporary nanmsk ENDIF ELSE mask inmask tpmiss size missing_value type IF tpmiss NE 0 AND tpmiss NE 7 THEN BEGIN CASE 1 OF missing_value GT 1 e6:mask temporary mask data LT missing_value 10 missing_value LT 1 e6:mask temporary mask data GT missing_value 10 abs missing_value LT 1 e 6:mask temporary mask abs data GT 1 e 6 ELSE:mask temporary mask data NE missing_value ENDCASE ENDIF extrapolation IF keyword_set smooth THEN data extrapsmooth temporary data mask x_periodic _extra ex ELSE data extrapolate temporary data mask x_periodic _extra ex interpolation IF NOT keyword_set inirr THEN BEGIN data fromreg method temporary data inlon inlat outlon outlat WEIG weig ADDR addr _extra ex ENDIF ELSE BEGIN data fromirr method temporary data inlon inlat 1 outlon outlat 1 WEIG weig ADDR addr ENDELSE if intype LE 3 THEN data round temporary data RETURN data END file_comments interpolate a NetCDF file from a grid to another both regular or not categories Interpolation NetCDF param filein in type scalar string input file name must exist param fileout in type scalar string output file name will be overwritten if already exist param gridout in type scalar string output grid file name must exist and must contain the longitude and latitude axis as 1D or 2D arrays keyword GRIDIN type scalar string default set to filein define the input grid file name It must exist and must contain the longitude and latitude axis as 1D or 2D arrays Useful if filein file doesn t contain longitude and latitude axis keyword MASKIN type scalar string default set to gridin define the input mask file name It must exist The mask will be determined through ncdf_getmask according to the keywords inmaskname ininvmask inuseasmask inmissing_value inaddscl_before see below keyword MASKOUT type scalar string default set to gridout define the output mask file name It must exist The mask will be determined through ncdf_getmask according to the keywords outmaskname outinvmask outuseasmask outmissing_value outaddscl_before see below keyword KEEP type string array default all variables array defining the name of the variables that must be kept in the output file keyword REMOVE type string array default empty array defining the name of the variables that will be removed in the output file keyword METHOD type scalar string default bilinear interpolation method: can be only bilinear or imoms3 if the input grid is a regular grid A regular rectangular grid is defined as a grid for which each longitude lines have the same latitude and each latitude columns have the same longitude keyword SMOOTH type scalar 0 or 1 default 0 activate to use extrapsmooth instead of extrapolate when extrapolating input data over masked points keyword SET_XDIMNAME type scalar string default not used used to defined the name of x dimension in filein input file when gridin keyword is used and when the x dimension name is not the same in filein and gridin files By default we assume both file have the same x dimension name keyword SET_YDIMNAME type scalar string default not used same as set_xdimname but for y dimension keyword SET_XAXISNAME type scalar string default not used used to defined the name of the variable containing the x axis in filein input file when gridin keyword is used and when its variable containing the x axis name is not the same By default we assume both file have the same x axis name Not that if filein includes x axis there is no point to use gridin keyword SET_YAXISNAME type scalar string default not used same as set_xaxisname but for y dimension keyword INMASKNAME type scalar string default not used A string giving the name of the variable in the file maskin that contains the land sea mask keyword OUTMASKNAME type scalar string default not used same as inmaskname but for output mask file maskout keyword ININVMASK default 0 type scalar: 0 or 1 Inverse the land sea mask of the input mask file maskin that should have 0 1 values for land sea keyword OUTINVMASK default 0 type scalar: 0 or 1 same as ininvmask but for output mask file maskout keyword INUSEASMASK type scalar string A string giving the name of the variable in the input mask file that will be used to build the input land sea mask In this case the mask is based on the first record if record dimension exists The input mask is build according to operator defined by INTESTOP keyword default NE and the testing values defined as 1 the second word of TESTOP if existing 2 MISSING_VALUE keyword 3 attribute missing_value or _fillvalue of the variable USEASMASK 4 Values f_nan can be used only with NE and EQ operators keyword OUTUSEASMASK type scalar string same as inuseasmask but for output mask file maskout keyword INMISSING_VALUE type scalar To define or redefine if the attribute is already existing the missing values used with INUSEASMASK keyword to build the input mask Note that this value is not used if INTESTOP keyword is given and contains 2 words Note: do not mismatch with MISSING_VALUE used to detect missing values at reach record keyword OUTMISSING_VALUE type scalar same as inmissing_value but for output mask file maskout keyword INTESTOP default NE type scalar string for example GT 0 5 a string describing the type of test that will be done to define the input mask The test is performed on the variable specified by INUSEASMASK keyword INTESTOP can contain 1 or 2 words The first word is the operator definition: EQ NE GE GT LE LT default is NE The second word define the testing value If INTESTOP contains only 1 word then the test value is denifed by 1 INMISSING_VALUE keyword 2 attribute missing_value or _fillvalue of the variable INUSEASMASK 3 Values f_nan can be used only with NE and EQ operators keyword OUTTESTOP default NE type scalar string for example GT 0 5 same as INTESTOP but for output mask file maskout keyword INADDSCL_BEFORE default 0 type scalar: 0 or 1 put 1 to apply add_offset and scale factor on data before looking for missing values when using INUSEASMASK keyword keyword OUTADDSCL_BEFORE default 0 type scalar: 0 or 1 same as inaddscl_before but for output mask file maskout keyword MISSING_VALUE type scalar default defined by attribute missing_value or _fillvalue Re define the missing value in input data missing values are treated like masked values and will be filled with extrapolation before interpolation Note: do not mismatch with IN OUT MISSING_VALUE which are missing value used in association with IN OUT USEASMASK to built the mask that does not change from one record to another Note: this value will be apply to all interpolated variables keyword ADDR type 2d array or variable name 1 at the first call of file_interp: This keyword can be set to a named variable undefined or equal to 0 into which the addresses used to perform the interpolation will be copied when the current routine exits 2 Next once this keyword is set to a defined 2d array it is used to bypass the computation of the weights and addresses used to perform the interpolation In this case interpolation is much faster keyword WEIG type 2d array or variable name see ADDR keyword INXAXISNAME default x longitude nav_lon lon lon_rho or NbLongitudes type scalar string A string giving the name of the variable containing the x axis in the input grid file gridin keyword INYAXISNAME default y latitude nav_lat lat lat_rho or NbLatitudes type scalar string same as inxaxisname but for the y axis in the input grid file gridin keyword OUTXAXISNAME default x longitude nav_lon lon lon_rho or NbLongitudes type scalar string same as inxaxisname but for output grid file gridout keyword OUTYAXISNAME default y latitude nav_lat lat lat_rho or NbLatitudes type scalar string same as inyaxisname but for output grid file gridout keyword _EXTRA to use extrapolate extrapsmooth and fromreg keywords uses extrapsmooth extrapolate fromreg and fromirr restrictions perform only horizontal interpolations on scalar fields all masked and missing values are filled before interpolation output data are not masked and have values everywhere attributes like valid_min are not updated see restrictions of fromreg and fromirr output mask is not used but if the input file contains the mask in a variable defined by inmaskname this variable will contain the output mask in the ouput file examples IDL file_interp filein fileout gridout inxaxisname lo inyaxisname la keep lo la cond_sed IDL file_interp in out gdout inuseasmask sst inmissing_value 1 00000e 30 missing_value 1000 00 history September 2007: Sebastien Masson smasson locean ipsl upmc fr version Id: file_interp pro 362 2008 07 29 09:00:03Z smasson PRO file_interp filein fileout gridout GRIDIN gridin MASKIN maskin MASKOUT maskout KEEP keep REMOVE remove METHOD method SMOOTH smooth SET_XDIMNAME set_xdimname SET_YDIMNAME set_ydimname SET_XAXISNAME set_xaxisname SET_YAXISNAME set_yaxisname INMASKNAME inmaskname ININVMASK ininvmask INUSEASMASK inuseasmask INMISSING_VALUE inmissing_value INADDSCL_BEFORE inaddscl_before INTESTOP intestop OUTMASKNAME outmaskname OUTINVMASK outinvmask OUTUSEASMASK outuseasmask OUTMISSING_VALUE outmissing_value OUTADDSCL_BEFORE outaddscl_before OUTTESTOP outtestop MISSING_VALUE MISSING_VALUE WEIG weig ADDR addr INXAXISNAME inxaxisname INYAXISNAME inyaxisname OUTXAXISNAME outxaxisname OUTYAXISNAME outyaxisname _EXTRA ex compile_opt idl2 strictarrsubs revision Id: file_interp pro 362 2008 07 29 09:00:03Z smasson IF NOT keyword_set method THEN method bilinear input filenames checks inid ncdf_open filein ininq ncdf_inquire inid outid ncdf_create fileout clobber ncdf_control outid nofill IF NOT keyword_set gridin THEN gridin filein IF NOT keyword_set maskin THEN maskin gridin IF NOT keyword_set maskout THEN maskout gridout Copy global attributes FOR i 0 ininq ngatts 1 DO BEGIN name ncdf_attname inid i global dummy ncdf_attcopy inid name outid in_global out_global ENDFOR ncdf_attput outid Created_by revision GLOBAL x y dim and x yaxis informations ncdf_getaxis gridin indimidx indimidy inlon inlat xdimname inxdimname ydimname inydimname xaxisname inxaxisname yaxisname inyaxisname get_gridparams inlon inlat jpiin jpjin 2 IF keyword_set set_xdimname THEN inxdimname set_xdimname IF keyword_set set_ydimname THEN inydimname set_ydimname IF keyword_set set_xaxisname THEN inxaxisname set_xaxisname IF keyword_set set_yaxisname THEN inyaxisname set_yaxisname ncdf_getaxis gridout outdimidx outdimidy outlon outlat xaxisname outxaxisname yaxisname outyaxisname get_gridparams outlon outlat jpiout jpjout 2 masks inmask ncdf_getmask maskin MASKNAME inmaskname INVMASK ininvmask USEASMASK inuseasmask MISSING_VALUE inmissing_value ADDSCL_BEFORE inaddscl_before TESTOP intestop inmasksz size inmask dimensions IF size inmask n_dimensions EQ 2 THEN inmasksz inmasksz 0 IF n_elements inmaskname EQ 0 THEN inmaskname not defined default definition outmask ncdf_getmask maskout MASKNAME outmaskname INVMASK outinvmask USEASMASK outuseasmask MISSING_VALUE outmissing_value ADDSCL_BEFORE outaddscl_before TESTOP outtestop irregular grids CASE 0 OF array_equal inlon 0 inlon jpjin 1 :inirr 1b array_equal inlat 0 inlat jpiin 1 :inirr 1b array_equal inlon inlon 0 replicate 1 jpjin :inirr 1b array_equal inlat replicate 1 jpiin inlat 0 :inirr 1b ELSE:inirr 0b ENDCASE CASE 0 OF array_equal outlon 0 outlon jpjout 1 :outirr 1b array_equal outlat 0 outlat jpiout 1 :outirr 1b array_equal outlon outlon 0 replicate 1 jpjout :outirr 1b array_equal outlat replicate 1 jpiout outlat 0 :outirr 1b ELSE:outirr 0b ENDCASE IF inirr AND method NE bilinear THEN stop Dimensions indimsz lonarr ininq ndims outdimsz lonarr ininq ndims outdimid lonarr ininq ndims FOR i 0 ininq ndims 1 DO BEGIN ncdf_diminq inid i name size indimsz i size outdimsz i size CASE 1 OF strlowcase name EQ strlowcase inxdimname : BEGIN outdimid i ncdf_dimdef outid name jpiout outdimsz i jpiout indimx i outdimx outdimid i END strlowcase name EQ strlowcase inydimname : BEGIN outdimid i ncdf_dimdef outid name jpjout outdimsz i jpjout indimy i outdimy outdimid i END i EQ ininq recdim: outdimid i ncdf_dimdef outid name UNLIMITED ELSE: outdimid i ncdf_dimdef outid name size ENDCASE ENDFOR Variables outvarid lonarr ininq nvars FOR i 0 ininq nvars 1 DO BEGIN varinq ncdf_varinq inid i okvar 1 IF keyword_set keep THEN okvar total strlowcase keep EQ strlowcase varinq name EQ 1 IF keyword_set remove THEN okvar total strlowcase remove EQ strlowcase varinq name EQ 0 IF okvar THEN BEGIN IF varinq ndims EQ 0 THEN BEGIN scalar variable outvarid i ncdf_vardef outid varinq name BYTE varinq datatype EQ BYTE CHAR varinq datatype EQ CHAR SHORT varinq datatype EQ INT OR varinq datatype EQ SHORT LONG varinq datatype EQ LONG FLOAT varinq datatype EQ FLOAT DOUBLE varinq datatype EQ DOUBLE ENDIF ELSE BEGIN array CASE 1 OF strlowcase varinq name EQ strlowcase inxaxisname :BEGIN xaxis IF outirr THEN dimvar outdimx outdimy ELSE dimvar outdimx END strlowcase varinq name EQ strlowcase inyaxisname :BEGIN yaxis IF outirr THEN dimvar outdimx outdimy ELSE dimvar outdimy END strlowcase varinq name EQ strlowcase inmaskname :BEGIN mask IF outmask 0 NE 1 THEN dimvar outdimid varinq dim ELSE dimvar 1 END total varinq dim EQ indimx total varinq dim EQ indimx EQ 1: dimvar 1 strange variable ELSE: dimvar outdimid varinq dim ENDCASE IF dimvar 0 NE 1 THEN BEGIN outvarid i ncdf_vardef outid varinq name dimvar BYTE varinq datatype EQ BYTE CHAR varinq datatype EQ CHAR SHORT varinq datatype EQ INT OR varinq datatype EQ SHORT LONG varinq datatype EQ LONG FLOAT varinq datatype EQ FLOAT DOUBLE varinq datatype EQ DOUBLE ENDIF ELSE outvarid i 1 ENDELSE Variables attributes IF outvarid i NE 1 THEN BEGIN FOR j 0 varinq natts 1 DO BEGIN name ncdf_attname inid i j dummy ncdf_attcopy inid i name outid outvarid i ENDFOR ENDIF ENDIF ELSE outvarid i 1 ENDFOR ncdf_control outid endef FOR i 0 ininq nvars 1 DO BEGIN IF outvarid i NE 1 THEN BEGIN varinq ncdf_varinq inid i IF varinq ndims GE 2 THEN BEGIN interp varinq dim 0 EQ indimx AND varinq dim 1 EQ indimy ENDIF ELSE interp 0b CASE 1 OF strlowcase varinq name EQ strlowcase inxaxisname :BEGIN x axis IF outirr THEN ncdf_varput outid outvarid i outlon ELSE ncdf_varput outid outvarid i outlon 0 END strlowcase varinq name EQ strlowcase inyaxisname :BEGIN y axis IF outirr THEN ncdf_varput outid outvarid i outlat ELSE ncdf_varput outid outvarid i reform outlat 0 END strlowcase varinq name EQ strlowcase inmaskname :BEGIN mask ncdf_varput outid outvarid i outmask END ELSE:BEGIN IF n_elements missing_value NE 0 THEN var_missing_value MISSING_VALUE ELSE ncdf_getatt inid i MISSING_VALUE var_missing_value CASE varinq ndims OF 0:BEGIN salar ncdf_varget inid i data ncdf_varput outid outvarid i temporary data END 1:BEGIN 1D ncdf_varget inid i data ncdf_varput outid outvarid i temporary data END 2:BEGIN 2D ncdf_varget inid i data IF interp THEN data call_interp2d temporary data inlon inlat inmask 0 outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr MISSING_VALUE var_missing_value _extra ex ncdf_varput outid outvarid i temporary data END 3:BEGIN 3D FOR k 0 indimsz varinq dim 2 1 DO BEGIN incnt indimsz varinq dim 0: 1 1 outcnt outdimsz varinq dim 0: 1 1 off 0 0 k ncdf_varget inid i data offset off count incnt IF n_elements inmasksz GE 3 THEN BEGIN IF inmasksz 2 EQ indimsz varinq dim 2 AND varinq dim 2 NE ininq recdim THEN tmpmsk inmask k ELSE tmpmsk inmask 0 ENDIF ELSE tmpmsk inmask 0 IF interp THEN data call_interp2d temporary data inlon inlat temporary tmpmsk outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr MISSING_VALUE var_missing_value _extra ex ncdf_varput outid outvarid i temporary data offset off count outcnt ENDFOR END 4:BEGIN 4D FOR t 0 indimsz varinq dim 3 1 DO BEGIN FOR k 0 indimsz varinq dim 2 1 DO BEGIN incnt indimsz varinq dim 0: 1 1 1 outcnt outdimsz varinq dim 0: 1 1 1 off 0 0 k t ncdf_varget inid i data offset off count incnt IF n_elements inmasksz GE 3 THEN BEGIN IF inmasksz 2 EQ indimsz varinq dim 2 THEN tmpmsk inmask k ELSE tmpmsk inmask ENDIF ELSE tmpmsk inmask 0 IF interp THEN data call_interp2d temporary data inlon inlat temporary tmpmsk outlon outlat INIRR inirr METHOD method SMOOTH smooth WEIG weig ADDR addr MISSING_VALUE var_missing_value _extra ex ncdf_varput outid outvarid i temporary data offset off count outcnt ENDFOR ENDFOR END ENDCASE END ENDCASE ENDIF ENDFOR ncdf_close inid ncdf_close outid return END"); 61 61 a[59] = new Array("./Interpolation/fromirr.html", "fromirr.pro", "", " file_comments interpolate data from an irregular 2D grid to any 2D grid Only 1 method available bilinear categories Interpolation param method in required type string the interpolation method must be bilinear param datain in required type 2d array the input data to interpolate param lonin in required type 2d array the longitude of the input data param latin in required type 2d array the latitude of the input data param mskin in required type 2d array or 1 a 2D array the land sea mask of the input data 1 on ocean 0 on land put 1 if input data are not masked param lonout in required type 1d or 2d array the longitude of the output data param latout in required type 1d or 2d array the latitude of the output data param mskout in required type 2d array or 1 a 2D array the land sea mask of the output data 1 on ocean 0 on land put 1 if output data are not masked keyword WEIG type 2d array see ADDR keyword ADDR type 2d array 1 at the first call of fromirr: This keyword can be set to a named variable undefined or equal to 0 into which the addresses used to perform the interpolation will be copied when the current routine exits 2 Next once this keyword is set to a defined 2d array it is used to bypass the computation of the weights and addresses used to perform the interpolation In this case fromirr simply compute the interpolated field as: dataout total weig datain addr 1 dataout reform dataout jpio jpjo over In that case method lonin latin are not used but are necessary lonout latout are used only to know the output domain size keyword _EXTRA to be able to call fromirr with _extra keyword returns 2D array the interpolated data restrictions We supposed the data are located on a sphere with a periodicity along the longitude Note that the input data can contain the same cells several times like ORCA grid near the north pole boundary examples To interpolate 1 field: IDL tncep fromirr bilinear topa glamt gphit tmask 0 lonout latout mskout or if you have several fields to interpolate from the same source and target grids 1 get back the weights and addresses in variables a and b that must be undefined or equal to 0 before calling fromirr IDL t1ncep fromirr bilinear topa glamt gphit tmask 0 lonout latout mskout WEIG a ADDR b IDL help a b 2 use a and b that are now defined to bypass the computation of the weights and addresses and speed up the computation IDL t2ncep fromirr bilinear topa WEIG a ADDR b history June 2006: Sebastien Masson smasson lodyc jussieu fr version Id: fromirr pro 327 2007 12 13 16:22:35Z pinsard FUNCTION fromirr method datain lonin latin mskin lonout latout mskout WEIG weig ADDR addr _EXTRA ex compile_opt strictarr strictarrsubs atmospheric grid parameters alon lonin alat latin get_gridparams alon alat jpia jpja 2 double Oceanic grid parameters olon lonout olat latout get_gridparams olon olat jpio jpjo 2 double Compute weight and address IF NOT keyword_set weig AND keyword_set addr THEN BEGIN CASE method OF bilinear :compute_fromirr_bilinear_weigaddr alon alat mskin olon olat mskout weig addr ELSE:BEGIN ras report unknown interpolation method we stop stop ENDELSE ENDCASE ENDIF to the interpolation dataout total weig datain addr 1 dataout reform dataout jpio jpjo over RETURN dataout END"); 62 62 a[60] = new Array("./Interpolation/fromreg.html", "fromreg.pro", "", " file_comments interpolate data from a regular rectangular grid to any grid 2 methods available: bilinear and imoms3 A regular rectangular grid is defined as a grid for which each longitude lines have the same latitude and each latitude columns have the same longitude categories Interpolation param method in required type string the interpolation method must be bilinear or imoms3 param datain in required type 2d array the input data to interpolate param lonin in required type 1d or 2d array the longitude of the input data param latin in required type 1d or 2d array the latitude of the input data param lonout in required type 1d or 2d array the longitude of the output data param latout in required type 1d or 2d array the latitude of the output data keyword WEIG type 2d array or variable name see ADDR keyword ADDR type 2d array or variable name 1 at the first call of fromreg: This keyword can be set to a named variable undefined or equal to 0 into which the addresses used to perform the interpolation will be copied when the current routine exits 2 Next once this keyword is set to a defined 2d array it is used to bypass the computation of the weights and addresses used to perform the interpolation In this case fromreg simply compute the interpolated field as: dataout total weig datain addr 1 dataout reform dataout jpio jpjo over In that case method lonin latin are not used but are necessary lonout latout are used only to know the output domain size keyword NONORTHERNLINE activate if you don t want to take into account the northern line of the input data when performing the interpolation keyword NOSOUTHERNLINE activate if you don t want to take into account the southern line of the input data when performing the interpolation keyword _EXTRA to be able to call fromreg with _extra keyword returns 2D array the interpolated data restrictions We supposed the data are located on a sphere with a periodicity along the longitude examples To interpolate 1 field: IDL topa fromreg bilinear tncep xncep yncep glamt gphit or if you have several fields to interpolate from the same source and target grids 1 get back the weights and addresses in variables a and b that must be undefined or equal to 0 before calling fromreg IDL t1opa fromreg bilinear t1ncep xncep yncep glamt gphit WEIG a ADDR b IDL help a b 2 use a and b that are now defined to bypass the computation of the weights and addresses and speed up the computation IDL t2opa fromreg bilinear t2ncep xncep yncep glamt gphit WEIG a ADDR b history November 2005: Sebastien Masson smasson lodyc jussieu fr version Id: fromreg pro 327 2007 12 13 16:22:35Z pinsard FUNCTION fromreg method datain lonin latin lonout latout WEIG weig ADDR addr NONORTHERNLINE nonorthernline NOSOUTHERNLINE nosouthernline _EXTRA ex compile_opt idl2 strictarrsubs atmospheric grid parameters alon lonin alat latin get_gridparams alon alat jpia jpja 1 double Oceanic grid parameters olon lonout olat latout get_gridparams olon olat jpio jpjo 2 double Compute weight and address IF NOT keyword_set weig AND keyword_set addr THEN BEGIN CASE method OF bilinear :compute_fromreg_bilinear_weigaddr alon alat olon olat weig addr NONORTHERNLINE nonorthernline NOSOUTHERNLINE nosouthernline imoms3 : compute_fromreg_imoms3_weigaddr alon alat olon olat weig addr NONORTHERNLINE nonorthernline NOSOUTHERNLINE nosouthernline ELSE:BEGIN ras report unknown interpolation method we stop stop ENDELSE ENDCASE ENDIF dataout total weig datain addr 1 dataout reform dataout jpio jpjo over RETURN dataout END"); … … 69 69 a[67] = new Array("./Interpolation/map_npoints.html", "map_npoints.pro", "", " file_comments Return the distance in meter between all np0 points P0 and all np1 points P1 on a sphere If keyword TWO_BY_TWO is given then returns the distances between number n of P0 points and number n of P1 points in that case np0 and np1 must be equal Same as MAP_2POINTS with the meter parameter but for n points without do loop categories Maps param Lon0 in required param Lat0 in required np0 elements vector longitudes and latitudes of np0 points P0 param Lon1 in required param Lat1 in required np1 elements vector longitude and latitude of np1 points P1 keyword AZIMUTH A named variable that will receive the azimuth of the great circle connecting the two points P0 to P1 keyword MIDDLE to get the longitude latitude of the middle point between P0 and P1 keyword RADIANS if set inputs and angular outputs are in radians otherwise degrees keyword RADIUS default 6378206 4d0 If given return the distance between the two points calculated using the given radius Default value is the Earth radius keyword TWO_BY_TWO If given then map_npoints returns the distances between number n of P0 points and number n of P1 pointsi In that case np0 and np1 must be equal returns An np0 np1 array giving the distance in meter between np0 points P0 and np1 points P1 Element i j of the output is the distance between element P0 i and P1 j If keyword TWO_BY_TWO is given then map_npoints returns an np elements vector giving the distance in meter between P0 i and P1 i in that case we have np0 np1 np if MIDDLE see this keyword examples IDL print IDL map_npoints 105 15 1 40 02 1 0 07 100 50 51 30 20 0 7551369 3 5600334 8 12864354 10921254 14919237 5455558 8 IDL lon0 10 20 100 IDL lat0 0 10 45 IDL lon1 10 60 280 IDL lat1 0 10 45 IDL dist map_npoints lon0 lat0 lon1 lat1 AZIMUTH azi IDL help dist azi DIST DOUBLE Array 3 3 AZI DOUBLE Array 3 3 IDL print dist 4 lindgen 3 azi 4 lindgen 3 2226414 0 4957944 5 10018863 90 000000 64 494450 4 9615627e 15 IDL dist map_npoints lon0 lat0 lon1 lat1 AZIMUTH azi TWO_BY_TWO IDL help dist azi DIST DOUBLE Array 3 AZI DOUBLE Array 3 IDL print dist azi 2226414 0 4957944 5 10018863 90 000000 64 494450 4 9615627e 15 IDL print map_2points lon0 0 lat0 0 lon1 0 lat1 0 20 000000 90 000000 IDL print map_npoints lon0 0 lat0 0 lon1 0 lat1 0 AZIMUTH azi 6378206 4d0 dtor azi 20 000000 90 000000 IDL lon0 10 20 100 IDL lat0 0 10 45 IDL lon1 10 60 280 IDL lat1 0 10 45 IDL mid map_npoints lon0 lat0 lon1 lat1 MIDDLE TWO_BY_TWO IDL print reform mid 0 reform mid 1 0 0000000 40 000000 190 00000 0 0000000 1 5902773e 15 90 000000 IDL print map_2points lon0 0 lat0 0 lon1 0 lat1 0 npath 3 1 0 0000000 0 0000000 IDL print map_2points lon0 1 lat0 1 lon1 1 lat1 1 npath 3 1 40 000000 1 5902773e 15 IDL print map_2points lon0 2 lat0 2 lon1 2 lat1 2 npath 3 1 190 00000 90 000000 history Based on the IDL function map_2points pro v 1 6 2001 01 15 Sebastien Masson smasson lodyc jussieu fr October 2003 version Id: map_npoints pro 327 2007 12 13 16:22:35Z pinsard FUNCTION map_npoints lon0 lat0 lon1 lat1 AZIMUTH azimuth RADIANS radians RADIUS radius MIDDLE middle TWO_BY_TWO two_by_two compile_opt idl2 strictarrsubs IF N_PARAMS LT 4 THEN ras report Incorrect number of arguments np0 n_elements lon0 IF n_elements lat0 NE np0 THEN ras report lon0 and lat0 must have the same number of elements np1 n_elements lon1 IF n_elements lat1 NE np1 THEN ras report lon1 and lat1 must have the same number of elements if keyword_set two_by_two AND np0 NE np1 then ras report When using two_by_two keyword P0 and P1 must have the same number of elements mx MAX ABS lat0 lat1 pi2 dpi 2 IF mx GT KEYWORD_SET radians pi2 : 90 THEN ras report Value of Latitude is out of allowed range k KEYWORD_SET radians 1 0d0 : dpi 180 0 Earth equatorial radius meters Clarke 1866 ellipsoid r_sphere n_elements RADIUS NE 0 RADIUS : 6378206 4d0 coslt1 cos k lat1 sinlt1 sin k lat1 coslt0 cos k lat0 sinlt0 sin k lat0 IF np0 EQ np1 AND np1 EQ 1 THEN two_by_two 1 if NOT keyword_set two_by_two THEN BEGIN coslt1 replicate 1 0d0 np0 temporary coslt1 sinlt1 replicate 1 0d0 np0 temporary sinlt1 coslt0 temporary coslt0 replicate 1 0d0 np1 sinlt0 temporary sinlt0 replicate 1 0d0 np1 ENDIF if keyword_set two_by_two THEN BEGIN cosl0l1 cos k lon1 lon0 sinl0l1 sin k lon1 lon0 ENDIF ELSE BEGIN cosl0l1 cos k replicate 1 0d0 np0 lon1 lon0 replicate 1 0d0 np1 sinl0l1 sin k replicate 1 0d0 np0 lon1 lon0 replicate 1 0d0 np1 ENDELSE cosc sinlt0 sinlt1 coslt0 coslt1 cosl0l1 Cos of angle between pnts Avoid roundoff problems by clamping cosine range to 1 1 cosc 1 0d0 cosc 1 0d0 if arg_present azimuth OR keyword_set middle then begin sinc sqrt 1 0d0 cosc cosc bad where abs sinc le 1 0e 7 IF bad 0 NE 1 THEN sinc bad 1 cosaz coslt0 sinlt1 sinlt0 coslt1 cosl0l1 sinc sinaz sinl0l1 coslt1 sinc IF bad 0 NE 1 THEN BEGIN sinc bad 0 0d0 sinaz bad 0 0d0 cosaz bad 1 0d0 ENDIF ENDIF IF keyword_set middle then BEGIN s0 0 5d0 acos cosc coss cos s0 sins sin s0 lats asin sinlt0 coss coslt0 sins cosaz k lons atan sins sinaz coslt0 coss sinlt0 sins cosaz k if keyword_set two_by_two THEN BEGIN return transpose lon0 lons lats ENDIF ELSE BEGIN return lon0 replicate 1 0d0 np1 lons lats ENDELSE ENDIF if arg_present azimuth then begin azimuth atan sinaz cosaz IF k NE 1 0d0 THEN azimuth temporary azimuth k ENDIF return acos cosc r_sphere end"); 70 70 a[68] = new Array("./Interpolation/neighbor.html", "neighbor.pro", "", " file_comments find the closest point of P0 within a list of np1 points P1 which can be on a sphere categories Maps param p0lon in required type scalar longitudes of point P0 param p0lat in required type scalar latitudes of point P0 param neighlon in optional param neighlat in optional keyword RADIANS if set inputs and angular outputs are in radians otherwise degrees keyword DISTANCE dis to get back the distances between P0 and the np1 points P1 in the variable dis keyword SPHERE to activate if points are located on a sphere returns index giving the P1 index point that is the closest point of P0 examples IDL print neighbor 105 15 40 02 0 07 100 50 51 30 20 0 IDL distance dis 0 IDL print dis 105 684 206 125 160 228 history Sebastien Masson smasson lodyc jussieu fr October 2003 version Id: neighbor pro 327 2007 12 13 16:22:35Z pinsard FUNCTION neighbor p0lon p0lat neighlon neighlat SPHERE sphere DISTANCE distance RADIANS radians compile_opt idl2 strictarrsubs some checks IF n_elements p0lon NE 1 THEN ras report Sorry p0lon must be a scalar p0lon p0lon 0 IF n_elements p0lat NE 1 THEN ras report Sorry p0lat must be a scalar p0lat p0lat 0 nneig n_elements neighlon IF n_elements neighlat NE nneig THEN ras report neighlon and neighlat must have the same number of elements distance between P0 and the others points IF keyword_set sphere THEN BEGIN IF sphere NE 1 THEN radius sphere distance Map_nPoints p0lon p0lat neighlon neighlat radius radius radians radians ENDIF ELSE BEGIN distance neighlon p0lon 2 neighlat p0lat 2 IF arg_present distance THEN distance sqrt distance ENDELSE RETURN where distance EQ min distance END"); 71 a[69] = new Array("./Interpolation/quadrilateral2square.html", "quadrilateral2square.pro", "", " file_comments warm or map an arbitrary quadrilateral onto a unit square according to the 4 point correspondences: x0 y0 0 0 x1 y1 1 0 x2 y2 1 1 x3 y3 0 1 This is the inverse function of square2quadrilateral The mapping is done using perspective transformation which preserve lines in all orientations and permit quadrilateral to quadrilateral mappings see ref bel low categories Picture Grid param x0in in required param y0in in required param x1in in required param y1in in required param x2in in required param y2in in required param x3in in required param y3in in required the coordinates of the quadrilateral see above for correspondence with the unit square Can be scalar or array x0 y0 x1 y1 x2 y2 and x3 y3 are given in the anticlockwise order param xxin in required the coordinates of the point s for which we want to do the mapping Can be scalar or array param yyin in required the coordinates of the point s for which we want to do the mapping Can be scalar or array keyword PERF type salar 0 or 1 default 0 activate to print the elapsed time spent within quadrilateral2square keyword DOUBLE type salar 0 or 1 default 0 activate to perform double precision computation returns 2 n array: the new coordinates xout yout of the xin yin point s after mapping If xin is a scalar then n is equal to the number of elements of x0 If xin is an array then n is equal to the number of elements of xin restrictions I think degenerated quadrilateral e g flat of twisted is not work This has to be tested examples IDL splot 0 5 0 3 nodata xstyle 1 ystyle 1 IDL tracegrille findgen 11 1 findgen 11 1 color indgen 12 20 IDL xin findgen 11 1 replicate 1 11 IDL yin replicate 1 11 findgen 11 1 IDL out square2quadrilateral 2 1 3 0 5 1 2 3 xin yin IDL tracegrille reform out 0 11 11 reform out 1 11 11 color indgen 12 20 IDL inorg quadrilateral2square 2 1 3 0 5 1 2 3 out 0 out 1 IDL tracegrille reform inorg 0 11 11 reform inorg 1 11 11 color indgen 12 20 history Sebastien Masson smasson lodyc jussieu fr August 2003 Based on Digital Image Warping by G Wolberg IEEE Computer Society Press Los Alamitos California Chapter 3 see p 52 56 version Id: quadrilateral2square pro 327 2007 12 13 16:22:35Z pinsard FUNCTION quadrilateral2square x0in y0in x1in y1in x2in y2in x3in y3in xxin yyin PERF perf DOUBLE double compile_opt idl2 strictarrsubs tempsone systime 1 Warning wrong definition of x2 y2 and x3 y3 at the bottom of page 54 of Wolberg s book see figure 3 7 page 56 for the good definition IF keyword_set double THEN BEGIN x0 double x0in x1 double x1in x2 double x2in x3 double x3in y0 double y0in y1 double y1in y2 double y2in y3 double y3in xin double xxin yin double yyin ENDIF ELSE BEGIN x0 float x0in x1 float x1in x2 float x2in x3 float x3in y0 float y0in y1 float y1in y2 float y2in y3 float y3in xin float xxin yin float yyin ENDELSE get the matrix A a square2quadrilateral x0in y0in x1in y1in x2in y2in x3in y3in DOUBLE double compute the adjoint matrix IF keyword_set double THEN adj dblarr 9 n_elements x0 ELSE adj fltarr 9 n_elements x0 adj 0 a 4 a 7 a 5 adj 1 a 7 a 2 a 1 adj 2 a 1 a 5 a 4 a 2 adj 3 a 6 a 5 a 3 adj 4 a 0 a 6 a 2 adj 5 a 3 a 2 a 0 a 5 adj 6 a 3 a 7 a 6 a 4 adj 7 a 6 a 1 a 0 a 7 adj 8 a 0 a 4 a 3 a 1 IF n_elements xin EQ 1 THEN BEGIN xin replicate xin n_elements x0 yin replicate yin n_elements x0 ENDIF compute xprime yprime and wprime IF n_elements x0 EQ 1 THEN BEGIN wpr 1 adj 6 xin adj 7 yin adj 8 ENDIF ELSE BEGIN wpr 1 adj 6 xin adj 7 yin adj 8 ENDELSE xpr xin wpr ypr yin wpr IF keyword_set double THEN res dblarr 2 n_elements xin ELSE res fltarr 2 n_elements xin IF n_elements x0 EQ 1 THEN BEGIN res 0 xpr adj 0 ypr adj 1 wpr adj 2 res 1 xpr adj 3 ypr adj 4 wpr adj 5 ENDIF ELSE BEGIN res 0 xpr adj 0 ypr adj 1 wpr adj 2 res 1 xpr adj 3 ypr adj 4 wpr adj 5 ENDELSE IF keyword_set perf THEN print time quadrilateral2square systime 1 tempsone RETURN res END");71 a[69] = new Array("./Interpolation/quadrilateral2square.html", "quadrilateral2square.pro", "", " file_comments warm or map an arbitrary quadrilateral onto a unit square according to the 4 point correspondences: x0 y0 0 0 x1 y1 1 0 x2 y2 1 1 x3 y3 0 1 This is the inverse function of square2quadrilateral The mapping is done using perspective transformation which preserve lines in all orientations and permit quadrilateral to quadrilateral mappings see ref below categories Picture Grid param x0in in required param y0in in required param x1in in required param y1in in required param x2in in required param y2in in required param x3in in required param y3in in required the coordinates of the quadrilateral see above for correspondence with the unit square Can be scalar or array x0 y0 x1 y1 x2 y2 and x3 y3 are given in the anticlockwise order param xxin in required the coordinates of the point s for which we want to do the mapping Can be scalar or array param yyin in required the coordinates of the point s for which we want to do the mapping Can be scalar or array keyword PERF type salar 0 or 1 default 0 activate to print the elapsed time spent within quadrilateral2square keyword DOUBLE type salar 0 or 1 default 0 activate to perform double precision computation returns 2 n array: the new coordinates xout yout of the xin yin point s after mapping If xin is a scalar then n is equal to the number of elements of x0 If xin is an array then n is equal to the number of elements of xin restrictions I think degenerated quadrilateral e g flat of twisted is not work This has to be tested examples IDL splot 0 5 0 3 nodata xstyle 1 ystyle 1 IDL tracegrille findgen 11 1 findgen 11 1 color indgen 12 20 IDL xin findgen 11 1 replicate 1 11 IDL yin replicate 1 11 findgen 11 1 IDL out square2quadrilateral 2 1 3 0 5 1 2 3 xin yin IDL tracegrille reform out 0 11 11 reform out 1 11 11 color indgen 12 20 IDL inorg quadrilateral2square 2 1 3 0 5 1 2 3 out 0 out 1 IDL tracegrille reform inorg 0 11 11 reform inorg 1 11 11 color indgen 12 20 history Sebastien Masson smasson lodyc jussieu fr August 2003 Based on Digital Image Warping by G Wolberg IEEE Computer Society Press Los Alamitos California Chapter 3 see p 52 56 version Id: quadrilateral2square pro 358 2008 04 28 09:41:14Z pinsard FUNCTION quadrilateral2square x0in y0in x1in y1in x2in y2in x3in y3in xxin yyin PERF perf DOUBLE double compile_opt idl2 strictarrsubs tempsone systime 1 Warning wrong definition of x2 y2 and x3 y3 at the bottom of page 54 of Wolberg s book see figure 3 7 page 56 for the good definition IF keyword_set double THEN BEGIN x0 double x0in x1 double x1in x2 double x2in x3 double x3in y0 double y0in y1 double y1in y2 double y2in y3 double y3in xin double xxin yin double yyin ENDIF ELSE BEGIN x0 float x0in x1 float x1in x2 float x2in x3 float x3in y0 float y0in y1 float y1in y2 float y2in y3 float y3in xin float xxin yin float yyin ENDELSE get the matrix A a square2quadrilateral x0in y0in x1in y1in x2in y2in x3in y3in DOUBLE double compute the adjoint matrix IF keyword_set double THEN adj dblarr 9 n_elements x0 ELSE adj fltarr 9 n_elements x0 adj 0 a 4 a 7 a 5 adj 1 a 7 a 2 a 1 adj 2 a 1 a 5 a 4 a 2 adj 3 a 6 a 5 a 3 adj 4 a 0 a 6 a 2 adj 5 a 3 a 2 a 0 a 5 adj 6 a 3 a 7 a 6 a 4 adj 7 a 6 a 1 a 0 a 7 adj 8 a 0 a 4 a 3 a 1 IF n_elements xin EQ 1 THEN BEGIN xin replicate xin n_elements x0 yin replicate yin n_elements x0 ENDIF compute xprime yprime and wprime IF n_elements x0 EQ 1 THEN BEGIN wpr 1 adj 6 xin adj 7 yin adj 8 ENDIF ELSE BEGIN wpr 1 adj 6 xin adj 7 yin adj 8 ENDELSE xpr xin wpr ypr yin wpr IF keyword_set double THEN res dblarr 2 n_elements xin ELSE res fltarr 2 n_elements xin IF n_elements x0 EQ 1 THEN BEGIN res 0 xpr adj 0 ypr adj 1 wpr adj 2 res 1 xpr adj 3 ypr adj 4 wpr adj 5 ENDIF ELSE BEGIN res 0 xpr adj 0 ypr adj 1 wpr adj 2 res 1 xpr adj 3 ypr adj 4 wpr adj 5 ENDELSE IF keyword_set perf THEN print time quadrilateral2square systime 1 tempsone RETURN res END"); 72 72 a[70] = new Array("./Interpolation/spl_fstdrv.html", "spl_fstdrv.pro", "", " file_comments returns the values of the first derivative of the interpolating function at the points X2i It is a double precision array Given the arrays X and Y which tabulate a function with the X i and Y i in ascending order and given an input value X2 the spl_incr function returns an interpolated value for the given values of X2 The interpolation method is based on cubic spline corrected in a way that interpolated value are also in ascending order examples IDL y2 spl_fstdrv x y yscd x2 param x in required An n elements at least 2 input vector that specifies the tabulate points in ascending order param y in required f x y An n elements input vector that specifies the values of the tabulated function F Xi corresponding to Xi param yscd in required The output from SPL_INIT for the specified X and Y param x2 in required type scalar or array The input values for which the first derivative values are desired returns y2: f x2 y2 history Sebastien Masson smasson lodyc jussieu fr : May 2005 version Id: spl_fstdrv pro 325 2007 12 06 10:04:53Z pinsard FUNCTION spl_fstdrv x y yscd x2 compile_opt idl2 strictarrsubs compute the first derivative of the spline function nx n_elements x ny n_elements y x must have at least 2 elements IF nx LT 2 THEN stop y must have the same number of elements than x IF nx NE ny THEN stop define loc in a way that if loc i eq 1 : x2 i x nx 1 else : x loc i extrapolation use x nx 2 and x nx 1 even if x2 i x nx 1 extrapolation loc 0 temporary loc nx 2 distance between to consecutive x deltax x loc 1 x loc distance between to consecutive y deltay y loc 1 y loc relative distance between x2 i and x loc i 1 a x loc 1 x2 deltax relative distance between x2 i and x loc i b 1 0d a compute the first derivative on x see numerical recipes Chap 3 3 yfrst temporary deltay deltax 1 0d 6 0d 3 0d a a 1 0d deltax yscd loc 1 0d 6 0d 3 0d b b 1 0d deltax yscd loc 1 beware of the computation precision force near zero values to be exactly 0 0 zero where abs yfrst LT 1 e 10 IF zero 0 NE 1 THEN yfrst zero 0 0d RETURN yfrst END"); 73 73 a[71] = new Array("./Interpolation/spl_incr.html", "spl_incr.pro", "", " file_comments Given the arrays X and Y which tabulate a function with the X i AND Y i in ascending order and given an input value X2 the spl_incr function returns an interpolated value for the given values of X2 The interpolation method is based on cubic spline corrected in a way that interpolated values are also monotonically increasing param x1 in required An n elements at least 2 input vector that specifies the tabulate points in a strict ascending order param y1 in required f x y An n elements input vector that specifies the values of the tabulated function F Xi corresponding to Xi As f is supposed to be monotonically increasing y values must be monotonically increasing y can have equal consecutive values param x2 in required The input values for which the interpolated values are desired Its values must be strictly monotonically increasing param der2 param x returns y2: f x2 y2 Double precision array restrictions It might be possible that y2 i 1 y2 i has very small negative values amplitude smaller than 1 e 6 examples IDL n 100L IDL x dindgen n 2 IDL y abs randomn 0 n IDL y n 2:n 2 1 0 IDL y n n 3 0 IDL y n n 6:n n 6 5 0 IDL y total y cumulative double IDL x2 dindgen n 1 2 IDL n2 n_elements x2 IDL print min y 1:n 1 y 0:n 2 LT 0 IDL y2 spl_incr x y x2 IDL splot x y xstyle 1 ystyle 1 ysurx 25 petit 1 2 1 land IDL oplot x2 y2 color 100 IDL c y2 1:n2 1 y2 0:n2 2 IDL print min c LT 0 IDL print min c max ma ma IDL splot c xstyle 1 ystyle 1 yrange 01 05 ysurx 25 petit 1 2 2 noerase IDL oplot 0 n_elements c 0 0 linestyle 1 history Sebastien Masson smasson lodyc jussieu fr : May Dec 2005 version Id: spl_incr pro 327 2007 12 13 16:22:35Z pinsard FUNCTION pure_concave x1 x2 y1 y2 der2 x compile_opt idl2 strictarrsubs X n type xx double x double x1 double x2 double x1 f double x2 double x1 double y2 double y1 n der2 temporary f res xx n IF check_math GT 0 THEN BEGIN zero where abs res LT 1 e 10 IF zero 0 NE 1 THEN res zero 0 0d END res temporary res double y2 double y1 y1 IF array_equal sort res lindgen n_elements res NE 1 THEN stop RETURN res END param x1 in required An n elements at least 2 input vector that specifies the tabulate points in a strict ascending order param y1 in required f x y An n elements input vector that specifies the values of the tabulated function F Xi corresponding to Xi As f is supposed to be monotonically increasing y values must be monotonically increasing y can have equal consecutive values param x2 in required The input values for which the interpolated values are desired Its values must be strictly monotonically increasing param der2 param x FUNCTION pure_convex x1 x2 y1 y2 der2 x compile_opt idl2 strictarrsubs 1 1 X n type xx 1 0d double x double x1 double x2 double x1 f double x2 double x1 double y2 double y1 n der2 temporary f res xx n IF check_math GT 0 THEN BEGIN zero where abs res LT 1 e 10 IF zero 0 NE 1 THEN res zero 0 0d END res 1 0d temporary res res temporary res y2 y1 y1 IF array_equal sort res lindgen n_elements res NE 1 THEN stop RETURN res END param x param y param x2 keyword YP0 The first derivative of the interpolating function at the point X0 If YP0 is omitted the second derivative at the boundary is set to zero resulting in a natural spline keyword YPN_1 The first derivative of the interpolating function at the point Xn 1 If YPN_1 is omitted the second derivative at the boundary is set to zero resulting in a natural spline FUNCTION spl_incr x y x2 YP0 yp0 YPN_1 ypn_1 compile_opt idl2 strictarrsubs check and initialization nx n_elements x ny n_elements y nx2 n_elements x2 x must have at least 2 elements IF nx LT 2 THEN stop y must have the same number of elements than x IF nx NE ny THEN stop x be monotonically increasing IF min x 1:nx 1 x 0:nx 2 LE 0 THEN stop x2 be monotonically increasing IF N_ELEMENTS X2 GE 2 THEN IF min x2 1:nx2 1 x2 0:nx2 2 LE 0 THEN stop y be monotonically increasing IF min y 1:ny 1 y 0:ny 2 LT 0 THEN stop first check: check if two consecutive values are equal bad where y 1:ny 1 y 0:ny 2 EQ 0 cntbad IF cntbad NE 0 THEN BEGIN define the results: y2 y2 dblarr nx2 define xinx2: see help of value_locate if xinx2 i eq 1 : x bad i x2 nx2 1 else : x2 xinx2 i x2 nx2 1 else : x2 xinx2 i we have middle pieces for which we force yp0 0 0d and ypn_1 0 0d IF cntbad GT 1 THEN BEGIN we take care of the piece located between bad ib 1 and bad ib FOR ib 1 cntbad 1 DO BEGIN if there is x2 values smaller that x bad ib then the x2 values located between bad ib 1 and bad ib are xinx2 ib 1 1:xinx2 ib IF xinx2 ib NE 1 THEN begin y2 xinx2 ib 1 1 0 y i 1 y i 2 y reach its minimum value between x i and x i 1 0 y i 1 0 y i we do a first selection by looking for those points loc lindgen nx 1 maybebad where yscd loc LE 0 0d AND yscd loc 1 GE 0 0d cntbad IF cntbad NE 0 THEN BEGIN mbbloc loc maybebad aaa yscd mbbloc 1 yscd mbbloc 6 0d x mbbloc 1 x mbbloc bbb 0 5d yscd mbbloc ccc yifrst mbbloc ddd y mbbloc definitive selection: y can become negative if and only if 2b 2 4 3a c 0 y can become negative if and only if b 2 3a c 0 delta bbb bbb 3 0d aaa ccc bad where delta GT 0 cntbad IF cntbad NE 0 THEN BEGIN delta delta bad aaa aaa bad bbb bbb bad ccc ccc bad ddd ddd bad bad maybebad bad define xinx2_1: see help of value_locate if xinx2_1 i eq 1 : x bad i x2 nx2 1 else : x2 xinx2_1 i x2 nx2 1 else : x2 xinx2_2 i y bad ib 1 then we cannot applay the method we want to apply we use then convex concave case by changing by hand the value of yinfl and xinfl IF yzero GT y bad ib 1 THEN BEGIN yinfl 0 5d y bad ib 1 y bad ib xinfl 0 5d x bad ib 1 x bad ib GOTO convexconcave ENDIF define xinx2_3: see help of value_locate if xinx2_3 ib eq 1 : x bad ib xzero x2 nx2 1 else : x2 xinx2_3 we use then convex concave case by changing by hand the value of yinfl and xinfl IF yzero lt y bad ib THEN BEGIN yinfl 0 5d y bad ib 1 y bad ib xinfl 0 5d x bad ib 1 x bad ib GOTO convexconcave ENDIF define xinx2_3: see help of value_locate if xinx2_3 ib eq 1 : x bad ib xzero x2 nx2 1 else : x2 xinx2_3 x2 nx2 1 else : x2 xinx2_3 x bad ib xzero x2 xinx3_2 1 xinx2_3 value_locate x2 x bad ib xinfl IF xinx2_3 ge xinx2_1 ib 1 THEN BEGIN y2 xinx2_1 ib 1:xinx2_3 pure_convex x bad ib x bad ib xinfl y bad ib yinfl yifrst bad ib x2 xinx2_1 ib 1:xinx2_3 ENDIF IF xinx2_2 ib GE xinx2_3 1 THEN BEGIN y2 xinx2_3 1:xinx2_2 ib pure_concave x bad ib xinfl x bad ib 1 yinfl y bad ib 1 yifrst bad ib 1 x2 xinx2_3 1:xinx2_2 ib ENDIF END ENDCASE END ENDCASE ENDIF ENDFOR ENDIF ENDIF RETURN y2 END"); 74 74 a[72] = new Array("./Interpolation/spl_keep_mean.html", "spl_keep_mean.pro", "", " file_comments Given the arrays X and Y which tabulate a function with the X i AND Y i in ascending order and given an input value X2 the spl_incr function returns an interpolated value for the given values of X2 The interpolation method is based on cubic spline corrected in a way that integral of the interpolated values is the same as the integral of the input values for example to build daily data from monthly mean and keep the monthly mean of the computed daily data equal to the original values param x in required An n elements at least 2 input vector that specifies the tabulate points in a strict ascending order param yin in required type array an array with one element less than x y i represents the mean value between x i and x i 1 if GE0 is activated y must have positive values param x2 in required The input values for which the interpolated values are desired Its values must be strictly monotonically increasing keyword GE0 to force that y2 is always GE than 0 In that case y must also be GE than 0 keyword YP0 The first derivative of the interpolating function at the point X0 If YP0 is omitted the second derivative at the boundary is set to zero resulting in a natural spline keyword YPN_1 The first derivative of the interpolating function at the point Xn 1 If YPN_1 is omitted the second derivative at the boundary is set to zero resulting in a natural spline returns y2: the mean value between two consecutive values of x2 This array has one element less than y2 y2 has double precision restrictions It might be possible that y2 has very small negative values amplitude smaller than 1 e 6 examples 12 monthly values of precipitations into daily values: IDL yr1 1990 IDL yr2 1992 IDL nyr yr2 yr1 1 IDL n1 12 nyr 1 IDL x julday 1 findgen n1 replicate 1 n1 IDL replicate yr1 n1 fltarr n1 IDL n2 365 nyr total leapyr yr1 indgen nyr 1 IDL x2 julday replicate 1 n2 1 findgen n2 IDL replicate yr1 n2 fltarr n2 IDL y abs randomn 0 n1 1 IDL y2 spl_keep_mean x y x2 ge0 IDL print min x max ma ma IDL print min x2 max ma ma IDL print vairdate min x max ma ma IDL print total y x 1:n1 1 x 0:n1 2 IDL print total y2 x2 1:n2 1 x2 0:n2 2 history Sebastien Masson smasson lodyc jussieu fr : May 2005 version Id: spl_keep_mean pro 327 2007 12 13 16:22:35Z pinsard FUNCTION spl_keep_mean x yin x2 YP0 yp0 YPN_1 ypn_1 GE0 ge0 compile_opt idl2 strictarrsubs check and initialization nx n_elements x ny n_elements yin nx2 n_elements x2 x must have at least 2 elements IF nx LT 2 THEN stop x2 must have at least 2 elements IF nx2 LT 2 THEN stop x be monotonically increasing IF min x 1:nx 1 x 0:nx 2 LE 0 THEN stop x2 be monotonically increasing IF min x2 1:nx2 1 x2 0:nx2 2 LE 0 THEN stop compute the integral of y if spl_keep_mean is called by the user and not by itself we must compute the integral of y yin must have one element less than x IF nx NE ny 1 THEN stop y double yin double x 1:nx 1 x 0:nx 2 y 0 0d temporary y y total temporary y cumulative double compute the spline interpolation IF keyword_set ge0 THEN BEGIN if the want that the interpolated values are always 0 we must have yin 0 0d IF min yin LT 0 THEN stop call spl_incr y2 spl_incr x temporary y x2 yp0 yp0 ypn_1 ypn_1 ENDIF ELSE BEGIN yscd spl_init x y yp0 yp0 ypn_1 ypn_1 double y2 spl_interp x y temporary yscd x2 double ENDELSE Compute the derivative of y yfrst y2 1:nx2 1 y2 0:nx2 2 x2 1:nx2 1 x2 0:nx2 2 it can happen that we have very small negative values 1 e 6 for ex yfrst 0 0d temporary yfrst RETURN yfrst END"); 75 a[73] = new Array("./Interpolation/square2quadrilateral.html", "square2quadrilateral.pro", "", " file_comments warm or map a unit square onto an arbitrary quadrilateral according to the 4 point correspondences: 0 0 x0 y0 1 0 x1 y1 1 1 x2 y2 0 1 x3 y3 The mapping is done using perspective transformation which preserve lines in all orientations and permit quadrilateral to quadrilateral mappings see ref bel low categories Picture Grid param x0in in required param y0in in required param x1in in required param y1in in required param x2in in required param y2in in required param x3in in required param y3in in required the coordinates of the quadrilateral see above for correspondence with the unit square Can be scalar or array x0 y0 x1 y1 x2 y2 and x3 y3 are given in the anticlockwise order param xxin in optional first coordinates of the point s for which we want to do the mapping param yyin in optional second coordinates of the point s for which we want to do the mapping keyword DOUBLE type salar 0 or 1 default 0 activate to perform double precision computation returns 2 n array: the new coordinates xout yout of the xin yin point s after mapping If xin is a scalar then n is equal to the number of elements of x0 If xin is an array then n is equal to the number of elements of xin If xin and yin are omitted square2quadrilateral returns the matrix A which is used for the inverse transformation restrictions I think degenerated quadrilateral e g flat of twisted is not work This has to be tested examples IDL splot 0 5 0 3 nodata xstyle 1 ystyle 1 IDL tracegrille findgen 11 1 findgen 11 1 color indgen 12 20 IDL xin findgen 11 1 replicate 1 11 IDL yin replicate 1 11 findgen 11 1 IDL out square2quadrilateral 2 1 3 0 5 1 2 3 xin yin IDL tracegrille reform out 0 11 11 reform out 1 11 11 color indgen 12 20 history Sebastien Masson smasson lodyc jussieu fr August 2003 Based on Digital Image Warping by G Wolberg IEEE Computer Society Press Los Alamitos California Chapter 3 see p 52 56 version Id: square2quadrilateral pro 327 2007 12 13 16:22:35Z pinsard FUNCTION square2quadrilateral x0in y0in x1in y1in x2in y2in x3in y3in xxin yyin DOUBLE double Warning wrong definition of x2 y2 and x3 y3 at the bottom of page 54 of Wolberg s book see figure 3 7 page 56 for the good definition compile_opt idl2 strictarrsubs IF keyword_set double THEN BEGIN x0 double x0in x1 double x1in x2 double x2in x3 double x3in y0 double y0in y1 double y1in y2 double y2in y3 double y3in IF arg_present xxin THEN BEGIN xin double xxin yin double yyin ENDIF ENDIF ELSE BEGIN x0 float x0in x1 float x1in x2 float x2in x3 float x3in y0 float y0in y1 float y1in y2 float y2in y3 float y3in IF arg_present xxin THEN BEGIN xin float xxin yin float yyin ENDIF ENDELSE IF keyword_set double THEN a dblarr 8 n_elements x0 ELSE a fltarr 8 n_elements x0 delx3 x0 x1 x2 x3 dely3 y0 y1 y2 y3 affinemap where delx3 EQ 0 AND dely3 EQ 0 IF affinemap 0 NE 1 THEN BEGIN xx0 x0 affinemap xx1 x1 affinemap xx2 x2 affinemap yy0 y0 affinemap yy1 y1 affinemap yy2 y2 affinemap a 0 affinemap xx1 xx0 a 1 affinemap xx2 xx1 a 2 affinemap xx0 a 3 affinemap yy1 yy0 a 4 affinemap yy2 yy1 a 5 affinemap yy0 a 6 affinemap 0 a 7 affinemap 0 ENDIF projectivemap where delx3 NE 0 OR dely3 NE 0 IF projectivemap 0 NE 1 THEN BEGIN xx0 x0 projectivemap xx1 x1 projectivemap xx2 x2 projectivemap xx3 x3 projectivemap yy0 y0 projectivemap yy1 y1 projectivemap yy2 y2 projectivemap yy3 y3 projectivemap delx1 xx1 xx2 dely1 yy1 yy2 delx2 xx3 xx2 dely2 yy3 yy2 delx3 delx3 projectivemap dely3 dely3 projectivemap div delx1 dely2 dely1 delx2 zero where div EQ 0 IF zero 0 NE 1 THEN BEGIN stop ENDIF a13 delx3 dely2 dely3 delx2 div a23 delx1 dely3 dely1 delx3 div a 0 projectivemap xx1 xx0 a13 xx1 a 1 projectivemap xx3 xx0 a23 xx3 a 2 projectivemap xx0 a 3 projectivemap yy1 yy0 a13 yy1 a 4 projectivemap yy3 yy0 a23 yy3 a 5 projectivemap yy0 a 6 projectivemap a13 a 7 projectivemap a23 ENDIF IF NOT arg_present xxin THEN return a IF n_elements xin EQ 1 THEN BEGIN xin replicate xin n_elements x0 yin replicate yin n_elements x0 ENDIF IF keyword_set double THEN res dblarr 2 n_elements xin ELSE res fltarr 2 n_elements xin IF n_elements x0 EQ 1 THEN BEGIN div a 6 xin a 7 yin 1 zero where div EQ 0 IF zero 0 NE 1 THEN BEGIN stop ENDIF res 0 a 0 xin a 1 yin a 2 div res 1 a 3 xin a 4 yin a 5 div ENDIF ELSE BEGIN div a 6 xin a 7 yin 1 zero where div EQ 0 IF zero 0 NE 1 THEN BEGIN stop ENDIF res 0 a 0 xin a 1 yin a 2 div res 1 a 3 xin a 4 yin a 5 div ENDELSE RETURN res END");75 a[73] = new Array("./Interpolation/square2quadrilateral.html", "square2quadrilateral.pro", "", " file_comments warm or map a unit square onto an arbitrary quadrilateral according to the 4 point correspondences: 0 0 x0 y0 1 0 x1 y1 1 1 x2 y2 0 1 x3 y3 The mapping is done using perspective transformation which preserve lines in all orientations and permit quadrilateral to quadrilateral mappings see ref below categories Picture Grid param x0in in required param y0in in required param x1in in required param y1in in required param x2in in required param y2in in required param x3in in required param y3in in required the coordinates of the quadrilateral see above for correspondence with the unit square Can be scalar or array x0 y0 x1 y1 x2 y2 and x3 y3 are given in the anticlockwise order param xxin in optional first coordinates of the point s for which we want to do the mapping param yyin in optional second coordinates of the point s for which we want to do the mapping keyword DOUBLE type salar 0 or 1 default 0 activate to perform double precision computation returns 2 n array: the new coordinates xout yout of the xin yin point s after mapping If xin is a scalar then n is equal to the number of elements of x0 If xin is an array then n is equal to the number of elements of xin If xin and yin are omitted square2quadrilateral returns the matrix A which is used for the inverse transformation restrictions I think degenerated quadrilateral e g flat of twisted is not work This has to be tested examples IDL splot 0 5 0 3 nodata xstyle 1 ystyle 1 IDL tracegrille findgen 11 1 findgen 11 1 color indgen 12 20 IDL xin findgen 11 1 replicate 1 11 IDL yin replicate 1 11 findgen 11 1 IDL out square2quadrilateral 2 1 3 0 5 1 2 3 xin yin IDL tracegrille reform out 0 11 11 reform out 1 11 11 color indgen 12 20 history Sebastien Masson smasson lodyc jussieu fr August 2003 Based on Digital Image Warping by G Wolberg IEEE Computer Society Press Los Alamitos California Chapter 3 see p 52 56 version Id: square2quadrilateral pro 358 2008 04 28 09:41:14Z pinsard FUNCTION square2quadrilateral x0in y0in x1in y1in x2in y2in x3in y3in xxin yyin DOUBLE double Warning wrong definition of x2 y2 and x3 y3 at the bottom of page 54 of Wolberg s book see figure 3 7 page 56 for the good definition compile_opt idl2 strictarrsubs IF keyword_set double THEN BEGIN x0 double x0in x1 double x1in x2 double x2in x3 double x3in y0 double y0in y1 double y1in y2 double y2in y3 double y3in IF arg_present xxin THEN BEGIN xin double xxin yin double yyin ENDIF ENDIF ELSE BEGIN x0 float x0in x1 float x1in x2 float x2in x3 float x3in y0 float y0in y1 float y1in y2 float y2in y3 float y3in IF arg_present xxin THEN BEGIN xin float xxin yin float yyin ENDIF ENDELSE IF keyword_set double THEN a dblarr 8 n_elements x0 ELSE a fltarr 8 n_elements x0 delx3 x0 x1 x2 x3 dely3 y0 y1 y2 y3 affinemap where delx3 EQ 0 AND dely3 EQ 0 IF affinemap 0 NE 1 THEN BEGIN xx0 x0 affinemap xx1 x1 affinemap xx2 x2 affinemap yy0 y0 affinemap yy1 y1 affinemap yy2 y2 affinemap a 0 affinemap xx1 xx0 a 1 affinemap xx2 xx1 a 2 affinemap xx0 a 3 affinemap yy1 yy0 a 4 affinemap yy2 yy1 a 5 affinemap yy0 a 6 affinemap 0 a 7 affinemap 0 ENDIF projectivemap where delx3 NE 0 OR dely3 NE 0 IF projectivemap 0 NE 1 THEN BEGIN xx0 x0 projectivemap xx1 x1 projectivemap xx2 x2 projectivemap xx3 x3 projectivemap yy0 y0 projectivemap yy1 y1 projectivemap yy2 y2 projectivemap yy3 y3 projectivemap delx1 xx1 xx2 dely1 yy1 yy2 delx2 xx3 xx2 dely2 yy3 yy2 delx3 delx3 projectivemap dely3 dely3 projectivemap div delx1 dely2 dely1 delx2 zero where div EQ 0 IF zero 0 NE 1 THEN BEGIN stop ENDIF a13 delx3 dely2 dely3 delx2 div a23 delx1 dely3 dely1 delx3 div a 0 projectivemap xx1 xx0 a13 xx1 a 1 projectivemap xx3 xx0 a23 xx3 a 2 projectivemap xx0 a 3 projectivemap yy1 yy0 a13 yy1 a 4 projectivemap yy3 yy0 a23 yy3 a 5 projectivemap yy0 a 6 projectivemap a13 a 7 projectivemap a23 ENDIF IF NOT arg_present xxin THEN return a IF n_elements xin EQ 1 THEN BEGIN xin replicate xin n_elements x0 yin replicate yin n_elements x0 ENDIF IF keyword_set double THEN res dblarr 2 n_elements xin ELSE res fltarr 2 n_elements xin IF n_elements x0 EQ 1 THEN BEGIN div a 6 xin a 7 yin 1 zero where div EQ 0 IF zero 0 NE 1 THEN BEGIN stop ENDIF res 0 a 0 xin a 1 yin a 2 div res 1 a 3 xin a 4 yin a 5 div ENDIF ELSE BEGIN div a 6 xin a 7 yin 1 zero where div EQ 0 IF zero 0 NE 1 THEN BEGIN stop ENDIF res 0 a 0 xin a 1 yin a 2 div res 1 a 3 xin a 4 yin a 5 div ENDELSE RETURN res END"); 76 76 a[74] = new Array("./Matrix/cmapply.html", "cmapply.pro", "", " file_comments Utility function adapted from CMPRODUCT param X version Id: cmapply pro 325 2007 12 06 10:04:53Z 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 param newarr param dimapply param dimkeep param nkeep param totcol param totkeep 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 Array param OP in required type string 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 type array 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 type array An array of dimensions that are to be collapsed where 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 default same as input 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 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 Significant 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 325 2007 12 06 10:04:53Z 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"); 77 77 a[75] = 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 is one dimensional array 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 desirable 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 type string 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 indexes instead of the array values themselves The slower set operations are always performed in this case The indexes 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 indexes 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 325 2007 12 06 10:04:53Z 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 "); … … 125 125 a[123] = new Array("./ReadWrite/idl-NetCDF/ncdf_struct.html", "ncdf_struct.pro", "", " file_comments categories param FILENAME The file s name keyword NODATA keyword NOATTRIBUTES returns restrictions examples history version Id: ncdf_struct pro 157 2006 08 21 09:01:50Z navarro FUNCTION ncdf_struct filename nodata nodata noattributes noattributes Read entire netcdf file into a structure Structure contains metadata actual array contents are on heap with pointers contained in the structure Heap variables not created if nodata specified Use ncdf_struct_free to free heap memory Some data is duplicated for ease of access in particular if there is a variable name matching a dimension name then a pointer to the variable contents is accessible via the substructures corresponding to the dimension and every other variable that uses it Alan Iwi 27 6 02 compile_opt idl2 strictarrsubs id ncdf_open filename g ncdf_inquire id ndim g ndims nvar g nvars natt g ngatts if ndim gt 0 then begin dnames strarr ndim dsizes lonarr ndim for idim 0 ndim 1 do begin ncdf_diminq id idim dname dsize dnames idim dname dsizes idim dsize endfor endif if natt gt 0 and not keyword_set noattributes then begin anames strarr natt for iatt 0 natt 1 do begin aname ncdf_attname id global iatt ainq ncdf_attinq id global aname ncdf_attget id global aname aval if ainq datatype eq CHAR then aval string aval if iatt eq 0 then begin atts create_struct aname aval endif else begin atts create_struct atts aname aval endelse anames iatt aname endfor g create_struct g gatts atts gattnames anames endif if nvar gt 0 then begin vnames strarr nvar for ivar 0 nvar 1 do begin v ncdf_varinq id ivar vname v name vndim v ndims vnatt v natts vname v name if vnatt gt 0 and not keyword_set noattributes then begin vanames strarr vnatt for iatt 0 vnatt 1 do begin aname ncdf_attname id ivar iatt ainq ncdf_attinq id ivar aname ncdf_attget id ivar aname aval if ainq datatype eq CHAR then aval string aval if iatt eq 0 then begin atts create_struct aname aval endif else begin atts create_struct atts aname aval endelse vanames iatt aname endfor v create_struct v atts atts attnames anames endif vdnames dnames v dim vdsizes dsizes v dim v create_struct v dimnames vdnames dimsizes vdsizes if not keyword_set nodata then begin ncdf_varget id ivar vdata v create_struct v data ptr_new vdata dimdata replicate ptr_new vndim endif if ivar eq 0 then begin vars create_struct vname v endif else begin vars create_struct vars vname v endelse vnames ivar vname endfor endif if ndim gt 0 then begin for idim 0 ndim 1 do begin dname dnames idim d name:dname size:dsizes idim if not keyword_set nodata and nvar gt 0 then begin matchvar 1 for ivar 0 nvar 1 do begin if vnames ivar eq dname then matchvar ivar endfor if matchvar ne 1 then d create_struct d data vars matchvar data endif if idim eq 0 then begin dims create_struct dname d endif else begin dims create_struct dims dname d endelse endfor g create_struct g dims dims dimnames dnames dimsizes dsizes endif if nvar gt 0 then begin if not keyword_set nodata then begin for ivar 0 nvar 1 do begin for idim 0 vars ivar ndims 1 do begin vars ivar dimdata idim dims vars ivar dim idim data endfor endfor endif g create_struct g vars vars varnames vnames endif ncdf_close id return g end"); 126 126 a[124] = new Array("./ReadWrite/idl-NetCDF/ncdf_struct_free.html", "ncdf_struct_free.pro", "", " file_comments categories param S The string to be searched returns restrictions examples history version Id: ncdf_struct_free pro 157 2006 08 21 09:01:50Z navarro PRO ncdf_struct_free s compile_opt idl2 strictarrsubs free heap memory associated with struct returned by ncdf_struct for i 0 s nvars 1 do ptr_free s vars i data end"); 127 a[125] = new Array("./ReadWrite/ncdf_getatt.html", "ncdf_getatt.pro", "", " file_comments Get variable attibutes from a NetCDF file categories Read NetCDF file param fileid in required type salar string or long if fileid is a scalar string then it is the name of the file with the full path to be opened in that case the file will be opened and closed within ncdf_getatt if fileid is a scalar long then it is the id of the file return by a call to ncdf_open outside of ncdf_getatt in that case the file will NOT be opened and closed within ncdf_getatt param varid in required type salar string or long The netCDF variable ID returned from a previous call to NCDF_VARDEF or NCDF_VARID or the name of the variable keyword add_offset Set this keyword to a named variable in which the value of add_offset attribute is returned Return 0 if this attribute doesn t exist keyword scale_factor Set this keyword to a named variable in which the value of scale_factor attribute is returned Return 0 if this attribute doesn t exist keyword missing_value Set this keyword to a named variable in which the value of missing_value or _fillvalue attribute is returned Return the scalar no if this attribute doesn t exist keyword units Set this keyword to a named variable in which the value of units attribute is returned Return the empty string if this attribute doesn t exist keyword calendar Set this keyword to a named variable in which the value of calendar attribute is returned Return the string greg if this attribute doesn t exist keyword long_name Set this keyword to a named variable in which the value of long_name is returned Return empty string if this attribute does not exist keyword DOUBLE default 0 type 1 or 0 activate to force double precision floating point value of add_offset and scale_factor keyword standard_name Set this keyword to a named variable in which the value of standard_name CF convention is returned Return empty string if this attribute does not exist keyword _EXTRA defined only to be able to call ncdf_getatt with the _extra keyword examples IDL ncdf_getatt cdfid sst add_offset add_offset scale_factor scale_factor units units history August 2007: Sebastien Masson smasson lodyc jussieu fr version Id: ncdf_getatt pro 3 34 2008 03 07 14:39:18Z smasson PRO ncdf_getatt fileid varid ADD_OFFSET add_offset SCALE_FACTOR scale_factor MISSING_VALUE missing_value UNITS units CALENDAR calendar LONG_NAME long_name STANDARD_NAME standard_name DOUBLE double _extra ex compile_opt idl2 strictarrsubs should we open the file IF size fileid type EQ 7 THEN cdfid ncdf_open fileid ELSE cdfid fileid default definitions units add_offset 0 scale_factor 1 missing_value no calendar greg long_name standard_name varinq ncdf_varinq cdfid varid IF varinq natts GT 0 THEN BEGIN FOR a 0 varinq natts 1 DO BEGIN attname ncdf_attname cdfid varid a CASE strlowcase attname OF units :BEGIN ncdf_attget cdfid varid attname tmp units strtrim tmp 2 END calendar :BEGIN ncdf_attget cdfid varid attname tmp tmp strtrim tmp 2 CASE tmp OF noleap :calendar noleap 360d :calendar 360d greg :IF n_elements calendar EQ 0 THEN calendar greg ELSE:BEGIN notused report Unknown calendar: tmp we use greg calendar calendar greg ENDENDCASE END long_name :BEGIN ncdf_attget cdfid varid attname tmp long_name strtrim tmp 2 END standard_name :BEGIN ncdf_attget cdfid varid attname tmp standard_name strtrim tmp 2 END add_offset :ncdf_attget cdfid varid attname add_offset scale_factor :ncdf_attget cdfid varid attname scale_factor _fillvalue :ncdf_attget cdfid varid attname missing_value missing_value :ncdf_attget cdfid varid attname missing_value ELSE: ENDCASE ENDFOR ENDIF IF size missing_value type EQ 1 THEN BEGIN missing_value strlowcase string missing_value IF strmid missing_value 0 1 reverse_offset EQ f THEN missing_value strmid missing_value 0 strlen missing_value 1 IF isnumber string missing_value tmp EQ 1 THEN BEGIN missing_value tmp ENDIF ELSE BEGIN ras report Warning: missing value is not a number: missing_value missing_value no ENDELSE ENDIF IF keyword_set double THEN BEGIN add_offset double add_offset scale_factor double scale_factor ENDIF ELSE BEGIN add_offset float add_offset scale_factor float scale_factor ENDELSE IF size fileid type EQ 7 THEN ncdf_close cdfid return END ");127 a[125] = new Array("./ReadWrite/ncdf_getatt.html", "ncdf_getatt.pro", "", " file_comments Get variable attibutes from a NetCDF file categories Read NetCDF file param fileid in required type salar string or long if fileid is a scalar string then it is the name of the file with the full path to be opened in that case the file will be opened and closed within ncdf_getatt if fileid is a scalar long then it is the id of the file return by a call to ncdf_open outside of ncdf_getatt in that case the file will NOT be opened and closed within ncdf_getatt param varid in required type salar string or long The netCDF variable ID returned from a previous call to NCDF_VARDEF or NCDF_VARID or the name of the variable keyword add_offset Set this keyword to a named variable in which the value of add_offset attribute is returned Return 0 if this attribute doesn t exist keyword scale_factor Set this keyword to a named variable in which the value of scale_factor attribute is returned Return 0 if this attribute doesn t exist keyword missing_value Set this keyword to a named variable in which the value of missing_value or _fillvalue attribute is returned Return the scalar no if this attribute doesn t exist keyword units Set this keyword to a named variable in which the value of units attribute is returned Return the empty string if this attribute doesn t exist keyword calendar Set this keyword to a named variable in which the value of calendar attribute is returned Return the string greg if this attribute doesn t exist keyword long_name Set this keyword to a named variable in which the value of long_name is returned Return empty string if this attribute does not exist keyword DOUBLE default 0 type 1 or 0 activate to force double precision floating point value of add_offset and scale_factor keyword standard_name Set this keyword to a named variable in which the value of standard_name CF convention is returned Return empty string if this attribute does not exist keyword _EXTRA defined only to be able to call ncdf_getatt with the _extra keyword examples IDL ncdf_getatt cdfid sst add_offset add_offset scale_factor scale_factor units units history August 2007: Sebastien Masson smasson lodyc jussieu fr version Id: ncdf_getatt pro 344 2008 04 15 11:05:43Z smasson PRO ncdf_getatt fileid varid ADD_OFFSET add_offset SCALE_FACTOR scale_factor MISSING_VALUE missing_value UNITS units CALENDAR calendar LONG_NAME long_name STANDARD_NAME standard_name DOUBLE double _extra ex compile_opt idl2 strictarrsubs should we open the file IF size fileid type EQ 7 THEN cdfid ncdf_open fileid ELSE cdfid fileid default definitions units add_offset 0 scale_factor 1 missing_value no calendar greg long_name standard_name varinq ncdf_varinq cdfid varid IF varinq natts GT 0 THEN BEGIN FOR a 0 varinq natts 1 DO BEGIN attname ncdf_attname cdfid varid a CASE strlowcase attname OF units :BEGIN ncdf_attget cdfid varid attname tmp units strtrim tmp 2 END calendar :BEGIN ncdf_attget cdfid varid attname tmp tmp strtrim tmp 2 CASE tmp OF noleap :calendar noleap 360d :calendar 360d greg :calendar greg 360_day :calendar 360d 365_day :calendar noleap gregorian : calendar greg ELSE:notused report Unknown calendar: tmp we use greg calendar ENDCASE END long_name :BEGIN ncdf_attget cdfid varid attname tmp long_name strtrim tmp 2 END standard_name :BEGIN ncdf_attget cdfid varid attname tmp standard_name strtrim tmp 2 END add_offset :ncdf_attget cdfid varid attname add_offset scale_factor :ncdf_attget cdfid varid attname scale_factor _fillvalue :ncdf_attget cdfid varid attname missing_value missing_value :ncdf_attget cdfid varid attname missing_value ELSE: ENDCASE ENDFOR ENDIF IF size missing_value type EQ 1 THEN BEGIN missing_value strlowcase string missing_value IF strmid missing_value 0 1 reverse_offset EQ f THEN missing_value strmid missing_value 0 strlen missing_value 1 IF isnumber string missing_value tmp EQ 1 THEN BEGIN missing_value tmp ENDIF ELSE BEGIN ras report Warning: missing value is not a number: missing_value missing_value no ENDELSE ENDIF IF keyword_set double THEN BEGIN add_offset double add_offset scale_factor double scale_factor ENDIF ELSE BEGIN add_offset float add_offset scale_factor float scale_factor ENDELSE IF size fileid type EQ 7 THEN ncdf_close cdfid return END "); 128 128 a[126] = new Array("./ReadWrite/ncdf_getaxis.html", "ncdf_getaxis.pro", "", " file_comments get the x y dimension Id and x y axes from a netcdf file categories Read NetCDF file param fileid in required type scalar the id of the netcdf file param dimidx out type scalar long id of the x dimension param dimidy out type scalar long id of the y dimension param xaxis out type 1D or 2D array the x axis param yaxis out type 1D or 2D array the y axis keyword ROMSGRID out type scalar: 0 or 1 gives back if we are using a ROMS grid 1 or not 0 keyword START1 default 0 type scalar: 0 or 1 Index the axis from 1 instead of 0 when using xyindex keyword XDIMNAME default longitude lon x longitude lon x longitude lon or x type scalar string A string giving the name of the x dimension or and a named variable in which x dimension name is returned keyword YDIMNAME default latitude lat y latitude lat y eta_ latitude lat y type scalar string A string giving the name of the y dimension or and a named variable in which y dimension name is returned keyword XAXISNAME default x longitude nav_lon lon lon_rho or NbLongitudes type scalar string A string giving the name of the variable in the file that contains the x axis or and a named variable in which this variable name is returned keyword YAXISNAME default y latitude nav_lat lat lat_rho or NbLatitudes type scalar string A string giving the name of the variable in the file that contains the y axis or and a named variable in which this variable name is returned keyword XYINDEX default 0 type scalar: 0 or 1 To define the x y axis with index instead of using the values contained in X YAXISNAME x yaxis keyword_set start1 findgen jpi jpj keyword _EXTRA Used to be able to call ncdf_getaxis with _extra history March 2007: Sebastien Masson smasson locean ipsl upmc fr version Id: ncdf_getaxis pro 327 2007 12 13 16:22:35Z pinsard PRO ncdf_getaxis fileid dimidx dimidy xaxis yaxis XAXISNAME xaxisname YAXISNAME yaxisname XDIMNAME xdimname YDIMNAME ydimname XYINDEX xyindex START1 start1 ROMSGRID romsgrid _EXTRA ex compile_opt idl2 strictarrsubs should we open the file IF size fileid type EQ 7 THEN cdfid ncdf_open fileid ELSE cdfid fileid what is inside the file inside ncdf_inquire cdfid name of all dimensions namedim strarr inside ndims for dimiq 0 inside ndims 1 do begin ncdf_diminq cdfid dimiq tmpname value namedim dimiq strlowcase tmpname ENDFOR name of the variables namevar strarr inside nvars for varid 0 inside nvars 1 do begin invar ncdf_varinq cdfid varid namevar varid strlowcase invar name ENDFOR find the xaxis try to get the variable that contains the xaxis if keyword_set xaxisname then xaxisname strlowcase xaxisname ELSE xaxisname x xvarid where namevar EQ xaxisname OR namevar EQ longitude OR namevar EQ nav_lon OR namevar EQ lon OR namevar EQ lon_rho OR namevar EQ nblongitudes 0 no xaxis variable found we will build a fake xaxis based on the size of the x dimension we must find the x dimension IF xvarid EQ 1 THEN BEGIN dummy report xaxis variable was not found within the default names: longitude nav_lon lon lon_rho nblongitudes we use a fake xaxis based on x dimension size or use XAXISNAME keyword simple xaxisname Not Found try to get the dimension corresponding to x roms file dimidx where namedim EQ xi_rho OR namedim EQ xi_u OR namedim EQ xi_v OR namedim EQ xi_psi IF dimidx 0 EQ 1 THEN BEGIN we are looking for a x dimension with a name matching one of the following regular expression: if keyword_set xdimname then testname strlowcase xdimname ELSE testname longitude lon x longitude lon x longitude lon x cnt 1 ii 0 WHILE cnt NE 1 AND ii LT n_elements testname DO BEGIN dimidx where strmatch namedim testname ii EQ 1 cnt ii ii 1 ENDWHILE CASE cnt OF 0:begin dummy report none of the dimensions name matches one of the following regular expression: longitude lon x longitude lon x longitude lon x we cannot find the x dimension use XDIMNAME keyword simple stop END 1:dimidx dimidx 0 ELSE:begin dummy report several and not one unique dimensions name matches the following regular expression: longitude lon x longitude lon x longitude lon x we cannot find the x dimension use XDIMNAME keyword simple stop ENDELSE ENDCASE romsgrid 0b ENDIF ELSE romsgrid 1b ENDIF ELSE BEGIN romsgrid strmid namevar xvarid 0 4 EQ lon_ xinq ncdf_varinq cdfid xvarid xaxisname xinq name dimidx xinq dim 0 IF xinq ndims GE 2 THEN ncdf_diminq cdfid xinq dim 1 blabla jpjfromx ENDELSE IF arg_present xdimname THEN ncdf_diminq cdfid dimidx xdimname jpifromx IF arg_present xaxis THEN BEGIN ncdf_diminq cdfid dimidx blabla jpifromx should we read or compute the xaxis IF keyword_set xyindex OR xvarid EQ 1 THEN BEGIN xaxis keyword_set start1 findgen jpifromx xyindex 1 ENDIF ELSE BEGIN read the xaxis ncdf_varget cdfid xvarid xaxis make sure of the shape of xaxis IF n_elements jpjfromx NE 0 THEN xaxis reform xaxis jpifromx jpjfromx over ENDELSE ENDIF find the yaxis try to get the variable that contains the yaxis if keyword_set yaxisname then yaxisname strlowcase yaxisname ELSE yaxisname y yvarid where namevar EQ yaxisname OR namevar EQ latitude OR namevar EQ nav_lat OR namevar EQ lat OR namevar EQ lat_rho OR namevar EQ nblatitudes 0 yvarid yvarid 0 no yaxis variable found we will build a fake yaxis based on the size of the y dimension we must find the y dimension if yvarid EQ 1 then begin dummy report yaxis variable was not found within the default names: latitude nav_lat lat lat_rho nblatitudes we use a fake yaxis based on y dimension size or use YAXISNAME keyword simple yaxisname Not Found try to get the dimension corresponding to y roms file dimidy where namedim EQ eta_rho OR namedim EQ eta_u OR namedim EQ eta_v OR namedim EQ eta_psi IF dimidy 0 EQ 1 THEN BEGIN we are looking for a y dimension with a name matching one of the following regular expression: if keyword_set ydimname then testname strlowcase ydimname ELSE testname latitude lat y latitude lat y eta_ latitude lat y cnt 1 ii 0 WHILE cnt NE 1 AND ii LT n_elements testname DO BEGIN dimidy where strmatch namedim testname ii EQ 1 cnt ii ii 1 ENDWHILE CASE cnt OF 0:begin dummy report none of the dimensions name matches one of the following regular expression: latitude lat y latitude lat y eta_ latitude lat y we cannot find the y dimension use YDIMNAME keyword simple stop END 1:dimidy dimidy 0 ELSE:begin dummy report several and not one unique dimensions name matches the following regular expression: latitude lat y latitude lat y eta_ latitude lat y we cannot find the y dimension use YDIMNAME keyword simple stop ENDELSE ENDCASE ENDIF ENDIF ELSE BEGIN yinq ncdf_varinq cdfid yvarid yaxisname yinq name IF yinq ndims GE 2 THEN BEGIN ncdf_diminq cdfid yinq dim 0 blabla jpifromy dimidy yinq dim 1 ENDIF ELSE dimidy yinq dim 0 ENDELSE IF arg_present ydimname THEN ncdf_diminq cdfid dimidy ydimname jpjfromy IF arg_present yaxis THEN BEGIN IF n_elements jpifromy NE 0 THEN BEGIN IF jpifromy NE jpifromx THEN BEGIN dummy report x y axes do not have the same x dimension stop ENDIF ENDIF ncdf_diminq cdfid dimidy blabla jpjfromy IF n_elements jpjfromx NE 0 THEN BEGIN IF jpjfromy NE jpjfromx THEN BEGIN dummy report x y axes do not have the same y dimension stop ENDIF ENDIF should we read or compute the xaxis IF keyword_set xyindex OR yvarid EQ 1 THEN BEGIN yaxis keyword_set start1 findgen jpjfromy ENDIF ELSE BEGIN read the yaxis ncdf_varget cdfid yvarid yaxis make sure of the shape of xaxis IF n_elements jpifromy NE 0 THEN yaxis reform yaxis jpifromy jpjfromy over ENDELSE ENDIF IF size fileid type EQ 7 THEN ncdf_close cdfid return END"); 129 a[127] = new Array("./ReadWrite/ncdf_getmask.html", "ncdf_getmask.pro", "", " file_comments get the land sea mask array from a NetCDF file categories Read NetCDF file param fileid in required type salar string or long if fileid is a scalar string then it is the name of the file with the full path to be opened in that case the file will be opened and closed within ncdf_getmask if fileid is a scalar then it is the id of the file return by a call to ncdf_open outside of ncdf_getmask in that case the file will NOT be opened and closed within ncdf_getmask keyword ADDSCL_BEFORE default 0 type scalar: 0 or 1 put 1 to apply add_offset ad scale factor on data before looking for missing values when using USEASMASK keyword keyword INVMASK default 0 type scalar: 0 or 1 Inverse the land sea mask that should have 0 1 values for land sea : mask 1 mask keyword MASKNAME type string A string giving the name of the variable in the file that contains the land sea mask keyword MISSING_VALUE type scalar To define or redefine if the attribute is already existing the missing values used with USEASMASK keyword keyword USEASMASK type scalar string A string giving the name of the variable in the file that will be used to build the land sea mask In this case the mask is based on the first record if record dimension exists The mask is build according to : 1 the keyword missing_value if existing 2 the attribute missing_value if existing 3 NaN values if existing keyword _EXTRA to be able to call ncdf_getmask with _extra keyword returns the land sea mask 2D or 3D array or 1 in case of error or mask absence examples IDL mask ncdf_getmask HadISST1_1m_187001_200702_sst_reg1m nc useasmask sst missing_value 1 00000e 30 IDL mask ncdf_getmask meshmaskORCA2 nc maskname tmask history August 2007: Sebastien Masson smasson lodyc jussieu fr version Id: ncdf_getmask pro 327 2007 12 13 16:22:35Z pinsard FUNCTION ncdf_getmask fileid ADDSCL_BEFORE addscl_before MASKNAME maskname USEASMASK useasmask MISSING_VALUE missing_value INVMASK invmask _EXTRA ex compile_opt idl2 strictarrsubs IF NOT keyword_set maskname OR keyword_set useasmask AND keyword_set romsgrid THEN maskname mask_rho IF NOT keyword_set maskname OR keyword_set useasmask THEN return 1 should we open the file IF size fileid type EQ 7 THEN cdfid ncdf_open fileid ELSE cdfid fileid what is inside the file inq ncdf_inquire cdfid name of the variables namevar strarr inq nvars for varid 0 inq nvars 1 do begin invar ncdf_varinq cdfid varid namevar varid strlowcase invar name ENDFOR CASE 1 OF keyword_set maskname :mskid where namevar EQ strlowcase maskname 0 keyword_set useasmask :mskid where namevar EQ strlowcase useasmask 0 ENDCASE if mskid NE 1 THEN BEGIN mskinq ncdf_varinq cdfid mskid is the mask variable containing the record dimension withrcd where mskinq dim EQ inq recdim 0 IF withrcd NE 1 THEN BEGIN in order to read only the first record we need to get the size of each dimension count replicate 1L mskinq ndims FOR d 0 mskinq ndims 1 DO BEGIN IF d NE withrcd THEN BEGIN ncdf_diminq cdfid mskinq dim d name size count d size ENDIF ENDFOR read the variable for the first record ncdf_varget cdfid mskid mask count count ENDIF ELSE ncdf_varget cdfid mskid mask check if we need to applay add_offset and scale factor ncdf_getatt cdfid mskid add_offset add scale_factor scl missing_value miss IF n_elements missing_value NE 0 THEN miss missing_value IF keyword_set addscl_before THEN BEGIN IF scl NE 1 THEN mask mask scl IF add NE 0 THEN mask mask add ENDIF IF keyword_set useasmask THEN BEGIN IF n_elements miss NE 0 THEN BEGIN we have to take care of the float accuracy CASE 1 OF miss GE 1 e6:mask mask LT miss 10 miss LE 1 e6:mask mask GT miss 10 abs miss LE 1 e 6:mask abs mask GT 1 e 6 ELSE:mask mask NE miss ENDCASE ENDIF ELSE BEGIN mask finite mask IF min mask EQ 1 THEN BEGIN ras report missing or nan values not found mask 1 ENDIF ENDELSE ENDIF mask byte round mask if keyword_set invmask then mask 1b maskENDIF ELSE mask 1 IF size fileid type EQ 7 THEN ncdf_close cdfid return mask END");130 a[128] = new Array("./ReadWrite/ncdf_gettime.html", "ncdf_gettime.pro", "", " file_comments get the time axis from a netcdf_file and transforms it in Julian days of IDL categories Read NetCDF file param filename in required type scalar string the name of the ncdf_file param cdfid in required type scalar the ID of the ncdf_file which is already open keyword TIMEVAR type string It define the name of the variable that contains the time axis This keyword can be useful if there is no unlimited dimension or if the time axis selected by default the first 1D array with unlimited dimension is not the good one keyword CALLER required type scalar Used to specify the error messages Give the name of the calling procedure It can be only read_ncdf or scanfile keyword ERR Set this keyword to a named variable in which the value of the error message will be returned keyword _EXTRA _EXTRA to be able to call ncdf_getmask with _extra keyword returns a double 1D array of IDL Julian days In case of error return 1 if the time dimension was not found or return jpt if it as been found that the time dimension size is jpt restrictions the calendar variable must have the units attribute following the syntax bel low: 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 history August 2007: Sebastien Masson smasson lodyc jussieu fr version Id: ncdf_gettime pro 327 2007 12 13 16:22:35Z pinsard FUNCTION ncdf_gettime filename cdfid TIMEVAR timevar CALLER caller ERR err _EXTRA ex compile_opt idl2 strictarrsubs cm_4cal needed for key_caltype inq ncdf_inquire cdfid find the variable containing the time axis we get its name through the keyword timevar IF keyword_set timevar THEN BEGIN timeid ncdf_varid cdfid timevar IF timeid EQ 1 THEN BEGIN the variable is not found CASE caller OF read_ncdf :err No variable timevar found in filename Use the TIMESTEP keyword scanfile :err No variable timevar found in filename We create a fake calendar ENDCASE return 1 ENDIF timeinq ncdf_varinq cdfid timeid inq recdim timeinq dim 0 ncdf_diminq cdfid inq recdim timedimname jpt ENDIF ELSE BEGIN we try to find the time axis automatically we look for the infinite dimension IF inq recdim EQ 1 THEN BEGIN CASE caller OF read_ncdf :err the file filename as no infinite dimension C Use TIMESTEP or TIMEVAR keyword scanfile :err the file filename as no infinite dimension We create a fake calendar ENDCASE return 1 ENDIF ncdf_diminq cdfid inq recdim timedimname jpt we look for the variable containing the time axis we look for the first variable having for only dimension inq recdim timeid 0 REPEAT BEGIN As long as we have not find a variable having only one dimension: the infinite one timeinq ncdf_varinq cdfid timeid that the variable contain timeid timeid 1 ENDREP UNTIL n_elements timeinq dim EQ 1 AND timeinq dim 0 EQ inq recdim OR timeid EQ inq nvars 1 IF timeid EQ inq nvars 1 THEN BEGIN CASE caller OF read_ncdf :err the file filename as no time axis variable C Use the TIMESTEP keyword scanfile :err the file fullname has no time axis C we create a fake calendar ENDCASE return jpt ENDIF timeid timeid 1 ENDELSE look for attribute units and calendar to know how to compte the calendar no attribute for time variable IF timeinq natts EQ 0 then begin CASE caller OF read_ncdf :err the variable timeinq name has no attribute C Use the TIMESTEP keyword scanfile :err the variable timeinq name has no attribute C we create a fake calendar ENDCASE return jpt ENDIF get attributes names attnames strarr timeinq natts for attiq 0 timeinq natts 1 do attnames attiq strlowcase ncdf_attname cdfid timeid attiq do we find units attribute IF where attnames EQ units 0 EQ 1 then BEGIN CASE caller OF read_ncdf :err Attribute units not found for the variable timeinq name C Use the TIMESTEP keyword scanfile :err Attribute units not found for the variable timeinq name C we create a fake calendar ENDCASE return jpt ENDIF Is attribute calendar existing If no we suppose that the calendar is gregorian calendar if where attnames EQ calendar 0 NE 1 then BEGIN ncdf_attget cdfid timeid calendar value value strlowcase strtrim value 2 unpade cm_4cal variable key_caltype used by julday and caldat 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 decode units attribute ncdf_attget cdfid timeid units valuetime_counter:units seconds since 0001 01 01 00:00:00 time_counter:units hours since 0001 01 01 00:00:00 time_counter:units days since 1979 01 01 00:00:00 time_counter:units months since 1979 01 01 00:00:00 time_counter:units years since 1979 01 01 00:00:00 we decript the units attribute to find the time origin value strtrim strcompress string value 2 words str_sep value units words 0 units strlowcase units IF strpos units s strlen units 1 NE 1 THEN units strmid units 0 strlen units 1 IF strpos units julian_ NE 1 THEN units strmid units 7 IF units NE second AND units NE hour AND units NE day AND units NE month AND units NE year THEN BEGIN CASE caller OF read_ncdf :err time units does not start with seconds hours days months years C Use the TIMESTEP keyword scanfile :err time units does not start with seconds hours days months years C we create a fake calendar ENDCASE return jpt ENDIF IF stregex value since 0 9 1 4 0 9 1 2 0 9 1 2 boolean EQ 0 THEN BEGIN CASE caller OF read_ncdf :err attribute units of time has not the good format: since 0 9 1 4 0 9 1 2 0 9 1 2 C Use the TIMESTEP keyword scanfile :err attribute units of time has not the good format: since 0 9 1 4 0 9 1 2 0 9 1 2 C we create a fake calendar ENDCASE return jpt ENDIF start str_sep words 2 compute time axis ncdf_varget cdfid timeid time time double time case units of second :time julday start 1 start 2 start 0 0 0 0 time 86400 d hour :time julday start 1 start 2 start 0 0 0 0 time 24 d day :time julday start 1 start 2 start 0 0 0 0 time month :BEGIN if total fix time NE time NE 0 then we switch to days with 30d m time julday start 1 start 2 start 0 round time 30 ELSE for t 0 n_elements time 1 DO time t julday start 1 time t start 2 start 0 END year :BEGIN if total fix time NE time NE 0 then we switch to days with 365d y time julday start 1 start 2 start 0 round time 365 ELSE for t 0 n_elements time 1 do time t julday start 1 start 2 start 0 time t END ENDCASE time double time return time END");129 a[127] = new Array("./ReadWrite/ncdf_getmask.html", "ncdf_getmask.pro", "", " file_comments get the land sea mask array from a NetCDF file categories Read NetCDF file param fileid in required type salar string or long if fileid is a scalar string then it is the name of the file with the full path to be opened in that case the file will be opened and closed within ncdf_getmask if fileid is a scalar then it is the id of the file return by a call to ncdf_open outside of ncdf_getmask in that case the file will NOT be opened and closed within ncdf_getmask keyword ADDSCL_BEFORE default 0 type scalar: 0 or 1 put 1 to apply add_offset ad scale factor on data before looking for missing values when using USEASMASK keyword keyword INVMASK default 0 type scalar: 0 or 1 Inverse the land sea mask that should have 0 1 values for land sea : mask 1 mask keyword MASKNAME type string A string giving the name of the variable in the file that contains the land sea mask keyword MISSING_VALUE type scalar To define or redefine if the attribute is already existing the missing values used with USEASMASK keyword Note that this value is not used if TESTOP keyword is given and contains 2 words keyword USEASMASK type scalar string A string giving the name of the variable in the file that will be used to build the land sea mask In this case the mask is based on the first record if record dimension exists The mask is build according to operator defined by TESTOP keyword default NE and the testing values defined as 1 the second word of TESTOP if existing 2 MISSING_VALUE keyword 3 attribute missing_value or _fillvalue of the variable USEASMASK 4 Values f_nan can be used only with NE and EQ operators keyword TESTOP default NE type scalar string for example GT 0 5 a string describing the type of test that will be done to define the mask The test is performed on the variable specified by USEASMASK keyword TESTOP can contain 1 or 2 words The first word is the operator definition: EQ NE GE GT LE LT default is NE The second word define the testing value If TESTOP contains only 1 word then the test value is denifed by 1 MISSING_VALUE keyword 2 attribute missing_value or _fillvalue of the variable USEASMASK 3 Values f_nan can be used only with NE and EQ operators keyword _EXTRA to be able to call ncdf_getmask with _extra keyword returns the land sea mask 2D or 3D array or 1 in case of error or mask absence examples IDL mask ncdf_getmask HadISST1_1m_187001_200702_sst_reg1m nc useasmask sst missing_value 1 00000e 30 IDL mask ncdf_getmask meshmaskORCA2 nc maskname tmask IDL mask ncdf_getmask t106 nc useasmask SLM testop le 0 5 history August 2007: Sebastien Masson smasson lodyc jussieu fr version Id: ncdf_getmask pro 361 2008 07 07 14:23:42Z smasson FUNCTION ncdf_getmask fileid ADDSCL_BEFORE addscl_before MASKNAME maskname USEASMASK useasmask MISSING_VALUE missing_value INVMASK invmask TESTOP testop _EXTRA ex compile_opt idl2 strictarrsubs IF NOT keyword_set maskname OR keyword_set useasmask AND keyword_set romsgrid THEN maskname mask_rho IF NOT keyword_set maskname OR keyword_set useasmask THEN return 1 should we open the file IF size fileid type EQ 7 THEN cdfid ncdf_open fileid ELSE cdfid fileid what is inside the file inq ncdf_inquire cdfid name of the variables namevar strarr inq nvars for varid 0 inq nvars 1 do begin invar ncdf_varinq cdfid varid namevar varid strlowcase invar name ENDFOR CASE 1 OF keyword_set maskname :mskid where namevar EQ strlowcase maskname 0 keyword_set useasmask :mskid where namevar EQ strlowcase useasmask 0 ENDCASE if mskid NE 1 THEN BEGIN mskinq ncdf_varinq cdfid mskid is the mask variable containing the record dimension withrcd where mskinq dim EQ inq recdim 0 IF withrcd NE 1 THEN BEGIN in order to read only the first record we need to get the size of each dimension count replicate 1L mskinq ndims FOR d 0 mskinq ndims 1 DO BEGIN IF d NE withrcd THEN BEGIN ncdf_diminq cdfid mskinq dim d name size count d size ENDIF ENDFOR read the variable for the first record ncdf_varget cdfid mskid mask count count ENDIF ELSE ncdf_varget cdfid mskid mask get add_offset scale factor and missing value attributes ncdf_getatt cdfid mskid add_offset add scale_factor scl missing_value miss do we apply add_offset and scale factor IF keyword_set addscl_before THEN BEGIN IF scl NE 1 THEN mask mask scl IF add NE 0 THEN mask mask add ENDIF IF keyword_set useasmask THEN BEGIN IF n_elements missing_value NE 0 THEN miss missing_value IF size miss type EQ 7 THEN miss values f_nan IF NOT keyword_set testop THEN testop NE tmp strsplit testop extract op strupcase tmp 0 IF op EQ EQ THEN BEGIN op NE invmask 1b keyword_set invmask ENDIF IF n_elements tmp EQ 1 THEN testval miss ELSE testval float tmp 1 IF finite testval EQ 0 THEN BEGIN IF op NE NE THEN mask report NaN test value can be used only with EQ or NE operator ELSE mask finite mask ENDIF ELSE BEGIN CASE op OF GE :mask mask GE testval GT :mask mask GT testval LE :mask mask LE testval LT :mask mask LT testval NE :BEGIN we have to take care of the float accuracy CASE 1 OF testval GE 1 e6:mask mask LT testval 10 testval LE 1 e6:mask mask GT testval 10 abs testval LE 1 e 6:mask abs mask GT 1 e 6 ELSE:mask mask NE testval ENDCASE END ENDCASE ENDELSE ENDIF IF mask 0 NE 1 THEN BEGIN mask byte round mask if keyword_set invmask then mask 1b mask ENDIF ENDIF ELSE mask 1 IF size fileid type EQ 7 THEN ncdf_close cdfid return mask END"); 130 a[128] = new Array("./ReadWrite/ncdf_gettime.html", "ncdf_gettime.pro", "", " file_comments get the time axis from a netcdf_file and transforms it in Julian days of IDL categories Read NetCDF file param filename in required type scalar string the name of the ncdf_file param cdfid in required type scalar the ID of the ncdf_file which is already open keyword TIMEVAR type string It define the name of the variable that contains the time axis This keyword can be useful if there is no unlimited dimension or if the time axis selected by default the first 1D array with unlimited dimension is not the good one keyword CALLER required type scalar Used to specify the error messages Give the name of the calling procedure It can be only read_ncdf or scanfile keyword ERR Set this keyword to a named variable in which the value of the error message will be returned keyword _EXTRA _EXTRA to be able to call ncdf_getmask with _extra keyword returns a double 1D array of IDL Julian days In case of error return 1 if the time dimension was not found or return jpt if it as been found that the time dimension size is jpt restrictions the calendar variable must have the units attribute following the syntax below: 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 history August 2007: Sebastien Masson smasson lodyc jussieu fr version Id: ncdf_gettime pro 358 2008 04 28 09:41:14Z pinsard FUNCTION ncdf_gettime filename cdfid TIMEVAR timevar CALLER caller ERR err _EXTRA ex compile_opt idl2 strictarrsubs cm_4cal needed for key_caltype inq ncdf_inquire cdfid find the variable containing the time axis we get its name through the keyword timevar IF keyword_set timevar THEN BEGIN timeid ncdf_varid cdfid timevar IF timeid EQ 1 THEN BEGIN the variable is not found CASE caller OF read_ncdf :err No variable timevar found in filename Use the TIMESTEP keyword scanfile :err No variable timevar found in filename We create a fake calendar ENDCASE return 1 ENDIF timeinq ncdf_varinq cdfid timeid inq recdim timeinq dim 0 ncdf_diminq cdfid inq recdim timedimname jpt ENDIF ELSE BEGIN we try to find the time axis automatically we look for the infinite dimension IF inq recdim EQ 1 THEN BEGIN CASE caller OF read_ncdf :err the file filename as no infinite dimension C Use TIMESTEP or TIMEVAR keyword scanfile :err the file filename as no infinite dimension We create a fake calendar ENDCASE return 1 ENDIF ncdf_diminq cdfid inq recdim timedimname jpt we look for the variable containing the time axis we look for the first variable having for only dimension inq recdim timeid 0 REPEAT BEGIN As long as we have not find a variable having only one dimension: the infinite one timeinq ncdf_varinq cdfid timeid that the variable contain timeid timeid 1 ENDREP UNTIL n_elements timeinq dim EQ 1 AND timeinq dim 0 EQ inq recdim OR timeid EQ inq nvars 1 IF timeid EQ inq nvars 1 THEN BEGIN CASE caller OF read_ncdf :err the file filename as no time axis variable C Use the TIMESTEP keyword scanfile :err the file fullname has no time axis C we create a fake calendar ENDCASE return jpt ENDIF timeid timeid 1 ENDELSE look for attribute units and calendar to know how to compte the calendar no attribute for time variable IF timeinq natts EQ 0 then begin CASE caller OF read_ncdf :err the variable timeinq name has no attribute C Use the TIMESTEP keyword scanfile :err the variable timeinq name has no attribute C we create a fake calendar ENDCASE return jpt ENDIF get attributes names attnames strarr timeinq natts for attiq 0 timeinq natts 1 do attnames attiq strlowcase ncdf_attname cdfid timeid attiq do we find units attribute IF where attnames EQ units 0 EQ 1 then BEGIN CASE caller OF read_ncdf :err Attribute units not found for the variable timeinq name C Use the TIMESTEP keyword scanfile :err Attribute units not found for the variable timeinq name C we create a fake calendar ENDCASE return jpt ENDIF Is attribute calendar existing If no we suppose that the calendar is gregorian calendar ncdf_getatt cdfid timeid calendar calendar units value CASE calendar OF noleap :key_caltype noleap 360d :key_caltype 360d greg :key_caltype greg ENDCASE decode units attribute time_counter:units seconds since 0001 01 01 00:00:00 time_counter:units hours since 0001 01 01 00:00:00 time_counter:units days since 1979 01 01 00:00:00 time_counter:units months since 1979 01 01 00:00:00 time_counter:units years since 1979 01 01 00:00:00 we decript the units attribute to find the time origin value strtrim strcompress string value 2 words str_sep value units words 0 units strlowcase units IF strpos units s strlen units 1 NE 1 THEN units strmid units 0 strlen units 1 IF strpos units julian_ NE 1 THEN units strmid units 7 IF units NE second AND units NE hour AND units NE day AND units NE month AND units NE year THEN BEGIN CASE caller OF read_ncdf :err time units does not start with seconds hours days months years C Use the TIMESTEP keyword scanfile :err time units does not start with seconds hours days months years C we create a fake calendar ENDCASE return jpt ENDIF IF stregex value since 0 9 1 4 0 9 1 2 0 9 1 2 boolean EQ 0 THEN BEGIN CASE caller OF read_ncdf :err attribute units of time has not the good format: since 0 9 1 4 0 9 1 2 0 9 1 2 C Use the TIMESTEP keyword scanfile :err attribute units of time has not the good format: since 0 9 1 4 0 9 1 2 0 9 1 2 C we create a fake calendar ENDCASE return jpt ENDIF start str_sep words 2 compute time axis ncdf_varget cdfid timeid time time double time case units of second :time julday start 1 start 2 start 0 0 0 0 time 86400 d hour :time julday start 1 start 2 start 0 0 0 0 time 24 d day :time julday start 1 start 2 start 0 0 0 0 time month :BEGIN if total fix time NE time NE 0 then we switch to days with 30d m time julday start 1 start 2 start 0 round time 30 ELSE for t 0 n_elements time 1 DO time t julday start 1 time t start 2 start 0 END year :BEGIN if total fix time NE time NE 0 then we switch to days with 365d y time julday start 1 start 2 start 0 round time 365 ELSE for t 0 n_elements time 1 do time t julday start 1 start 2 start 0 time t END ENDCASE time double time return time END"); 131 131 a[129] = new Array("./ReadWrite/read_grads.html", "read_grads.pro", "", " file_comments reading grads file except data type station or grib from the grads control file even if there is multiple data files categories Reading param VAR in required the variable name param DATE1 in required date of the beginning yyyymmdd if TIMESTEP is not activate param DATE2 in optional last date Optional if not specified date2 date1 keyword FILENAME the grads control file name: xxxx ctl keyword TIMESTEP to specify that the dates are time steps instead of true calendar NOT yet available keyword BOX type A 4 or 6 elements 1d array lon1 lon2 lat1 lat2 depth1 depth2 It specifies the area where data must be read keyword EVERYTHING keyword NOSTRUCT keyword _EXTRA Used to pass keywords returns an array uses common restrictions define all the grid parameters defined in common pro associated to the data this function call the procedure scanfile that use the unix commands grep and sed examples IDL a read_grads sst 19900101 19900131 filename outputs ctl IDL plt a history Sebastien Masson smasson lodyc jussieu fr version Id: read_grads pro 327 2007 12 13 16:22:35Z pinsard FUNCTION read_grads var date1 date2 FILENAME filename BOX box TIMESTEP timestep EVERYTHING everything NOSTRUCT nostruct _EXTRA ex compile_opt idl2 strictarrsubs cm_4mesh cm_4data cm_4cal IF NOT keyword_set key_forgetold THEN BEGIN updatenew ENDIF we find the filename filename isafile FILENAME filename IODIRECTORY iodir _EXTRA ex if size filename type NE 7 then return report read_ncdf cancelled we scan the control file called filename scanctl filename filesname jpt1file varsname varslev swapbytes bigendian littleendian f77sequential fileheader theader xyheader VARFMT varfmt _EXTRA ex if n_elements varfmt EQ 0 then varfmt float check date1 and date2 and found the starting index t1 and the ending index t2 that corresponds to the time series specified by date1 and date2 for the time axis defined in the ctl file if n_elements date1 EQ 0 then begin t0 0 t1 0 ENDIF if n_elements date2 EQ 0 then date2 date1 if keyword_set timestep then BEGIN if date1 GT date2 then begin ras report date2 must be larger than date1 return 1 endif t1 0 long date1 long date2 date2jul date2 grads if jdate1 GT jdate2 then begin ras report date2 must be larger than date1 return 1 endif t1 where time GE jdate1 0 tmp where time LE jdate2 t2 t2 t2 1 ENDELSE if t2 LT t1 then begin ras report There is no date between date1 and date2 return 1 endif jpt2read t2 t1 1 index of the variable varid where strlowcase varsname EQ strlowcase var varid varid 0 if varid EQ 1 then begin ras report var not found in the variable list of filename return 1 ENDIF varname var if varslev varid EQ 1 then res fltarr jpi jpj jpt2read nozero ELSE res fltarr jpi jpj varslev varid jpt2read nozero find the first file to be read according to the file list the number of time step in each file and t1 and t2 indf2read t1 jpt1file startread t1 indf2read jpt1file alreadyread 0 readagain: jpt2read1file min jpt1file startread jpt2read f2read filesname indf2read opening check the existence of the file f2read isafile filename f2read iodirectory iodir _EXTRA ex if the file is stored on tape if version os_family EQ unix then spawn file f2read dev null open the file openr unit f2read get_lun error err swap_if_little_endian bigendian swap_if_big_endian littleendian swap_endian swapbytes if err ne 0 then begin ras report err_string return 1 endif case varfmt of byte :fmtsz 1l uint :fmtsz 2l int :fmtsz 2l long :fmtsz 4l float :fmtsz 4l endcase check its size addf77sec long 4 2 f77sequential xyblocsize xyheader addf77sec xyheader NE 0 jpi jpj fmtsz addf77sec nxybloc long total varslev filesize fileheader addf77sec fileheader NE 0 theader addf77sec theader NE 0 nxybloc xyblocsize jpt1file infof2read fstat unit if infof2read size NE filesize then begin ras report According to filename the file size must be strtrim filesize 1 instead of strtrim infof2read size 1 jpi: strtrim jpi 2 jpj: strtrim jpj 2 jpt: strtrim jpt 2 format size in byte: strtrim fmtsz 2 number of xy arrays: strtrim nxybloc 2 return 1 endif reading loop on the time steps to be read in one file for i 0 jpt2read1file 1 do begin computing the offset offset fileheader addf77sec fileheader NE 0 theader addf77sec theader NE 0 nxybloc xyblocsize startread i theader addf77sec theader NE 0 if varid NE 0 THEN offset offset long total varslev 0:varid 1 xyblocsize if there is only one level IF varslev varid EQ 1 then begin case varfmt of byte :a assoc unit bytarr jpi jpj nozero offset 4 f77sequential uint :a assoc unit uintarr jpi jpj nozero offset 4 f77sequential int :a assoc unit intarr jpi jpj nozero offset 4 f77sequential long :a assoc unit lonarr jpi jpj nozero offset 4 f77sequential float :a assoc unit fltarr jpi jpj nozero offset 4 f77sequential endcase res i alreadyread a 0 ENDIF ELSE BEGIN more than 1 level to be read if f77sequential then BEGIN sequential access case varfmt of byte :a assoc unit bytarr jpi jpj 8 varslev varid nozero offset uint :a assoc unit uintarr jpi jpj 4 varslev varid nozero offset int :a assoc unit intarr jpi jpj 4 varslev varid nozero offset long :a assoc unit lonarr jpi jpj 2 varslev varid nozero offset float :a assoc unit fltarr jpi jpj 2 varslev varid nozero offset endcase tmp a 0 case varfmt OF we cut the headers and tailers of f77 write byte : tmp tmp 4:jpi jpj 3 uint : tmp tmp 2:jpi jpj 1 int : tmp tmp 2:jpi jpj 1 long : tmp tmp 1:jpi jpj 0 float :tmp tmp 1:jpi jpj 0 endcase if keyword_set key_zreverse then res i alreadyread reverse reform tmp jpi jpj varslev varid over 3 ELSE res i alreadyread reform tmp jpi jpj varslev varid over ENDIF ELSE BEGIN direct acces case varfmt of byte :a assoc unit bytarr jpi jpj varslev varid nozero offset uint :a assoc unit uintarr jpi jpj varslev varid nozero offset int :a assoc unit intarr jpi jpj varslev varid nozero offset long :a assoc unit lonarr jpi jpj varslev varid nozero offset float :a assoc unit fltarr jpi jpj varslev varid nozero offset endcase if keyword_set key_zreverse then res i alreadyread reverse a 0 3 ELSE res i alreadyread a 0 ENDELSE ENDELSE endfor close the file free_lun unit close unit do we need to read a new file to complete the time series if jpt2read1file NE jpt2read then BEGIN indf2read indf2read 1 startread 0 alreadyread alreadyread jpt2read1file jpt2read jpt2read jpt2read1file GOTO readagain ENDIF post processing if keyword_set key_yreverse then res reverse res 2 if keyword_set key_shift then begin case size res 0 of 2:res shift res key_shift 0 3:res shift res key_shift 0 0 4:res shift res key_shift 0 0 0 endcase endif mask IF varslev varid EQ 1 then begin if abs valmask LE 1e5 then notgood where res 0 EQ valmask ELSE notgood where abs res 0 GE abs valmask 10 if notgood 0 NE 1 then tmask notgood 0b ENDIF ELSE BEGIN if abs valmask LE 1e5 then notgood where res 0 EQ valmask ELSE notgood where abs res 0 GE abs valmask 10 if notgood 0 NE 1 then tmask notgood 0b ENDELSE if abs valmask LE 1e5 then notgood where res EQ valmask ELSE notgood where abs res GE abs valmask 10 if notgood 0 NE 1 THEN res notgood values f_nan valmask 1e20 if abs valmask LE 1e5 then notgood where res EQ valmask ELSE notgood where abs res GE abs valmask 10 if notgood 0 NE 1 THEN res notgood 1e20 valmask 1e20 triangles_list triangule subdomain extraction time arguments time time t1:t2 jpt t2 t1 1 if keyword_set timestep then vardate strtrim time 0 2 ELSE vardate date2string vairdate time 0 updateold return res end"); 132 132 a[130] = new Array("./ReadWrite/read_oasis.html", "read_oasis.pro", "", " file_comments read the f77 unformatted files used in Oasis version a read_oasis grids_orca_t106 a106 lon 320 160 IDL m read_oasis masks_orca_t106 or1t msk 182 149 i4 see also IDL scanoasis grids_orca_t106 history Sebastien Masson smasson lodyc jussieu fr July 01 2002 version Id: read_oasis pro 327 2007 12 13 16:22:35Z pinsard FUNCTION read_oasis filename varname jpi jpj I2 I2 I4 i4 I8 i8 R4 r4 compile_opt idl2 strictarrsubs openr unit filename f77_unformatted get_lun swap_if_little_endian error err if err ne 0 then begin ras report err_string return 1 endif char8 12345678 readu unit char8 print char8 found char8 EQ varname WHILE NOT EOF unit AND found NE 1 DO BEGIN readu unit if EOF unit then begin ras report varname not found in filename return 1 endif readu unit char8 print char8 found char8 EQ varname ENDWHILE case 1 of keyword_set i2 :res intarr jpi jpj keyword_set i4 :res lonarr jpi jpj keyword_set i8 :res lon64arr jpi jpj keyword_set r4 :res fltarr jpi jpj ELSE:res dblarr jpi jpj endcase readu unit res free_lun unit return res end"); … … 255 255 a[253] = new Array("./ToBeReviewed/LECTURE/ncdf_lec.html", "ncdf_lec.pro", "", " file_comments Give informations on a file netcdf and allows to recuperate variables which are written in it categories Reading param NOM in required Name of a file netcdf located in the directory stipulated by iodir keyword ATT global or the name of a variable Allows to see all attributes associated to variable keyword DIM Give the list of dimensions keyword VAR 1 var: Give the list of dimensions 2 var name_of_a_variable : in this case the function send back the variable keyword IODIR String containing the directory containing the file to be read keyword _EXTRA Used to pass keywords defined by IDL to functions NETCDF especially OFFSET and COUNT in NCDF_VARGET returns 1 except if var nom de variable then the function send back the variable restrictions Variables s names of the program are similar to these used by the IDL manual scientific data formats history Sebastien Masson smasson lodyc jussieu fr 4 1 98 version Id: ncdf_lec pro 327 2007 12 13 16:22:35Z pinsard FUNCTION ncdf_lec nom ATT att DIM dim VAR var IODIR iodir _EXTRA ex compile_opt idl2 strictarrsubs res 1 if NOT keyword_set IODIR then iodir if not keyword_set att or keyword_set dim or keyword_set var then BEGIN att 1 dim 1 var 1 commande ncdump c iodir nom spawn commande goto fini endif opening of the file name cdfid ncdf_open iodir nom What does the file contain wathinside ncdf_inquire cdfid print in the file iodir nom there are: if keyword_set dim then begin ras report number of dimensions: strtrim wathinside ndims 1 number of the dimension which value is infinite : strtrim wathinside recdim 1 endif if keyword_set var then if size var type NE 7 then ras report number of variables : strtrim wathinside nvars 1 if keyword_set att then begin if strlowcase att ne global then goto nonglobal ras report number of global attributes : strtrim wathinside ngatts 1 endif Global attributes if keyword_set att then begin print print ATTRIBUTS GLOBAUX for attiq 0 wathinside ngatts 1 do begin name ncdf_attname cdfid attiq global attribute s name ncdf_attget cdfid name value global attribute s value ras report name : string value endfor endif nonglobal: Display of different dimensions if keyword_set dim then begin print print DIMENSIONS endif nomdim strarr wathinside ndims tailledim lonarr wathinside ndims for dimiq 0 wathinside ndims 1 do begin ncdf_diminq cdfid dimiq name value dimension s name and value nomdim dimiq name tailledim dimiq value if keyword_set dim then begin ras report dimension number strtrim dimiq 1 name: nomdim dimiq value: strtrim tailledim dimiq 1 endif endfor Display of different variables if keyword_set att or keyword_set var then begin var s value string or 1 help var output nature if strpos nature STRING 0 NE 1 then nature string ELSE nature 1 If we just have to read the variable if nature EQ string then begin ncdf_varget cdfid var res _extra ex GOTO sortie ENDIF If it is to have pieces of information if not keyword_set att then att rien print for varid 0 wathinside nvars 1 do begin varcontent ncdf_varinq cdfid varid What does variable contain if strlowcase att eq strlowcase varcontent name or keyword_set var then begin ras report variable number: strtrim varid 1 name: varcontent name type: varcontent datatype dimensions: nomdim varcontent dim if strlowcase att eq strlowcase varcontent name then begin for attiq 0 varcontent natts 1 do begin name ncdf_attname cdfid varid attiq ncdf_attget cdfid varid name value ras report strtrim attiq name : strtrim string value 1 endfor goto sortie endif endif endfor endif sortie: ncdf_close cdfid fini: return res end"); 256 256 a[254] = new Array("./ToBeReviewed/LECTURE/read_ftp.html", "read_ftp.pro", "", " file_comments categories param U param CMD param RES keyword OUT 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 restrictions examples history version Id: read_ftp pro 325 2007 12 06 10:04:53Z pinsard PRO ftp_post u cmd res out out count count compile_opt idl2 strictarrsubs if cmd ne then begin printf u cmd format a comment out the following line to disable debug info print cmd endif if size out type eq 0 then out 2 catch err if err ne 0 then return line count 0 while arg_present res do begin readf u line if count eq 0 then res line else res res line count count 1 comment out the following line to disable debug info print READ_FTP ftp: ftp rsinc com pub gzip README GZIP DATA data IDL help data DATA BYTE Array 2134 IDL print string data README file: Research Systems Anonymous FTP site ftp rsinc com pub directory gzip directory 2 Retrieve some files from podaac jpl nasa gov and store the files in the current working directory: IDL files string lindgen 10 50 format MGB370 3 3d gz IDL READ_FTP podaac jpl nasa gov files IDL pub sea_surface_height topex_poseidon mgdrb data MGB_370 FILE IDL spawn dir MGB log_output Volume in drive C is Local Disk Volume Serial Number is 34CE 24DF Directory of C: test test0307 07 28 2003 11:58a 362 167 MGB370 050 gz 07 28 2003 11:58a 333 005 MGB370 051 gz 07 28 2003 11:58a 310 287 MGB370 052 gz 07 28 2003 11:58a 358 771 MGB370 053 gz 07 28 2003 11:59a 387 282 MGB370 054 gz 07 28 2003 11:59a 361 633 MGB370 055 gz 07 28 2003 11:59a 383 075 MGB370 056 gz 07 28 2003 11:59a 365 844 MGB370 057 gz 07 28 2003 11:59a 383 918 MGB370 058 gz 07 28 2003 12:00p 372 712 MGB370 059 gz 10 File s 3 618 694 bytes These compressed files can consequently be opened with OPENR and the COMPRESSED keyword history version Id: read_ftp pro 325 2007 12 06 10:04:53Z pinsard todo seb: que fait on de syntax au debut du header give examples with date in year 0 should not exists but may happen PRO read_ftp site files dir port data data file file user user pass pass ptr ptr compile_opt idl2 if n_elements port eq 0 then port ftp if n_elements files eq 0 then begin if strcmp site ftp: 6 then host strmid site 6 else host site pos strpos host dir strmid host pos host strmid host 0 pos pos strpos dir reverse_search files strmid dir pos 1 dir strmid dir 0 pos endif else host site if size user type eq 0 then user anonymous if size pass type eq 0 then pass test test com socket u host port connect_timeout 5 read_timeout 5 get_lun ftp_post u res ftp_post u USER user res out 3 ftp_post u PASS pass res ftp_post u TYPE I res if size dir type ne 0 then ftp_post u CWD dir res if keyword_set file or arg_present data then begin bufsize 512 buffer bytarr bufsize n n_elements files if arg_present data then dat ptrarr n for i 0 n 1 do begin ftp_post u SIZE files i res out 213 sz long64 strmid res n_elements res 1 4 if arg_present data then dat i ptr_new bytarr sz ftp_post u PASV res ftp_parse_pasv res host port ftp_post u RETR files i res out 1 socket v host port connect_timeout 5 read_timeout 5 get_lun rawio tc 0ll if keyword_set file then openw w files i get_lun while tc lt sz do begin if sz tc lt bufsize then begin bufsize sz tc buffer bytarr bufsize endif readu v buffer transfer_count dtc if arg_present data then dat i tc dtc eq bufsize buffer:buffer 0:dtc 1 if keyword_set file then writeu w dtc eq bufsize buffer:buffer 0:dtc 1 tc tc dtc endwhile free_lun v if keyword_set file then free_lun w ftp_post u res endfor if arg_present data then begin if n gt 1 or keyword_set ptr then data dat else data temporary dat 0 endif endif ftp_post u QUIT res free_lun u end"); 257 a[255] = new Array("./ToBeReviewed/LECTURE/read_ncdf.html", "read_ncdf.pro", "", " file_comments Reading function for the file net_cdf This program is less universal than ncdf_lec it appeal to declared variables in common pro but it is very easier to be used It considerate the declaration of the different zooms which have been defined ixminmesh premierx the declaration of the variable key_shift To put it in a nutshell the result of read_ncdf can be directly used in plt This is also this program which is used by default in our reading widgets categories Reading param NAME in required type string It define the field to be read param BEGINNING in required Relative with the time axis These can be 2 date of the type yyyymmdd and in this case we select dates which are included between these two dates 2 indexes which define between which and which time step we have to extract the temporal dimension param ENDING in required Relative with the time axis See BEGINNING param COMPATIBILITY in optional Useless defined for compatibility keyword ADDSCL_BEFORE default 0 type scalar: 0 or 1 put 1 to apply add_offset ad scale factor on data before looking for missing values keyword BOXZOOM Contain the boxzoom on which we have to do the reading keyword CALLITSELF default 0 type scalar: 0 or 1 For ROMS outputs Use by read_ncdf itself to access auxilliary data h and zeta keyword DIREC a string used to specify the direction along which we want to make spatial and or temporal mean It could be: x y z t xy xz yz xyz xt yt zt xyt xzt yzt or xyzt keyword FILENAME required type string It contains the file s name keyword INIT default 0 type scalar: 0 or 1 To call automatically initncdf with filename as input argument and thus redefine all the grid parameters keyword GRID UTVWF to specify the type of grid Default 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 keyword TIMESTEP default 0 type scalar: 0 or 1 Specify that BEGINNING and ENDING refer to indexes of the time axis and not to dates keyword TOUT default 0 type scalar: 0 or 1 We activate it if we want to read the file on the whole domain without considerate the sub domain defined by the boxzoom or lon1 lon2 lat1 lat2 vert1 vert2 keyword NOSTRUCT default 0 type scalar: 0 or 1 We activate it if we do not want that read_ncdf send back a structure but only the array referring to the field keyword ZETAFILENAME default FILENAME type string For ROMS outputs The filename of the file where zeta variable should be read keyword ZETAZERO default 0 type scalar: 0 or 1 For ROMS outputs To define zeta to 0 instead of reading it keyword ZINVAR type named variable Set this keyword to a named variable in which 1 is returned if a vertical dimension is found in the variable Returns 0 otherwise keyword _EXTRA Used to pass keywords to isafile initncdf ncdf_gettime ncdf_getatt and domdef returns Structure readable by litchamp or an array if NOSTRUCT is activated uses common pro restrictions The field must have a temporal dimension history Sebastien Masson smasson lodyc jussieu fr 15 10 1999 version Id: read_ncdf pro 33 6 2008 03 20 21:36:46Z smasson FUNCTION read_ncdf name beginning ending compatibility BOXZOOM boxzoom FILENAME filename PARENTIN parentin TIMESTEP timestep ADDSCL_BEFORE addscl_before TOUT tout NOSTRUCT nostruct CONT_NOFILL CONT_NOFILL INIT init GRID grid CALLITSELF callitself DIREC direc ZETAFILENAME zetafilename ZETAZERO zetazero ZINVAR zinvar _EXTRA ex compile_opt idl2 strictarrsubs cm_4mesh cm_4data cm_4cal IF NOT keyword_set key_forgetold THEN BEGIN updatenew updatekwd ENDIF we find the filename print filename is parent a valid widget IF keyword_set parentin THEN BEGIN parent long parentin parent parent widget_info parent managed ENDIF filename isafile filename filename IODIRECTORY iodir _EXTRA ex Opening of the name file IF size filename type NE 7 THEN return report read_ncdf cancelled IF version OS_FAMILY EQ unix THEN spawn file filename dev null cdfid ncdf_open filename inq ncdf_inquire cdfid we check if the variable name exists in the file IF ncdf_varid cdfid name EQ 1 THEN BEGIN ncdf_close cdfid return report variable name C not found in the file filename ENDIF varinq ncdf_varinq cdfid name IF varinq ndims LT 2 THEN return report read_ncdf cannot read scalar or 1D data look for the dimension names dimnames strarr varinq ndims FOR i 0 varinq ndims 1 DO BEGIN ncdf_diminq cdfid varinq dim i tmp dimsize dimnames i tmp ENDFOR we check if the variable has a vertical dimension and or a record dimension This is useful to define boxzoom keyword in domdef dummy where varinq dim EQ inq recdim tinvar check the presence of a vertical dimension according to the number of dimensions and the presence of a record dimension zinvar varinq ndims EQ 3 AND tinvar NE 1 OR varinq ndims EQ 4 shall we redefine the grid parameters IF keyword_set init THEN initncdf filename _extra ex check the time axis and the debut and ending dates IF n_elements beginning EQ 0 THEN BEGIN beginning 0L timestep 1L ENDIF define time and jpt CASE 1 OF keyword_set timestep :BEGIN firsttps long beginning 0 IF n_elements ending NE 0 THEN lasttps long ending 0 ELSE lasttps firsttps jpt lasttps firsttps 1 IF NOT keyword_set callitself then time julday 1 1 1 lindgen jpt END keyword_set parent :BEGIN widget_control parent get_uvalue top_uvalue filelist extractatt top_uvalue filelist IF filelist 0 EQ many THEN filelist filename currentfile where filelist EQ filename 0 time extractatt top_uvalue fileparameters currentfile time_counter date1 date2jul beginning 0 if n_elements ending NE 0 then date2 date2jul ending 0 ELSE date2 date1 firsttps where abs time date1 LT 0 9d 86400 d 0 beware of rounding errors lasttps where abs time date2 LT 0 9d 86400 d 0 jpt lasttps firsttps 1 END ELSE:BEGIN time ncdf_gettime filename cdfid caller read_ncdf err err _extra ex IF n_elements err NE 0 THEN BEGIN dummy report err ncdf_close cdfid return 1 ENDIF date1 date1 date2jul beginning 0 date2 if n_elements ending NE 0 then date2 date2jul ending 0 ELSE date2 date1 firsttps firsttps where time GE date1 0 9d 86400 d firsttps firsttps 0 if firsttps EQ 1 THEN BEGIN ncdf_close cdfid return report date 1: strtrim jul2date date1 1 is not found in the time axis ENDIF lasttps lasttps where time LE date2 0 9d 86400 d lasttps lasttps n_elements lasttps 1 if lasttps EQ 1 THEN BEGIN ncdf_close cdfid return report the time axis has no date before date 2: strtrim jul2date date2 1 endif if lasttps LT firsttps then BEGIN ncdf_close cdfid return report the time axis has no dates between date1 and date 2: strtrim jul2date date1 1 strtrim jul2date date2 1 endif time time firsttps:lasttps jpt lasttps firsttps 1 END ENDCASE Name of the grid on which the field refer to IF keyword_set grid THEN vargrid strupcase grid ELSE BEGIN vargrid T default definition IF finite glamu 0 EQ 1 THEN BEGIN are we in one of the case corresponding to ROMS conventions CASE 1 OF dimnames 2 long key_stride read_ncdf_varget We define common cm_4data variables associated with the variable varname IF NOT keyword_set callitself THEN varname name varunit and others ncdf_getatt cdfid name add_offset add_offset scale_factor scale_factor missing_value missing_value units units _extra ex IF NOT keyword_set callitself THEN varunit units vardate We make a legible date in function of the specified language year long beginning 0 10000 month long beginning 0 100 MOD 100 day long beginning 0 MOD 100 vardate string format C CMoA 31 month 1 strtrim day 1 strtrim year 1 varexp file_basename filename We apply the value valmask on land points if NOT keyword_set cont_nofill then begin valmask 1 e20 case 1 of varinq ndims eq 2: earth where mask 0 EQ 0 xy array varinq ndims eq 3 AND where varinq dim EQ inq recdim 0 EQ 1:earth where mask EQ 0 xyz array varinq ndims eq 3 AND where varinq dim EQ inq recdim 0 NE 1:earth where mask 0 EQ 0 xyt array varinq ndims eq 4: earth where mask EQ 0 xyzt array ENDCASE ENDIF ELSE earth 1 we look for missing_value we apply add_offset scale_factor and missing_value IF keyword_set addscl_before THEN BEGIN IF scale_factor NE 1 THEN res temporary res scale_factor IF add_offset NE 0 THEN res temporary res add_offset ENDIF IF size missing_value type NE 7 THEN BEGIN IF finite missing_value EQ 1 THEN BEGIN CASE 1 OF missing_value GT 1 e6:missing where res GT missing_value 10 missing_value LT 1 e6:missing where res LT missing_value 10 abs missing_value LT 1 e 6:missing where abs res LT 1 e 6 ELSE:missing where res EQ missing_value ENDCASE ENDIF ELSE missing where finite res EQ 0 ENDIF ELSE missing 1 IF NOT keyword_set addscl_before THEN BEGIN if scale_factor NE 1 then res temporary res scale_factor if add_offset NE 0 then res temporary res add_offset ENDIF IF missing 0 NE 1 THEN res temporary missing values f_nan IF earth 0 NE 1 THEN BEGIN IF varinq ndims eq 3 AND where varinq dim EQ inq recdim 0 NE 1 THEN xyt array earth earth replicate 1 jpt replicate nx ny n_elements earth lindgen jpt IF varinq ndims eq 4 THEN earth earth replicate 1 jpt replicate nx ny nz n_elements earth lindgen jpt res temporary earth 1 e20 ENDIF if it is roms outputs we need to get additionals infos IF NOT keyword_set callitself THEN BEGIN IF strmid dimnames 0 0 3 EQ xi_ AND strmid dimnames 1 0 4 EQ eta_ THEN BEGIN ncdf_attget cdfid theta_s theta_s global ncdf_attget cdfid theta_b theta_b global ncdf_attget cdfid hc hc global look for all variables names allvarnames strarr inq nvars FOR i 0 inq nvars 1 DO BEGIN tmp ncdf_varinq cdfid i allvarnames i tmp name ENDFOR CASE 1 OF keyword_set zetazero :zeta fltarr nx ny jpt keyword_set zetafilename : zeta read_ncdf zeta firsttps lasttps FILENAME zetafilename TIMESTEP NOSTRUCT CONT_NOFILL CONT_NOFILL GRID vargrid CALLITSELF _EXTRA ex where allvarnames EQ zeta 0 NE 1: zeta read_ncdf zeta firsttps lasttps FILENAME filename TIMESTEP NOSTRUCT CONT_NOFILL CONT_NOFILL GRID vargrid CALLITSELF _EXTRA ex ELSE:return report The variable zeta was not found in the file please use the keyword ZETAFILENAME to specify the name of a file containing zeta or use keyword ZETAZERO to define zeta to 0 ENDCASE romszinfos h:romszinfos h zeta:temporary zeta theta_s:theta_s theta_b:theta_b hc:hc ENDIF ELSE romszinfos h: 1 zeta: 1 theta_s: 1 theta_b: 1 hc: 1 ENDIF IF keyword_set direc THEN BEGIN IF jpt EQ 1 THEN res moyenne temporary res direc _extra ex ELSE BEGIN res grossemoyenne temporary res direc _extra ex IF strpos strlowcase direc t ge 0 THEN BEGIN vardate strtrim jul2date time 0 1 strtrim jul2date time jpt 1 1 time total time float jpt jpt 1 ENDIF ENDELSE ENDIF ncdf_close cdfid IF keyword_set nostruct THEN return res IF keyword_set key_forgetold THEN BEGIN return arr:temporary res grid:vargrid unit:varunit experiment:varexp name:varname ENDIF ELSE BEGIN return tab:temporary res grille:vargrid unite:varunit experience:varexp nom:varname ENDELSE END");257 a[255] = new Array("./ToBeReviewed/LECTURE/read_ncdf.html", "read_ncdf.pro", "", " file_comments Reading function for the file net_cdf This program is less universal than ncdf_lec it appeal to declared variables in common pro but it is very easier to be used It considerate the declaration of the different zooms which have been defined ixminmesh premierx the declaration of the variable key_shift To put it in a nutshell the result of read_ncdf can be directly used in plt This is also this program which is used by default in our reading widgets categories Reading param NAME in required type string It define the field to be read param BEGINNING in required Relative with the time axis These can be 2 date of the type yyyymmdd and in this case we select dates which are included between these two dates 2 indexes which define between which and which time step we have to extract the temporal dimension param ENDING in required Relative with the time axis See BEGINNING param COMPATIBILITY in optional Useless defined for compatibility keyword ADDSCL_BEFORE default 0 type scalar: 0 or 1 put 1 to apply add_offset ad scale factor on data before looking for missing values keyword BOXZOOM Contain the boxzoom on which we have to do the reading keyword CALLITSELF default 0 type scalar: 0 or 1 For ROMS outputs Use by read_ncdf itself to access auxilliary data h and zeta keyword DIREC a string used to specify the direction along which we want to make spatial and or temporal mean It could be: x y z t xy xz yz xyz xt yt zt xyt xzt yzt or xyzt keyword FILENAME required type string It contains the file s name keyword INIT default 0 type scalar: 0 or 1 To call automatically initncdf with filename as input argument and thus redefine all the grid parameters keyword GRID UTVWF to specify the type of grid Default 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 keyword TIMESTEP default 0 type scalar: 0 or 1 Specify that BEGINNING and ENDING refer to indexes of the time axis and not to dates keyword TOUT default 0 type scalar: 0 or 1 We activate it if we want to read the file on the whole domain without considerate the sub domain defined by the boxzoom or lon1 lon2 lat1 lat2 vert1 vert2 keyword NOSTRUCT default 0 type scalar: 0 or 1 We activate it if we do not want that read_ncdf send back a structure but only the array referring to the field keyword ZETAFILENAME default FILENAME type string For ROMS outputs The filename of the file where zeta variable should be read keyword ZETAZERO default 0 type scalar: 0 or 1 For ROMS outputs To define zeta to 0 instead of reading it keyword ZINVAR type named variable Set this keyword to a named variable in which 1 is returned if a vertical dimension is found in the variable Returns 0 otherwise keyword _EXTRA Used to pass keywords to isafile initncdf ncdf_gettime ncdf_getatt and domdef returns Structure readable by litchamp or an array if NOSTRUCT is activated uses common pro restrictions The field must have a temporal dimension history Sebastien Masson smasson lodyc jussieu fr 15 10 1999 version Id: read_ncdf pro 337 2008 03 20 22:04:33Z smasson FUNCTION read_ncdf name beginning ending compatibility BOXZOOM boxzoom FILENAME filename PARENTIN parentin TIMESTEP timestep ADDSCL_BEFORE addscl_before TOUT tout NOSTRUCT nostruct CONT_NOFILL CONT_NOFILL INIT init GRID grid CALLITSELF callitself DIREC direc ZETAFILENAME zetafilename ZETAZERO zetazero ZINVAR zinvar _EXTRA ex compile_opt idl2 strictarrsubs cm_4mesh cm_4data cm_4cal IF NOT keyword_set key_forgetold THEN BEGIN updatenew updatekwd ENDIF we find the filename print filename is parent a valid widget IF keyword_set parentin THEN BEGIN parent long parentin parent parent widget_info parent managed ENDIF filename isafile filename filename IODIRECTORY iodir _EXTRA ex Opening of the name file IF size filename type NE 7 THEN return report read_ncdf cancelled IF version OS_FAMILY EQ unix THEN spawn file filename dev null cdfid ncdf_open filename inq ncdf_inquire cdfid we check if the variable name exists in the file IF ncdf_varid cdfid name EQ 1 THEN BEGIN ncdf_close cdfid return report variable name C not found in the file filename ENDIF varinq ncdf_varinq cdfid name IF varinq ndims LT 2 THEN return report read_ncdf cannot read scalar or 1D data look for the dimension names dimnames strarr varinq ndims FOR i 0 varinq ndims 1 DO BEGIN ncdf_diminq cdfid varinq dim i tmp dimsize dimnames i tmp ENDFOR we check if the variable has a vertical dimension and or a record dimension This is useful to define boxzoom keyword in domdef dummy where varinq dim EQ inq recdim tinvar check the presence of a vertical dimension according to the number of dimensions and the presence of a record dimension zinvar varinq ndims EQ 3 AND tinvar NE 1 OR varinq ndims EQ 4 shall we redefine the grid parameters IF keyword_set init THEN initncdf filename _extra ex check the time axis and the debut and ending dates IF n_elements beginning EQ 0 THEN BEGIN beginning 0L timestep 1L ENDIF define time and jpt CASE 1 OF keyword_set timestep :BEGIN firsttps long beginning 0 IF n_elements ending NE 0 THEN lasttps long ending 0 ELSE lasttps firsttps jpt lasttps firsttps 1 IF NOT keyword_set callitself then time julday 1 1 1 lindgen jpt END keyword_set parent :BEGIN widget_control parent get_uvalue top_uvalue filelist extractatt top_uvalue filelist IF filelist 0 EQ many THEN filelist filename currentfile where filelist EQ filename 0 time extractatt top_uvalue fileparameters currentfile time_counter date1 date2jul beginning 0 if n_elements ending NE 0 then date2 date2jul ending 0 ELSE date2 date1 firsttps where abs time date1 LT 0 9d 86400 d 0 beware of rounding errors lasttps where abs time date2 LT 0 9d 86400 d 0 jpt lasttps firsttps 1 END ELSE:BEGIN time ncdf_gettime filename cdfid caller read_ncdf err err _extra ex IF n_elements err NE 0 THEN BEGIN dummy report err ncdf_close cdfid return 1 ENDIF date1 date1 date2jul beginning 0 date2 if n_elements ending NE 0 then date2 date2jul ending 0 ELSE date2 date1 firsttps firsttps where time GE date1 0 9d 86400 d firsttps firsttps 0 if firsttps EQ 1 THEN BEGIN ncdf_close cdfid return report date 1: strtrim jul2date date1 1 is not found in the time axis ENDIF lasttps lasttps where time LE date2 0 9d 86400 d lasttps lasttps n_elements lasttps 1 if lasttps EQ 1 THEN BEGIN ncdf_close cdfid return report the time axis has no date before date 2: strtrim jul2date date2 1 endif if lasttps LT firsttps then BEGIN ncdf_close cdfid return report the time axis has no dates between date1 and date 2: strtrim jul2date date1 1 strtrim jul2date date2 1 endif time time firsttps:lasttps jpt lasttps firsttps 1 END ENDCASE Name of the grid on which the field refer to IF keyword_set grid THEN vargrid strupcase grid ELSE BEGIN vargrid T default definition IF finite glamu 0 EQ 1 THEN BEGIN are we in one of the case corresponding to ROMS conventions CASE 1 OF dimnames 2 long key_stride read_ncdf_varget We define common cm_4data variables associated with the variable varname IF NOT keyword_set callitself THEN varname name varunit and others ncdf_getatt cdfid name add_offset add_offset scale_factor scale_factor missing_value missing_value units units _extra ex IF NOT keyword_set callitself THEN varunit units vardate We make a legible date in function of the specified language year long beginning 0 10000 month long beginning 0 100 MOD 100 day long beginning 0 MOD 100 vardate string format C CMoA 31 month 1 strtrim day 1 strtrim year 1 varexp file_basename filename We apply the value valmask on land points if NOT keyword_set cont_nofill then begin valmask 1 e20 case 1 of varinq ndims eq 2: earth where mask 0 EQ 0 xy array varinq ndims eq 3 AND where varinq dim EQ inq recdim 0 EQ 1:earth where mask EQ 0 xyz array varinq ndims eq 3 AND where varinq dim EQ inq recdim 0 NE 1:earth where mask 0 EQ 0 xyt array varinq ndims eq 4: earth where mask EQ 0 xyzt array ENDCASE ENDIF ELSE earth 1 we look for missing_value we apply add_offset scale_factor and missing_value IF keyword_set addscl_before THEN BEGIN IF scale_factor NE 1 THEN res temporary res scale_factor IF add_offset NE 0 THEN res temporary res add_offset ENDIF IF size missing_value type NE 7 THEN BEGIN IF finite missing_value EQ 1 THEN BEGIN CASE 1 OF missing_value GT 1 e6:missing where res GT missing_value 10 missing_value LT 1 e6:missing where res LT missing_value 10 abs missing_value LT 1 e 6:missing where abs res LT 1 e 6 ELSE:missing where res EQ missing_value ENDCASE ENDIF ELSE missing where finite res EQ 0 ENDIF ELSE missing 1 IF NOT keyword_set addscl_before THEN BEGIN if scale_factor NE 1 then res temporary res scale_factor if add_offset NE 0 then res temporary res add_offset ENDIF IF missing 0 NE 1 THEN res temporary missing values f_nan IF earth 0 NE 1 THEN BEGIN IF varinq ndims eq 3 AND where varinq dim EQ inq recdim 0 NE 1 THEN xyt array earth earth replicate 1 jpt replicate nx ny n_elements earth lindgen jpt IF varinq ndims eq 4 THEN earth earth replicate 1 jpt replicate nx ny nz n_elements earth lindgen jpt res temporary earth 1 e20 ENDIF if it is roms outputs we need to get additionals infos IF NOT keyword_set callitself THEN BEGIN IF strmid dimnames 0 0 3 EQ xi_ AND strmid dimnames 1 0 4 EQ eta_ THEN BEGIN ncdf_attget cdfid theta_s theta_s global ncdf_attget cdfid theta_b theta_b global ncdf_attget cdfid hc hc global look for all variables names allvarnames strarr inq nvars FOR i 0 inq nvars 1 DO BEGIN tmp ncdf_varinq cdfid i allvarnames i tmp name ENDFOR CASE 1 OF keyword_set zetazero :zeta fltarr nx ny jpt keyword_set zetafilename : zeta read_ncdf zeta firsttps lasttps FILENAME zetafilename TIMESTEP NOSTRUCT CONT_NOFILL CONT_NOFILL GRID vargrid CALLITSELF _EXTRA ex where allvarnames EQ zeta 0 NE 1: zeta read_ncdf zeta firsttps lasttps FILENAME filename TIMESTEP NOSTRUCT CONT_NOFILL CONT_NOFILL GRID vargrid CALLITSELF _EXTRA ex ELSE:return report The variable zeta was not found in the file please use the keyword ZETAFILENAME to specify the name of a file containing zeta or use keyword ZETAZERO to define zeta to 0 ENDCASE romszinfos h:romszinfos h zeta:temporary zeta theta_s:theta_s theta_b:theta_b hc:hc ENDIF ELSE romszinfos h: 1 zeta: 1 theta_s: 1 theta_b: 1 hc: 1 ENDIF IF keyword_set direc THEN BEGIN IF jpt EQ 1 THEN res moyenne temporary res direc _extra ex ELSE BEGIN res grossemoyenne temporary res direc _extra ex IF strpos strlowcase direc t ge 0 THEN BEGIN vardate strtrim jul2date time 0 1 strtrim jul2date time jpt 1 1 time total time float jpt jpt 1 ENDIF ENDELSE ENDIF ncdf_close cdfid IF keyword_set nostruct THEN return res IF keyword_set key_forgetold THEN BEGIN return arr:temporary res grid:vargrid unit:varunit experiment:varexp name:varname ENDIF ELSE BEGIN return tab:temporary res grille:vargrid unite:varunit experience:varexp nom:varname ENDELSE END"); 258 258 a[256] = new Array("./ToBeReviewed/LECTURE/read_ncdf_varget.html", "read_ncdf_varget.pro", "", ""); 259 259 a[257] = new Array("./ToBeReviewed/LECTURE/xncdf_lec.html", "xncdf_lec.pro", "", " file_comments Reading of a NetCdf file with widgets categories Widget param NAME in optional type string It give the name of the file to be opened If NAME does not contain the separating character of directories under unix for example the file will be looked for in the current directory keyword IODIR type string It contains the directory where to go look for the file to be read If NAME does not contain the separating character of directories under unix for example the file will be called iodir nom_fichier keyword COUNT type vector An optional vector containing the counts to be used in reading Value COUNT is a 1 based vector with an element for each dimension of the data to be written The default matches the size of the variable so that all data is written out keyword GROUP The widget ID of the widget that calls XNCDF_LEC When this ID is specified a death of the caller results in a death of XNCDF_LEC keyword OFFSET type vector default 0 0 An optional vector containing the starting position for the read The default start position is 0 0 keyword SHIFT type vector default 0 0 A vector of integers specifying for each dimension how much we have to shift it By default it is 0 0 See the function shift for more explanations BEWARE the shift is done on the biggest array before a possible reduction determined by OFFSET and COUNT On the other hand it is done after the possible extraction created by the STRIDE keyword STRIDE type vector default 1 1 An optional vector containing the strides or sampling intervals between accessed values of the netCDF variable The default stride vector is that for a contiguous read 1 1 returns 2 different cases: 1 None attribute has been selected In this case res is the array we wanted to read 2 Some attributes has been selected In this case res is a structure whose the first element having the name of the variable is the values array and the other arguments are the select arguments uses wididbase infovariable resultat motcle examples IDL help xncdf_lec history Sebastien Masson smasson lodyc jussieu fr 24 8 1999 version Id: xncdf_lec pro 327 2007 12 13 16:22:35Z pinsard FUNCTION xncdf_lec name ATT att COUNT count GROUP group OFFSET offset IODIR iodir SHIFT shift STRIDE stride VAR var compile_opt idl2 strictarrsubs COMMON wididbase base COMMON infovariable cdfid listename contient nomdim tailledim varid varcontient COMMON resultat res COMMON motcle mcatt mccount mcoffset mciodir mcshift mcstride mcvar Trick for using keywords we pass by variables declared in a common res 1 if keyword_set att then mcatt att ELSE mcatt 0 if keyword_set count then mccount count ELSE mccount 0 if keyword_set offset then mcoffset offset ELSE mcoffset 0 if keyword_set shift then mcshift shift ELSE mcshift 0 if keyword_set stride then mcstride stride ELSE mcstride 0 if keyword_set var then mcvar var ELSE mcvar 0 choice of the file s name What type of machine is used thisOS strupcase strmid version os_family 0 3 CASE thisOS of MAC :sep : WIN :sep ELSE: sep ENDCASE If IODIR is not defined we initialize it at the current directory if NOT keyword_set iodir then cd current iodir mciodir iodir We complete IODIR with a separating character if needed IF rstrpos iodir sep NE strlen iodir 1 THEN iodir iodir sep if n_elements name EQ 0 then BEGIN If NAME is not defined we find one thanks to the program dialog_pickfile name dialog_pickfile filter iodir nc if name 0 EQ then return 1 If we do not have find anything we go out We complete NAME by IODIR if NAME does not contain any directory separating character ENDIF ELSE if strpos name sep EQ 1 then name iodir name test findfile name Does the name looked for correspond to a file while test 0 EQ OR n_elements test GT 1 do BEGIN We look for one as long as it correspond to nothing test test 0 name dialog_pickfile filter iodir nc if name EQ then return 1 test findfile name endwhile Opening of the file name cdfid ncdf_open name contient ncdf_inquire cdfid What does this file contain Opening of the base window as columns if n_elements group EQ 0 then base widget_base column title Fichier: name align_left ELSE base widget_base column title Fichier: name align_left GROUP_LEADER group Opening of base sub windows base 1 title having the file s name base1 widget_base base column align_center rien widget_label base1 value NetCdf filename align_center rien widget_text base1 value name align_center uvalue 1 editable File s name we can change rien widget_label base1 value We jump a line base 2 General informations on the file base2 widget_base base column Informations on global attributes if contient ngatts NE 1 then begin rien widget_label base2 value Nombre de attributs globaux: strtrim contient ngatts 1 align_left for attiq 0 contient ngatts 1 do BEGIN Loop on the number of global attributes name ncdf_attname cdfid attiq global Attribute s name ncdf_attget cdfid name value global Attribute s value rien widget_text base2 value name : strtrim string value 1 xsize 60 scroll wrap align_right endfor rien widget_label base2 value endif Informations on dimensions rien widget_label base2 value Nombre de dimensions: strtrim contient ndims 1 align_left if contient recdim NE 1 then begin Loop on the number of global attributes ncdf_diminq cdfid contient recdim name value Name and value of the dimension rien widget_label base2 value name de la dimension infinie: name align_left endif nomdim strarr contient ndims Vector containing dimensions s name tailledim lonarr contient ndims Vector containing dimensions s value for dimiq 0 contient ndims 1 do begin Loop on the number of dimensions ncdf_diminq cdfid dimiq name value Name and value of the dimension nomdim dimiq name tailledim dimiq value rien widget_label base2 value name de taille: strtrim value 1 align_right ENDFOR rien widget_label base2 value We jump a line base 3 choice of the variable base3 widget_base base column rien widget_label base3 value Nombre de variables: strtrim contient nvars 1 align_left base31 widget_base base3 row align_center Creation of a listename containing the name of all file s variables listename strarr contient nvars for varid 0 contient nvars 1 do begin varcontient ncdf_varinq cdfid varid that the variable contain listename varid varcontient name endfor rien widget_label base31 value variable Creation of a button with a pop up menu base311 widget_droplist base31 value listename uvalue 2 rien widget_label base3 value base 4 button done base4 widget_base base row base42 widget_button base4 value done uvalue 3 align_right Execution of the base window and of sub windows widget_control base realize xmanager xncdf_lec base return res end La lecture de ce programme se fait de bas en haut: 1 xncdf_lec 2 xncdf_lec_event 3 wid_var wid_var_event file_comments Procedure called by xmanager when we press on a button of a second widget created by wid_var param EVENT in required A structure characterizing the type of event which arrive to a widget number1 2 uses wididbase resultat infovariable indicewid motcle version Id: xncdf_lec pro 327 2007 12 13 16:22:35Z pinsard PRO wid_var_event event compile_opt idl2 strictarrsubs COMMON wididbase base COMMON resultat res COMMON infovariable cdfid listename contient nomdim tailledim varid varcontient COMMON indicewid_var widbase1 widbase2111 widbase212 widbase213 selectatt COMMON motcle mcatt mccount mcoffset mciodir mcshift mcstride mcvar What is the type of event widget_control event id get_uvalue uval tailledimvar tailledim varcontient dim if n_elements uval EQ 0 then return case on the type of event case uval OF 1:BEGIN We change values in the array We check that values put in the array are not totally false widget_control widbase1 get_value table Is it the good type of argument If the type is wrong we automatically change it by default values if event x GT size table 1 then return if event y GT size table 2 then return if size table event x event y type GE 6 OR size table event x event y type EQ 0 then BEGIN if event x EQ 1 then widget_control widbase1 use_table_select 1 event y 1 event y set_value tailledimvar event y ELSE widget_control widbase1 use_table_select event x event y event x event y set_value 0 endif Argument with a wrong name value table fix table case event x of 0:BEGIN We touched the offset if table 0 event y LT 0 then BEGIN table 0 event y 0 widget_control widbase1 use_table_select 0 event y 0 event y set_value 0 endif If it exceed the dimension of the array we put it at the max and the cont at 1 if table 0 event y GT tailledimvar event y table 3 event y then begin widget_control widbase1 use_table_select 0 event y 1 event y set_value tailledimvar event y table 3 event y 1 ENDIF ELSE BEGIN If with the new offset the cont is too big we reduce it until it goes well if table 1 event y GT tailledimvar event y table 3 event y table 0 event y then begin widget_control widbase1 use_table_select 1 event y 1 event y set_value tailledimvar event y table 3 event y table 0 event y endif ENDELSE END 1:BEGIN We touched the cont if table 1 event y LT 1 then BEGIN table 1 event y 1 widget_control widbase1 use_table_select 1 event y 1 event y set_value 1 endif If it is too big we reduce it until it goes well if table 1 event y GT tailledimvar event y table 3 event y table 0 event y then BEGIN widget_control widbase1 use_table_select 1 event y 1 event y set_value tailledimvar event y table 3 event y table 0 event y endif END 2:BEGIN We touched the shift widget_control widbase1 use_table_select 2 event y 2 event y set_value table 2 event y MOD tailledimvar event y table 3 event y END 3:BEGIN We touched the stride if table 3 event y LT 1 then BEGIN table 3 event y 1 widget_control widbase1 use_table_select 3 event y 3 event y set_value 1 endif if table 3 event y EQ 0 then It must not be null widget_control widbase1 use_table_select 3 event y 3 event y set_value 1 It must not be too big if table 3 event y GT tailledimvar event y then widget_control widbase1 use_table_select 0 event y 3 event y set_value 0 1 0 tailledimvar event y ELSE BEGIN if table 1 event y GT tailledimvar event y table 3 event y table 0 event y then begin widget_control widbase1 use_table_select 1 event y 1 event y set_value tailledimvar event y table 3 event y table 0 event y endif ENDELSE END ELSE: endcase END 2111:BEGIN We touched buttons yes no We update the vector selectatt at 0 or 1 for the concerned attribute number event id selectatt where widbase2111 EQ event id event select end 31:BEGIN We pressed on get widget_control widbase1 get_value table table fix table mcshift where table 2 NE 0 mcoffset table 0 mccount table 1 mcstride table 3 if mcshift 0 NE 1 then BEGIN There are some shifts We read the wholeness of dimensions for which ones there is a shift mcoffset mcshift 0 mccount mcshift tailledimvar mcshift We do not activate stride when there is no need because it makes write something weird on the screen if total mcstride EQ n_elements mcstride then ncdf_varget cdfid varid res OFFSET mcoffset COUNT mccount ELSE ncdf_varget cdfid varid res OFFSET mcoffset COUNT mccount STRIDE mcstride To do the shift mcshift table 2 mcoffset table 0 mccount table 1 We define the command allowing to do a shift commande res shift res for dim 0 varcontient ndims 1 do commande commande string table 2 dim commande commande rien execute commande We redefine the command allowing to cut dimensions which has not been cut yet ones we shift commande res res initialization of the command for dim 0 varcontient ndims 1 do BEGIN if mcshift dim EQ 0 then commande commande ELSE commande commande string mcoffset dim : string mccount dim mcoffset dim 1 ENDFOR commande strmid commande 0 strlen commande 1 rien execute commande Case without shift we read directly the good part of the array ENDIF ELSE BEGIN if total mcstride EQ n_elements mcstride then ncdf_varget cdfid varid res OFFSET mcoffset COUNT mccount ELSE ncdf_varget cdfid varid res OFFSET mcoffset COUNT mccount STRIDE mcstride ENDELSE Do we have to constitute a structure with selected attributes if total selectatt NE 0 then BEGIN There are selected attributes res create_struct varcontient name res We create the structure selectatt where selectatt EQ 1 We find selected attributes for attid 0 n_elements selectatt 1 do BEGIN for which we take widget_control widbase212 selectatt attid get_value attname the name widget_control widbase213 selectatt attid get_value attvalue the value res create_struct res attname 0 attvalue 0 We concatenate the structure endfor endif widget_control event top destroy We shut the second widget widget_control base destroy We shut the first widget ncdf_close cdfid END 32: Case of the display of a held with xdisplayfile 33:widget_control event top destroy We shut the second widget ELSE: endcase return end file_comments This procedure manage the second created widget when we call xncdf_lec This widget concern the reading of the variable param WIDID_PERE type scalar in required It contains the identity of the father widget which was created by xncdf_lec and which has allowed to select the variable to be read results indirectement res le tableau ou la structure resultat uses resultat infovariable indicewid_var motcle version Id: xncdf_lec pro 327 2007 12 13 16:22:35Z pinsard PRO wid_var widid_pere compile_opt idl2 strictarrsubs COMMON resultat res COMMON infovariable cdfid listename contient nomdim tailledim varid varcontient COMMON indicewid_var widbase1 widbase2111 widbase212 widbase213 selectatt COMMON motcle mcatt mccount mcoffset mciodir mcshift mcstride mcvar res 1 Opening of the base window as columns widbase widget_base column title variable: varcontient name align_center group_leader widid_pere Opening of the base subwindow widbase1 array of offsets rien widget_label widbase value We jump a line Definition of labels of lines of the array rowlab string tailledim varcontient dim for i 0 n_elements rowlab 1 do rowlab i strtrim rowlab i 1 rowlab nomdim varcontient dim replicate : n_elements varcontient dim rowlab Definition of array s initial values valinit lonarr 4 n_elements varcontient dim column 0 : offsets if keyword_set mcoffset AND n_elements mcoffset EQ varcontient ndims THEN valinit 0 mcoffset ELSE valinit 0 0 colomn 1 : counts if keyword_set mccount AND n_elements mccount EQ varcontient ndims THEN valinit 1 mccount ELSE valinit 1 tailledim varcontient dim column 2 : shifts if keyword_set mcshift AND n_elements mcshift EQ varcontient ndims THEN valinit 2 mcshift ELSE valinit 2 0 column 3 : strides if keyword_set mcstride AND n_elements mcstride EQ varcontient ndims THEN valinit 3 mcstride ELSE valinit 3 1 test of initial values of the array valinit fix valinit valinit 3 1 valinit 3 valinit 0 valinit 1 tailledim varcontient dim valinit 3 valinit 0 valinit 2 valinit 2 MOD tailledim varcontient dim valinit 3 test of shifts declaration of the array widbase1 widget_table widbase row_labels rowlab value valinit editable column_labels Offset Count Shift Stride uvalue 1 un petit blabla rien widget_label widbase value ATTENTION: Faire des return pour que les valeurs align_center rien widget_label widbase value du tableau ou des textes soient bien prises en compte align_center widbase2 choice of attributes rien widget_label widbase value We jump a line widbase2 widget_base widbase column To each attribute we created a widget widbase21 containing in line a button yes no widbase211 and two widget text widbase212 widbase213 comprising the name and the value of the attribute widbase21 lonarr varcontient natts widbase211 lonarr varcontient natts widbase2111 lonarr varcontient natts Vector which will serve to know which yes no are selected see wid_var_event selectatt lonarr varcontient natts selectatt 0 widbase212 lonarr varcontient natts widbase213 lonarr varcontient natts for attid 0 varcontient natts 1 do BEGIN Loop on the number of attribute widbase21 attid widget_base widbase2 row name ncdf_attname cdfid varid attid ncdf_attget cdfid varid name value widbase211 attid widget_base widbase21 attid nonexclusive widbase2111 attid widget_button widbase211 attid value uvalue 2111 widbase212 attid widget_text widbase21 attid value name editable widbase213 attid widget_text widbase21 attid value strtrim string value 1 editable endfor widbase3 buttons of the bottom widbase3 widget_base widbase row align_center widbase31 widget_button widbase3 value GET uvalue 31 widbase32 widget_button widbase3 value Help uvalue 32 widbase33 widget_button widbase3 value DONE uvalue 33 execution of the base window and of sub window widget_control widbase realize xmanager wid_var widbase return end file_comments Procedure called by xmanager when we press a button of the first widget created by par xncdf_lec param EVENT A structure characterising the event type which arrive at the widget number 1 uses resultat infovariable motcle version Id: xncdf_lec pro 327 2007 12 13 16:22:35Z pinsard PRO xncdf_lec_event event compile_opt idl2 strictarrsubs COMMON resultat res COMMON infovariable cdfid listename contient nomdim tailledim varid varcontient COMMON motcle mcatt mccount mcoffset mciodir mcshift mcstride mcvar What is the type of event widget_control event id get_uvalue uval case on the type of event case uval of 1:BEGIN We want to read an other file widget_control event id get_value nom We recuperate the name widget_control event top destroy We shut the widget ncdf_close cdfid We shut the wrong file which has been opened We call back xncdf_lec res xncdf_lec nom 0 ATT mcatt COUNT mccount OFFSET mcoffset IODIR mciodir SHIFT mcshift STRIDE mcstride VAR mcvar return END 2:BEGIN A variable is selected varid event index We recuperat its number in the file Netcdf varcontient ncdf_varinq cdfid varid wid_var event top We call the program which launch the second widget See sooner END 3:BEGIN button done widget_control event top destroy We delete the widget ncdf_close cdfid We shut the file END ELSE: endcase return end"); … … 266 266 a[264] = new Array("./ToBeReviewed/PLOTS/DESSINE/pltt.html", "pltt.pro", "", " file_comments Trace hovmoeller graphs: xt yt zt t categories Graphics param TAB in required The field whose we want to make the hovmoeller 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 extraction 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 extraction zone via BOXZOOM 2 a structure respecting all criterions specified by litchamp See IDL xhelp litchamp The array contained in the structure respecting criterions of case 1 param GIVENTYPE param GIVENMIN 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 param GIVENMAX 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 param DATMIN c est la borne inf de l axe temporel c est un longinteger de la forme yyyymmdd ou bien yymmdd param 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 geographic 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 type integer When CONTOUR is activated 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 default we take the max of the array passed in the keyword CONTOUR on ocean points When CONTOUR is activated max value we want to consider in the isoline traced by a trait s line keyword CONTMIN default we take the min of the array passed in the keyword CONTOUR on ocean points When CONTOUR is activated min value we want to consider in the isoline traced by a trait s line keyword CONTNLEVEL default 20 When CONTOUR is activated it is the number of contours traced by a trait for drawing active if CONTLABEL 0 keyword CONTOUR If we want to trace contours of a different field than the one whose we have the colored drawing by example E P in color and QSR in contours It must be a field respecting same characteristics than the argument number one of pltt keyword ENDPOINTS keyword specifying that we want to make a vertical cut in diagonal Then coordinated of extremities of these one are defined 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 interval between two isolines 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 isolines 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 type integer If n different of 0 it choose the label s type corresponding to cases n cf label Comment: When CONTOUR is activated it only specify the label s type for colored isolines For these 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 default 20 Number of contours to draw active if LABEL 0 or is not specified keyword NOFILL To make just isolines with no filling keyword CONTNLEVEL default 20 When CONTOUR is activated it is the number of contours traced by a trait for drawing active if CONTLABEL 0 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 Values inferior superior at the specified min max are not filled Note that max values a considered as missing values so cells containing one or more corners with values above max will have no contours drawn through them keyword STYLE default style 0 Contour s style to adopt to draw isolines See style for more informations 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 keyword TYPEIN allows to specify the type of hovmoeller we want to do xt yt zt t with help of a keyword rather than the argument type If the argument and the keyword are specified in the same time it is the value specified by the keyword which is retained keyword _EXTRA Used to pass keywords uses common pro history Sebastien Masson smasson lodyc jussieu fr 27 5 98 Jerome Vialard adapting plt to hovmoeller 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 328 2007 12 13 19:27:11Z smasson todo seb: definition of parameters 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 NOFILL nofill 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 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 reinitialize 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 n_elements z2d EQ 1 AND z2d 0 EQ 1 then BEGIN IF keyword_set savedbox THEN restoreboxparam boxparam4pltt dat return endif grille mask glam gphi gdep nx ny nz type type 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 ras report 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 automatically 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"); 267 267 a[265] = 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 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 1 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 placedessin TV axe legende barrecouleur terminedessin examples IDL tvplus dist 100 history Aug 2006: Sebastien Masson smasson lodyc jussieu fr version Id: pltv pro 327 2007 12 13 16:22:35Z pinsard PRO pltv data min max BOTTOM bottom BOXZOOM boxzoom C_MASK c_mask C_NAN c_nan INV inv 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 n_elements z2d EQ 1 AND 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 bottom IF NOT keyword_set ncolors then topcol ncolmax 2 ELSE topcol bottom ncolors 1 temporary z2d c_nan c_mask ncolmax 1 ELSE cmask ncolmax 1 z2d maskind cmask ENDIF reverse colors from topcol to bottom instead of bottom to topcol IF keyword_set inv THEN BEGIN m float topcol bottom float bottom topcol p float bottom 2 topcol 2 float bottom topcol z2d m temporary z2d p ENDIF avoid rounding errors z2d round temporary z2d use byte type to save memory z2d byte temporary z2d if NOT keyword_set overplot then reinitplt z invert placedessin pltv posplot posbar dtasize _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 _extra ex IF keyword_set masked THEN tracemask msk indgen dtasize 0 indgen dtasize 1 color bar IF keyword_set inv THEN colors topcol bindgen ncolors ELSE colors bottom bindgen ncolors barrecouleur colors min max 10 position posbar _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"); 268 a[266] = 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 See IDL xhelp litchamp The array contained in the structure must be 2 or 3d See case 1 param GIVENTYPE param GIVENMIN required 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 param GIVENMAX required 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 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 type integer When CONTOUR is activated 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 default max of the keyword CONTOUR on ocean points When CONTOUR is activated max value we want to consider in the isoline traced by a trait s line keyword CONTMIN default min of the keyword CONTOUR on ocean points When CONTOUR is activated min value we want to consider in the isoline traced by a trait s line keyword CONTNLEVEL default 20 When CONTOUR is activated it is the number of contours traced by a trait for drawing active if CONTLABEL 0 keyword CONTOUR If we want to trace contours of a different field than the one whose we have the colored drawing by example E P in color and QSR in contours It must be a field respecting same characteristics than the argument number one of plt keyword ENDPOINTS keyword specifying that we want to make a vertical cut in diagonal Then coordinated of extremities of these one are defined by the 4 elements of the vector ENDPOINTS: x1 y1 x2 y2 which are coordinates keyword INTERVALLE Value of an interval between two isolines 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 isolines 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 default 2 3 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 keyword LABEL default 0 type integer It choose the label s type corresponding to cases in label Comment: When CONTOUR is activated it only specify the label s type for colored isolines For these 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 default 20 Number of contours to draw active if LABEL 0 or is not specified keyword NOFILL To make just isolines with no filling 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 except 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 Values inferior superior at the specified min max are not filled Note that max values a considered as missing values so cells containing one or more corners with values above max will have no contours drawn through them keyword STYLE default style 0 Contour s style to adopt to draw isolines See style for more informations 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 default 200m or max depth if it is inferior at 200m Depth where i can make our maximum zoom 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 3 28 2007 12 13 19:27:11Z smasson todo seb definition of paramaters 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 NOFILL nofill 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 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 reinitialize 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 n_elements z2d EQ 1 AND 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 n_elements z2d EQ 1 AND 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 type type WDEPTH wdepth ELSE grille mask glam gphi gdep nx ny nz WDEPTH wdepth ENDELSE IF size gdep n_dimensions EQ 2 THEN usetri 2 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 n_elements key_save EQ 0 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 trifield triangule mask basic IF NOT keyword_set endpoints THEN BEGIN if keyword_set nan then trinan triangule masknan basic coinmonte coinmontenan coindescend coindescendnan maskorg mask 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 IF n_elements romszinfos EQ 1 THEN BEGIN add one line at bottom to have nicer plot colors go until the ocean bottom IF n_elements romszinfos h NE 1 THEN BEGIN CASE type OF xz :romsh moyenne romszinfos h y yz :romsh moyenne romszinfos h x ENDCASE IF nzt EQ jpk THEN BEGIN z2d z2d z2d jpk 1 zzaxis zzaxis romsh ENDIF ENDIF ENDIF 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 NOFILL nofill maskorg maskorg 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 display 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");268 a[266] = 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 See IDL xhelp litchamp The array contained in the structure must be 2 or 3d See case 1 param GIVENTYPE param GIVENMIN required 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 param GIVENMAX required 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 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 type integer When CONTOUR is activated 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 default max of the keyword CONTOUR on ocean points When CONTOUR is activated max value we want to consider in the isoline traced by a trait s line keyword CONTMIN default min of the keyword CONTOUR on ocean points When CONTOUR is activated min value we want to consider in the isoline traced by a trait s line keyword CONTNLEVEL default 20 When CONTOUR is activated it is the number of contours traced by a trait for drawing active if CONTLABEL 0 keyword CONTOUR If we want to trace contours of a different field than the one whose we have the colored drawing by example E P in color and QSR in contours It must be a field respecting same characteristics than the argument number one of plt keyword ENDPOINTS keyword specifying that we want to make a vertical cut in diagonal Then coordinated of extremities of these one are defined by the 4 elements of the vector ENDPOINTS: x1 y1 x2 y2 which are coordinates keyword INTERVALLE Value of an interval between two isolines 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 isolines 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 default 2 3 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 keyword LABEL default 0 type integer It choose the label s type corresponding to cases in label Comment: When CONTOUR is activated it only specify the label s type for colored isolines For these 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 default 20 Number of contours to draw active if LABEL 0 or is not specified keyword NOFILL To make just isolines with no filling 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 except 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 Values inferior superior at the specified min max are not filled Note that max values a considered as missing values so cells containing one or more corners with values above max will have no contours drawn through them keyword STYLE default style 0 Contour s style to adopt to draw isolines See style for more informations 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 default 200m or max depth if it is inferior at 200m Depth where i can make our maximum zoom 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 360 2008 06 06 13:43:54Z smasson todo seb definition of paramaters 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 NOFILL nofill 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 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 reinitialize 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 n_elements z2d EQ 1 AND 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 n_elements z2d EQ 1 AND 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 type type WDEPTH wdepth ELSE grille mask glam gphi gdep nx ny nz WDEPTH wdepth ENDELSE IF size gdep n_dimensions EQ 2 THEN usetri 2 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 n_elements key_save EQ 0 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 trifield triangule mask basic IF NOT keyword_set endpoints THEN BEGIN if keyword_set nan then trinan triangule masknan basic coinmonte coinmontenan coindescend coindescendnan maskorg mask 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 IF n_elements romszinfos EQ 1 THEN BEGIN add one line at bottom to have nicer plot colors go until the ocean bottom IF n_elements romszinfos h NE 1 THEN BEGIN CASE type OF xz :romsh moyenne romszinfos h y yz :romsh moyenne romszinfos h x ENDCASE IF nzt EQ jpk THEN BEGIN z2d z2d z2d jpk 1 zzaxis zzaxis romsh ENDIF ENDIF ENDIF 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 NOFILL nofill maskorg maskorg 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 _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 display 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"); 269 269 a[267] = new Array("./ToBeReviewed/PLOTS/DESSINE/sbar_plot.html", "sbar_plot.pro", "", " file_comments Same thing that bar_plot but compatible with the whole environment common pro included categories Graphics keyword COLORS type vector 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 type integer I gives 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 environment variables p x y z to be reinitialized by the procedure reinitplt keyword _EXTRA Used to pass keyword uses common pro restrictions If NOREINITPLT is not activated all environment variables p x y z are reinitializted by 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 327 2007 12 13 16:22:35Z pinsard PRO sbar_plot values COLORS colors NOREINITPLT noreinitplt _EXTRA ex compile_opt idl2 strictarrsubs common 1 I reinitialize the graphic environment variables x y and 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"); 270 270 a[268] = new Array("./ToBeReviewed/PLOTS/DESSINE/scontour.html", "scontour.pro", "", " file_comments Same thing that contour but compatible with the whole environment common pro included categories Graphics keyword NOREINITPLT We active it if we do not want environment variables p x y z to be reinitilalized by the procedure reinitplt keyword _EXTRA Used to pass 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 327 2007 12 13 16:22:35Z pinsard PRO scontour x y z NOREINITPLT noreinitplt _EXTRA ex compile_opt idl2 strictarrsubs common 1 I reinitialize the graphic environment variables x y and p : if NOT keyword_set NOREINITPLT then reinitplt _extra ex 2 i put the drawing on the screen like on the postscript 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_orientation 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_orientation 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_orientation 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"); … … 274 274 a[272] = 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 Graphics param MIN in required type float above what value we want to trace a contour param MAX in required type float below what value we want to trace a contour param CI out type real 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 contours to be even history G Roullet aout 99 gr lodyc jussieu fr version Id: autoscale pro 325 2007 12 06 10:04:53Z pinsard PRO autoscale min max ci compile_opt idl2 strictarrsubs 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 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"); 275 275 a[273] = 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 default 2 3 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 keyword _EXTRA Used to pass keywords Others: see pltz history Sebastien Masson smasson lodyc jussieu fr June 24 2002 version Id: axis4pltz pro 327 2007 12 13 16:22:35Z pinsard PRO axis4pltz type mask glam gphi z XXAXIS xxaxis ZZAXIS zzaxis SIN sin ZRATIO zratio ZOOM zoom PROFMAX profmax PROFMIN profmin _EXTRA ex 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 ENDIF ELSE BEGIN xxaxis glam 0 ENDELSE zzaxis z 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 small where zzaxis LE zoom IF small 0 NE 1 THEN zzaxis small mp 0 zzaxis small mp 1 mp projsegment zoom profmax zratio 1 mp big where zzaxis GE zoom IF big 0 NE 1 THEN zzaxis big mp 0 zzaxis big 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"); 276 a[274] = new Array("./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html", "barrecouleur.pro", "", " file_comments Overlayer of colorbar categories Utilities param colnumb param clbinf param clbsup param clbdiv keyword NOCOLORBAR keyword CB_TITLE keyword NOFILL keyword COLOR_C 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 DIVISIONS keyword CB_SUBTITLE keyword POST keyword _EXTRA Used to pass keywords restrictions pass all arguments we want thanks to _EXTRA history Sebastien Masson smasson lodyc jussieu fr 23 12 98 version Id: barrecouleur pro 3 27 2007 12 13 16:22:35Z pinsard 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 divisionsCB_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");277 a[275] = new Array("./ToBeReviewed/PLOTS/DIVERS/checkfield.html", "checkfield.pro", "", " file_comments categories param TYPE in required type string A string of two characters specifying the type of plot we do param N1 in required type integer Number of elements in the first dimension param N2 in required type integer Number of elements in the second dimension param NAME in optional type string It gives the name of the file to be opened If NAME does not contain the separating character of directories under unix for example the file will be looked for in the current directory returns restrictions examples history version Id: checkfield pro 3 27 2007 12 13 16:22:35Z pinsard 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 file_comments categories param TYPE in required type string A string of two characters specifying the type of plot we do param SZ in optional default defined by grille param NX in optional default defined by grille param NY in optional default defined by grille param NZ returns restrictions examples history version Id: checkfield pro 327 2007 12 13 16:22:35Z pinsard 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 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 categories param TYPE in required type string A string of two characters specifying the type of plot we do param SZ in optional default defined by grille param NX in optional default defined by grille param NY in optional default defined by grille param NZ returns restrictions examples history version Id: checkfield pro 327 2007 12 13 16:22:35Z pinsard 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 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 Graphics param FIELD in required type field It respect litchamp s criterions See IDL xhelp litchamp param PROCEDURE in required keyword TYPE keyword NOQUESTION keyword BOXZOOM type vector 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 instead of T depth automatically activated if vargrid eq W keyword VECTEUR type vector 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 inconsequential vecteur u:lec unsurface v:lec vnsurface is also appropriated keyword _EXTRA Used to pass keywords keyword DIREC uses common pro history Sebastien Masson smasson lodyc jussieu fr 08 02 2000 version Id: checkfield pro 327 2007 12 13 16:22:35Z pinsard 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 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 fieldfirst 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 the 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");276 a[274] = new Array("./ToBeReviewed/PLOTS/DIVERS/barrecouleur.html", "barrecouleur.pro", "", " file_comments Overlayer of colorbar categories Utilities param colnumb param clbinf param clbsup param clbdiv keyword NOCOLORBAR keyword CB_TITLE keyword NOFILL keyword COLOR_C 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 DIVISIONS keyword CB_SUBTITLE keyword POST keyword _EXTRA Used to pass keywords restrictions pass all arguments we want thanks to _EXTRA history Sebastien Masson smasson lodyc jussieu fr 23 12 98 version Id: barrecouleur pro 358 2008 04 28 09:41:14Z pinsard 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"); 277 a[275] = new Array("./ToBeReviewed/PLOTS/DIVERS/checkfield.html", "checkfield.pro", "", " file_comments categories param TYPE in required type string A string of two characters specifying the type of plot we do param N1 in required type integer Number of elements in the first dimension param N2 in required type integer Number of elements in the second dimension param NAME in optional type string It gives the name of the file to be opened If NAME does not contain the separating character of directories under unix for example the file will be looked for in the current directory returns restrictions examples history version Id: checkfield pro 360 2008 06 06 13:43:54Z smasson 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 file_comments categories param TYPE in required type string A string of two characters specifying the type of plot we do param SZ in optional default defined by grille param NX in optional default defined by grille param NY in optional default defined by grille param NZ returns restrictions examples history version Id: checkfield pro 360 2008 06 06 13:43:54Z smasson 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 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 categories param TYPE in required type string A string of two characters specifying the type of plot we do param SZ in optional default defined by grille param NX in optional default defined by grille param NY in optional default defined by grille param NZ returns restrictions examples history version Id: checkfield pro 360 2008 06 06 13:43:54Z smasson 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 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 Graphics param FIELD in required type field It respect litchamp s criterions See IDL xhelp litchamp param PROCEDURE in required keyword TYPE keyword NOQUESTION keyword BOXZOOM type vector 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 instead of T depth automatically activated if vargrid eq W keyword VECTEUR type vector 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 inconsequential vecteur u:lec unsurface v:lec vnsurface is also appropriated keyword _EXTRA Used to pass keywords keyword DIREC uses common pro history Sebastien Masson smasson lodyc jussieu fr 08 02 2000 version Id: checkfield pro 360 2008 06 06 13:43:54Z smasson 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 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 if vargrid eq W then wdepth 1 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 the 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"); 278 278 a[276] = new Array("./ToBeReviewed/PLOTS/DIVERS/checktypeminmax.html", "checktypeminmax.pro", "", " file_comments categories param PROCEDURE keyword TYPE keyword MIN keyword MAX keyword XY keyword XZ keyword YZ keyword XT keyword YT keyword ZT keyword TT keyword XX keyword YY keyword ZZ keyword XINDEX keyword YINDEX keyword ENDPOINTS keyword _EXTRA Used to pass keywords returns uses common pro restrictions examples history Sebastien Masson smasson lodyc jussieu fr version Id: checktypeminmax pro 327 2007 12 13 16:22:35Z pinsard 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 AND type NE t DO BEGIN type xquestion What kind of plot do you want to do 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"); 279 279 a[277] = new Array("./ToBeReviewed/PLOTS/DIVERS/determineminmax.html", "determineminmax.pro", "", " file_comments Determine the min and the max of a mask array categories Plotting param TAB in required The array whose we determine the min and the max param MASK in required The mask array keyword MININ type scalar If it is not defined it takes the value of VRAIMIN keyword MAXIN type scalar If it is not defined it takes 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 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 327 2007 12 13 16:22:35Z pinsard 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 of the 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"); … … 296 296 a[294] = 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 type vector Optional abscissa values X must be a vector with a length equal to the first dimension of U and V param Y in optional type vector 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 default 1 0 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 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 327 2007 12 13 16:22:35Z pinsard 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"); 297 297 a[295] = new Array("./ToBeReviewed/PLOTS/axe.html", "axe.pro", "", " file_comments Manage axes for the different drawings created by plt pltz and pltt categories Graphics param COUPE type string It designate 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 type string It separate the different constituents of the date By default it is a return to the line when 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 label_date for more information on Z and Y keyword _EXTRA Used to pass 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 327 2007 12 13 16:22:35Z pinsard 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 defined 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 CASE 1 OF yearly base ymin NE 0 AND tempsmax GT julday mmin dmin ymin 3 hmin mnmin smin :BEGIN more than 3 years CASE 1 OF ymax ymin 1 GT 5000: BEGIN freq 500 tminor 5 datfmt fmtyr end ymax ymin 1 GT 2000: BEGIN freq 200 tminor 4 datfmt fmtyr end ymax ymin 1 GT 1000: BEGIN freq 100 tminor 5 datfmt fmtyr end ymax ymin 1 GT 500: BEGIN freq 50 tminor 5 datfmt fmtyr end ymax ymin 1 GT 200: BEGIN freq 20 tminor 4 datfmt fmtyr end ymax ymin 1 GT 100: BEGIN freq 10 tminor 5 datfmt fmtyr end ymax ymin 1 GT 50: BEGIN freq 5 tminor 5 datfmt M sep fmtyr end ymax ymin 1 GT 20: BEGIN freq 4 tminor 4 datfmt M sep fmtyr end ymax ymin 1 GT 10: BEGIN freq 2 tminor 4 datfmt M sep fmtyr end ELSE: BEGIN freq 1 tminor 4 datfmt M sep fmtyr end ENDCASE nticks ceil ymax ymin freq 2 yminf floor ymin freq freq ticknom lonarr nticks for y 0 nticks 1 do ticknom y julday 1 1 yminf y freq _EXTRA ex ticknom ticknom where ticknom GE tempsmin AND ticknom LE tempsmax nticks END monthly base tempsmax GT julday mmin 3 dmin ymin hmin mnmin smin :BEGIN more than 3 months CASE 1 OF tempsmax GT julday mmin 30 dmin ymin hmin mnmin smin :BEGIN more than 30 months ticks every 3 months freq 3 tminor 3 END tempsmax GT julday mmin 16 dmin ymin hmin mnmin smin :BEGIN more than 16 months ticks every 2 months freq 2 tminor 2 END else:BEGIN monthly ticks freq 1 tminor 6 END ENDCASE nticks ceil mmax 12 ymax ymin mmin freq 2 mminf 1 floor mmin freq freq ticknom lonarr nticks for m 0 nticks 1 do ticknom m julday mminf freq m 1 ymin _EXTRA ex datfmt M sep fmtyr ticknom ticknom where ticknom GE tempsmin AND ticknom LE tempsmax nticks END daily base tempsmax GT julday mmin dmin 3 ymin hmin mnmin smin :BEGIN more than 3 days CASE 1 OF tempsmax GT julday mmin dmin 60 ymin hmin mnmin smin :BEGIN more than 60 days ticks every 7 days freq 7 tminor 2 END tempsmax GT julday mmin dmin 30 ymin hmin mnmin smin :BEGIN more than 30 days ticks every 5 days freq 5 tminor 5 END tempsmax GT julday mmin dmin 16 ymin hmin mnmin smin :BEGIN more than 16 days ticks every 2 days freq 2 tminor 2 END ELSE:BEGIN daily ticks freq 1 tminor 2 END ENDCASE nticks ceil tempsmax tempsmin freq 2 dminf 1 floor dmin freq freq ticknom lonarr nticks for d 0 nticks 1 do ticknom d julday mmin dminf freq d ymin _EXTRA ex datfmt D sep M ticknom ticknom where ticknom GE tempsmin AND ticknom LE tempsmax nticks END hourly base tempsmax GT julday mmin dmin ymin hmin 3 mnmin smin :BEGIN more than 3 hours CASE 1 OF tempsmax GT julday mmin dmin ymin hmin 48 mnmin smin :BEGIN more than 48 hours ticks every 6 hours freq 6 tminor 3 datfmt D sep H:00 END tempsmax GT julday mmin dmin ymin hmin 30 mnmin smin :BEGIN more than 30 hours ticks every 4 hours freq 4 tminor 2 datfmt D sep H:00 END tempsmax GT julday mmin dmin ymin hmin 16 mnmin smin :BEGIN more than 16 hours ticks every 2 hours freq 2 tminor 2 datfmt H:00 END ELSE:BEGIN ticks every hour freq 1 tminor 2 datfmt H:00 END ENDCASE nticks ceil hmax 24 dmax dmin hmin freq 2 hminf floor hmin freq freq ticknom dblarr nticks for h 0 nticks 1 do ticknom h julday mmin dmin ymin hminf freq h 0 0 _EXTRA ex ticknom ticknom where ticknom GE tempsmin AND ticknom LE tempsmax nticks END minute base tempsmax GT julday mmin dmin ymin hmin mnmin 3 smin :BEGIN more than 3 minutes CASE 1 OF tempsmax GT julday mmin dmin ymin hmin mnmin 120 smin :BEGIN more than 120 minutes ticks every 10 minutes freq 10 tminor 2 END tempsmax GT julday mmin dmin ymin hmin mnmin 60 smin :BEGIN more than 60 minutes ticks every 6 minutes freq 6 tminor 3 END tempsmax GT julday mmin dmin ymin hmin mnmin 30 smin :BEGIN more than 30 minutes ticks every 4 minutes freq 4 tminor 2 END tempsmax GT julday mmin dmin ymin hmin mnmin 15 smin :BEGIN more than 15 minutes ticks every 2 minutes freq 2 tminor 2 END ELSE:BEGIN ticks every minutes freq 1 tminor 2 END ENDCASE nticks ceil mnmax 60 hmax hmin mnmin freq 2 mnminf floor mnmin freq freq ticknom dblarr nticks for mn 0 nticks 1 do ticknom mn julday mmin dmin ymin hmin mnminf freq mn 0 _EXTRA ex ticknom ticknom where ticknom GE tempsmin AND ticknom LE tempsmax nticks datfmt H: I END second base ELSE:BEGIN less than 3 minutes CASE 1 OF tempsmax GT julday mmin dmin ymin hmin mnmin smin 120 :BEGIN more than 120 seconds ticks every 20 seconds freq 20 tminor 2 datfmt H: I: S END tempsmax GT julday mmin dmin ymin hmin mnmin smin 60 :BEGIN more than 60 seconds ticks every 15 seconds freq 15 tminor 3 datfmt H: I: S END tempsmax GT julday mmin dmin ymin hmin mnmin smin 30 :BEGIN more than 30 seconds ticks every 10 seconds freq 10 tminor 2 datfmt H: I: S END tempsmax GT julday mmin dmin ymin hmin mnmin smin 15 :BEGIN more than 15 seconds ticks every 4 seconds freq 4 tminor 4 datfmt H: I: S END tempsmax GT julday mmin dmin ymin hmin mnmin smin 7 :BEGIN more than 7 seconds ticks every 2 seconds freq 2 tminor 2 datfmt H: I: S END ELSE:BEGIN ticks every minutes freq 1 tminor 2 datfmt H: I: S END ENDCASE nticks ceil smax 60 mnmax mnmin smin freq 2 sminf floor smin freq freq ticknom dblarr nticks for s 0 nticks 1 do ticknom s julday mmin dmin ymin hmin mnmin sminf freq s _EXTRA ex ticknom ticknom where ticknom GE tempsmin AND ticknom LE tempsmax nticks END ENDCASE dummy 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"); 298 a[296] = new Array("./ToBeReviewed/PLOTS/legende.html", "legende.pro", "", " file_comments Provide caption categories Graphics param MI in required The min of the drawing param MA in required The max of the plot param COUPE type string Character 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 example E P in color and QSR in contours It must be a field respecting same characteristics than the argument number one of plt keyword ENDPOINTS Used when we do vertical cuts in diagonal keyword _EXTRA Used to pass keywords uses common pro restrictions The use of the global variable language 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 3 27 2007 12 13 16:22:35Z pinsard 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 depthf2x 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");298 a[296] = new Array("./ToBeReviewed/PLOTS/legende.html", "legende.pro", "", " file_comments Provide caption categories Graphics param MI in required The min of the drawing param MA in required The max of the plot param COUPE type string Character 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 example E P in color and QSR in contours It must be a field respecting same characteristics than the argument number one of plt keyword ENDPOINTS Used when we do vertical cuts in diagonal keyword _EXTRA Used to pass keywords uses common pro restrictions The use of the global variable language 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 344 2008 04 15 11:05:43Z 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 IF keyword_set TYPE_YZ THEN BEGIN vertz type_yz legniv type_yz ENDIF ELSE BEGIN vertz depthf2 legniv m ENDELSE 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 vertz 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 vertz 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 vertz 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"); 299 299 a[297] = new Array("./ToBeReviewed/PLOTS/plotsym.html", "plotsym.pro", "", " file_comments function to make plotting symbols much easier categories Graphics keyword CIRCLE circle symbol keyword TRIANGLE triangle symbol keyword DIAMOND diamond symbol keyword BOX box symbol keyword LINE line symbol keyword SCALE scales the symbol keyword ANGLE angle the symbol should be rotated keyword _EXTRA Used to pass keywords to 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 325 2007 12 06 10:04:53Z pinsard 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"); 300 300 a[298] = new Array("./ToBeReviewed/PLOTS/reinitplt.html", "reinitplt.pro", "", " file_comments This procedure will reinitialize all or a selection of the system plot variables categories Utilities 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 reinitplt all invert does nothing uses common pro restrictions The system 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 325 2007 12 06 10:04:53Z pinsard 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 "); … … 305 305 a[303] = new Array("./ToBeReviewed/POSTSCRIPT/ps.html", "ps.pro", "", ""); 306 306 a[304] = new Array("./ToBeReviewed/STATISTICS/a_correlate2d.html", "a_correlate2d.pro", "", " file_comments 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 ZERO2NAN 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 327 2007 12 13 16:22:35Z pinsard 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 327 2007 12 13 16:22:35Z pinsard 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 ras report X array must contain 2 dimensions Check length if nx lt 2 then ras report first dimension of X array must contain 2 or more elements if ny lt 2 then ras report second dimension of X array must contain 2 or more elements if n_elements Lag NE 2 THEN ras report 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"); 307 a[305] = new Array("./ToBeReviewed/STATISTICS/a_timecorrelate.html", "a_timecorrelate.pro", "", " file_comments categories Statistics param X in required type array An array which last dimension is the time dimension so size n param M param NT keyword ZERO2NAN keyword NAN keyword DOUBLE If set to a non zero value computations are done in double precision arithmetic hidden version Id: a_timecorrelate pro 3 35 2008 03 07 15:09:25Z smasson FUNCTION timeauto_cov x m nt DOUBLE double ZERO2NAN zero2nan NAN nan Sample autocovariance function compile_opt idl2 strictarrsubs IF NAN AND M GE 1 THEN STOP Warning : lagged autocorrelation is not possible at the moment for time series with NaN TimeDim size X n_dimensions Xmean NAN TOTAL X TimeDim Double Double NAN nan TOTAL FINITE X TimeDim : TOTAL X TimeDim Double Double nT one double 1 0d : 1 0 Xmean Xmean replicate one nT M Time series with NaN : only for Lag 0 case TimeDim of 1:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 2:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 3:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 4:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 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 type array An array which last dimension is the time dimension so size n param LAG in required type scalar or vector 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 NVAL A named variable that on exit contains the number of valid observations not NAN keyword DOUBLE If set to a non zero value computations are done in double precision arithmetic examples Define an n element sample population IDL 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 IDL lag 3 0 1 3 4 8 IDL 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 335 2008 03 07 15:09:25Z smasson FUNCTION a_timecorrelate x lag COVARIANCE covariance DOUBLE double NVAL nval 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 Keyword NAN activated if needed for TimeAuto_Cov function Keyword NVAL not compulsory NAN WHERE FINITE X EQ 0 0 NE 1 1 : 0 We can retrieve the matrix of real lenghts of time series nTreal WHERE FINITE X EQ 0 0 NE 1 TOTAL FINITE X XNDim : nT IF ARG_PRESENT NVAL THEN nval nTreal Check length IF WHERE nTreal LE 1 0 NE1 THEN MESSAGE Matrix of length of time series 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 type SIZE X TYPE useDouble N_ELEMENTS Double eq 1 KEYWORD_SET Double : 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 Type of outputs according to the type of data input case XNDim of 1: Auto useDouble DBLARR nLag : FLTARR nLag 2: Auto useDouble DBLARR XDim 0 nLag : FLTARR XDim 0 nLag 3: Auto useDouble DBLARR XDim 0 XDim 1 nLag : FLTARR XDim 0 XDim 1 nLag 4: Auto useDouble DBLARR XDim 0 XDim 1 XDim 2 nLag : FLTARR XDim 0 XDim 1 XDim 2 nLag endcase Compute lagged autocorrelation or autocovariance no NaN FOR k 0 nLag 1 DO BEGIN case XNDim of 1: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END 2: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END 3: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END 4: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END ENDCASE ENDFOR return useDouble Auto : FLOAT Auto END");307 a[305] = new Array("./ToBeReviewed/STATISTICS/a_timecorrelate.html", "a_timecorrelate.pro", "", " file_comments categories Statistics param X in required type array An array which last dimension is the time dimension so size n param M param NT keyword ZERO2NAN keyword NAN keyword DOUBLE If set to a non zero value computations are done in double precision arithmetic hidden version Id: a_timecorrelate pro 342 2008 03 28 16:08:47Z smasson FUNCTION timeauto_cov x m nt DOUBLE double ZERO2NAN zero2nan NAN nan Sample autocovariance function compile_opt idl2 strictarrsubs IF NAN AND M GE 1 THEN STOP Warning : lagged autocorrelation is not possible at the moment for time series with NaN TimeDim size X n_dimensions Xmean NAN TOTAL X TimeDim Double Double NAN nan TOTAL FINITE X TimeDim : TOTAL X TimeDim Double Double nT one double 1 0d : 1 0 Xmean Xmean replicate one nT M Time series with NaN : only for Lag 0 case TimeDim of 1:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 2:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 3:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 4:res TOTAL X 0:nT M 1L Xmean X M:nT 1L Xmean TimeDim Double Double NAN nan 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 type array An array which last dimension is the time dimension so size n param LAG in required type scalar or vector 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 NVAL A named variable that on exit contains the number of valid observations not NAN keyword DOUBLE If set to a non zero value computations are done in double precision arithmetic examples Define an n element sample population IDL 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 IDL lag 3 0 1 3 4 8 IDL 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 342 2008 03 28 16:08:47Z smasson FUNCTION a_timecorrelate x lag COVARIANCE covariance DOUBLE double NVAL nval 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 Keyword NAN activated if needed for TimeAuto_Cov function Keyword NVAL not compulsory NAN WHERE FINITE X EQ 0 0 NE 1 1 : 0 We can retrieve the matrix of real lenghts of time series nTreal WHERE FINITE X EQ 0 0 NE 1 TOTAL FINITE X XNDim : nT IF ARG_PRESENT NVAL THEN nval nTreal Check length IF WHERE nTreal GT 1 0 EQ 1 THEN MESSAGE Matrix of length of time series 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 type SIZE X TYPE useDouble N_ELEMENTS Double eq 1 KEYWORD_SET Double : 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 Type of outputs according to the type of data input case XNDim of 1: Auto useDouble DBLARR nLag : FLTARR nLag 2: Auto useDouble DBLARR XDim 0 nLag : FLTARR XDim 0 nLag 3: Auto useDouble DBLARR XDim 0 XDim 1 nLag : FLTARR XDim 0 XDim 1 nLag 4: Auto useDouble DBLARR XDim 0 XDim 1 XDim 2 nLag : FLTARR XDim 0 XDim 1 XDim 2 nLag endcase Compute lagged autocorrelation or autocovariance no NaN FOR k 0 nLag 1 DO BEGIN case XNDim of 1: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END 2: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END 3: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END 4: BEGIN Auto k TimeAuto_Cov X ABS Lag k nT Double useDouble NAN nan KEYWORD_SET Covariance nTreal : TimeAuto_Cov X 0L nT Double useDouble zero2nan NAN nan END ENDCASE ENDFOR return useDouble Auto : FLOAT Auto END"); 308 308 a[306] = new Array("./ToBeReviewed/STATISTICS/c_timecorrelate.html", "c_timecorrelate.pro", "", " file_comments categories Statistics param XD param YD param M param NT param NDIM keyword ZERO2NAN keyword DOUBLE If set to a non zero value computations are done in double precision arithmetic examples history version Id: c_timecorrelate pro 327 2007 12 13 16:22:35Z pinsard FUNCTION timecross_cov xd yd m nt ndim DOUBLE double ZERO2NAN zero2nan compile_opt hidden Sample cross covariance function 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 multidimensional arrays as a function of the lag L categories Statistics param X in required type array An array which last dimension is the time dimension of size n float or double param Y in required type array An array which last dimension is the time dimension of size n float or double param LAG in required type scalar or vector A scalar or n elements 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 elements sample populations IDL x 3 73 3 67 3 77 3 83 4 67 5 87 6 70 6 97 6 40 5 57 IDL 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 IDL lag 5 0 1 5 6 7 IDL 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 327 2007 12 13 16:22:35Z pinsard 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 ras report X and Y arrays must have the same size and the same dimensions Check length if nt lt 2 then ras report 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"); 309 309 a[307] = new Array("./ToBeReviewed/STATISTICS/skewness_4d.html", "skewness_4d.pro", "", " file_comments categories Statistics param X in required type array An Array which last dimension is the time dimension so size n param NT keyword DOUBLE If set to a non zero value computations are done in double precision arithmetic hidden version Id: skewness_4d pro 335 2008 03 07 15:09:25Z smasson FUNCTION Skewness_Num X nT Double Double NAN nan Compute the numerator of the skewness expression compile_opt idl2 strictarrsubs TimeDim size X n_dimensions Xmean NAN TOTAL X TimeDim Double Double NAN nan TOTAL FINITE X TimeDim : TOTAL X TimeDim Double Double nT one double 1 0d : 1 0 Xmean Xmean replicate one nT res TOTAL X Xmean 3 TimeDim Double Double NAN nan RETURN res END file_comments Same function as SKEWNESS but accept array until 4 dimension for input and perform the skewness along the time dimension which must be the last one of the input array categories Statistics param X in required type array An Array which last dimension is the time dimension so size n keyword DOUBLE If set to a non zero value computations are done in double precision arithmetic keyword NVAL A named variable that on exit contains the number of valid observations not NAN examples history May 2007 Michel Kolasinski michel kolasinski locean ipsl upmc fr Based on the a_timecorrelate procedure of IDL INTRODUCTION TO STATISTICAL TIME SERIES Wayne A Fuller ISBN 0 471 28715 6 version Id: skewness_4d pro 335 2008 03 07 15:09:25Z smasson FUNCTION skewness_4d X DOUBLE Double NVAL nval compile_opt idl2 strictarrsubs Compute the skewness from 1d to 4d vectors ON_ERROR 2 XDim SIZE X dimensions XNDim SIZE X n_dimensions nT XDim XNDim 1 Keyword NAN activated if needed Keyword NVAL not compulsory NAN WHERE FINITE X EQ 0 0 NE 1 1 : 0 We can retrieve the matrix of real lenghts of time series nTreal WHERE FINITE X EQ 0 0 NE 1 TOTAL FINITE X XNDim : nT IF ARG_PRESENT NVAL THEN nval nTreal Check length IF WHERE nTreal LE 1 0 NE 1 THEN MESSAGE Matrix of length of time series 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 type SIZE X TYPE useDouble N_ELEMENTS Double eq 1 KEYWORD_SET Double : type eq 5 Type of outputs according to the type of data input case XNDim of 1: Skew useDouble DBLARR 1 : FLTARR 1 2: Skew useDouble DBLARR XDim 0 : FLTARR XDim 0 3: Skew useDouble DBLARR XDim 0 XDim 1 : FLTARR XDim 0 XDim 1 4: Skew useDouble DBLARR XDim 0 XDim 1 XDim 2 : FLTARR XDim 0 XDim 1 XDim 2 endcase Compute standard deviation nTreal might be a matrix std a_timecorrelate X 0 covariance std sqrt std zero where std EQ 0 if zero 0 NE 1 then STOP Cannot compute skewness since there are zeros in the matrix of standard deviations Problem with high masked values x 3 makes NaN when x is high Threshold put on the values of the tab idx_std WHERE std GT 1 0e 10 X X 1 0e 10 std std 1 0e 10 Compute skewness Skew Skewness_Num X nT Double useDouble NAN nan nTreal std 3 IF idx_std 0 NE 1 THEN Skew idx_std valmask return useDouble Skew : FLOAT Skew END "); 310 310 a[308] = new Array("./ToBeReviewed/STRING/chkeywd.html", "chkeywd.pro", "", " file_comments In a string containing an order to execute with EXECUTE by example We change the value of one of keywords More generally in a string we look for the character chain: keywdname and we change the value of categories String keywords param STRINGIN in required type string it is a string param KEYWDNAME in required type string 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 Character 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 Character 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 327 2007 12 13 16:22:35Z pinsard 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"); 311 311 a[309] = 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 325 2007 12 06 10:04:53Z pinsard FUNCTION delchr old c HELP hlp compile_opt idl2 strictarrsubs if n_params 0 lt 2 or keyword_set hlp then begin ras report Delete all occurrences of a character from a text string new delchr old char old original text string in char character to delete in 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"); 312 a[310] = 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 the 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 the file in the all path directories use find 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 3 27 2007 12 13 16:22:35Z pinsard FUNCTION getfile filein errorerr HELP hlp QUIET quiet LINES lines FIND find compile_opt idl2 strictarrsubs if n_params 0 lt 1 or keyword_set hlp then begin ras report Read a text file into a string array s getfile f f text file name in s string array out Keywords: ERROR err error flag: 0 ok 1 file not opened 2 no lines in file QUIET means give no error message LINES n Number of lines to read def all Much faster if number of lines is known Automatic for IDL 5 6 or later 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 found return 1 endif ENDIF ELSE file filein 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");312 a[310] = 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 the 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 the file in the all path directories use find 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 358 2008 04 28 09:41:14Z pinsard 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 ras report Read a text file into a string array s getfile f f text file name in s string array out Keywords: ERROR err error flag: 0 ok 1 file not opened 2 no lines in file QUIET means give no error message LINES n Number of lines to read def all Much faster if number of lines is known Automatic for IDL 5 6 or later 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 found return 1 endif ENDIF ELSE file filein 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"); 313 313 a[311] = new Array("./ToBeReviewed/STRING/getwrd.html", "getwrd.pro", "", " file_comments Return the n th word from a text string categories String param TXTSTR in required type string or array of strings text string to extract from The first element is used if txt is an array param NTH in required type integer default 0 word number to get first 0 def param MTH in optional type integer 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"); 314 314 a[312] = 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 325 2007 12 06 10:04:53Z pinsard 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 Allow 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"); -
trunk/SRC/Documentation/xmldoc/savesaxo.sh
r357 r363 110 110 docompileall=0 111 111 dohtml=0 112 dowiki= 1112 dowiki=0 113 113 dooldtest=0 114 114 doidlwavedoc=0 … … 124 124 doDTAidris=0 125 125 dodocdownload=0 126 dowikiupdate= 1126 dowikiupdate=0 127 127 # 128 128 case $( whoami ) in -
trunk/SRC/Interpolation/.idlwave_catalog
r338 r363 16 16 ("extrapolate" fun nil (lib "extrapolate.pro" nil "saxo") "Result = %s(zinput, maskinput, nb_iteration)" (nil ("_EXTRA") ("GE0") ("MAXVAL") ("MINVAL") ("X_PERIODIC"))) 17 17 ("extrapsmooth" fun nil (lib "extrapsmooth.pro" nil "saxo") "Result = %s(in, mskin)" (nil ("_EXTRA") ("GE0") ("MAXVAL") ("MINVAL") ("X_PERIODIC"))) 18 ("call_interp2d" fun nil (lib "file_interp.pro" nil "saxo") "Result = %s(data, inlon, inlat, inmask, outlon, outlat)" (nil ("_EXTRA") ("ADDR") ("INIRR") ("METHOD") (" NAN_VALUE") ("SMOOTH") ("WEIG")))19 ("file_interp" pro nil (lib "file_interp.pro" nil "saxo") "%s, filein, fileout, gridout" (nil ("_EXTRA") ("ADDR") ("GRIDIN") ("INADDSCL_BEFORE") ("ININVMASK") ("INMASKNAME") ("INMISSING_VALUE") ("IN USEASMASK") ("INXAXISNAME") ("INYAXISNAME") ("KEEP") ("MASKIN") ("MASKOUT") ("METHOD") ("NAN_VALUE") ("OUTADDSCL_BEFORE") ("OUTINVMASK") ("OUTMASKNAME") ("OUTMISSING_VALUE") ("OUTUSEASMASK") ("OUTXAXISNAME") ("OUTYAXISNAME") ("REMOVE") ("SET_XAXISNAME") ("SET_XDIMNAME") ("SET_YAXISNAME") ("SET_YDIMNAME") ("SMOOTH") ("WEIG")))18 ("call_interp2d" fun nil (lib "file_interp.pro" nil "saxo") "Result = %s(data, inlon, inlat, inmask, outlon, outlat)" (nil ("_EXTRA") ("ADDR") ("INIRR") ("METHOD") ("MISSING_VALUE") ("SMOOTH") ("WEIG"))) 19 ("file_interp" pro nil (lib "file_interp.pro" nil "saxo") "%s, filein, fileout, gridout" (nil ("_EXTRA") ("ADDR") ("GRIDIN") ("INADDSCL_BEFORE") ("ININVMASK") ("INMASKNAME") ("INMISSING_VALUE") ("INTESTOP") ("INUSEASMASK") ("INXAXISNAME") ("INYAXISNAME") ("KEEP") ("MASKIN") ("MASKOUT") ("METHOD") ("MISSING_VALUE") ("OUTADDSCL_BEFORE") ("OUTINVMASK") ("OUTMASKNAME") ("OUTMISSING_VALUE") ("OUTTESTOP") ("OUTUSEASMASK") ("OUTXAXISNAME") ("OUTYAXISNAME") ("REMOVE") ("SET_XAXISNAME") ("SET_XDIMNAME") ("SET_YAXISNAME") ("SET_YDIMNAME") ("SMOOTH") ("WEIG"))) 20 20 ("fromirr" fun nil (lib "fromirr.pro" nil "saxo") "Result = %s(method, datain, lonin, latin, mskin, lonout, latout, mskout)" (nil ("_EXTRA") ("ADDR") ("WEIG"))) 21 21 ("fromreg" fun nil (lib "fromreg.pro" nil "saxo") "Result = %s(method, datain, lonin, latin, lonout, latout)" (nil ("_EXTRA") ("ADDR") ("NONORTHERNLINE") ("NOSOUTHERNLINE") ("WEIG"))) -
trunk/SRC/ReadWrite/.idlwave_catalog
r338 r363 8 8 '(("ncdf_getatt" pro nil (lib "ncdf_getatt.pro" nil "saxo") "%s, fileid, varid" (nil ("_extra") ("ADD_OFFSET") ("CALENDAR") ("DOUBLE") ("LONG_NAME") ("MISSING_VALUE") ("SCALE_FACTOR") ("STANDARD_NAME") ("UNITS"))) 9 9 ("ncdf_getaxis" pro nil (lib "ncdf_getaxis.pro" nil "saxo") "%s, fileid, dimidx, dimidy, xaxis, yaxis" (nil ("_EXTRA") ("ROMSGRID") ("START1") ("XAXISNAME") ("XDIMNAME") ("XYINDEX") ("YAXISNAME") ("YDIMNAME"))) 10 ("ncdf_getmask" fun nil (lib "ncdf_getmask.pro" nil "saxo") "Result = %s(fileid)" (nil ("_EXTRA") ("ADDSCL_BEFORE") ("INVMASK") ("MASKNAME") ("MISSING_VALUE") (" USEASMASK")))10 ("ncdf_getmask" fun nil (lib "ncdf_getmask.pro" nil "saxo") "Result = %s(fileid)" (nil ("_EXTRA") ("ADDSCL_BEFORE") ("INVMASK") ("MASKNAME") ("MISSING_VALUE") ("TESTOP") ("USEASMASK"))) 11 11 ("ncdf_gettime" fun nil (lib "ncdf_gettime.pro" nil "saxo") "Result = %s(filename, cdfid)" (nil ("_EXTRA") ("CALLER") ("ERR") ("TIMEVAR"))) 12 12 ("read_grads" fun nil (lib "read_grads.pro" nil "saxo") "Result = %s(var, date1, date2)" (nil ("_EXTRA") ("BOX") ("EVERYTHING") ("FILENAME") ("NOSTRUCT") ("TIMESTEP"))) -
trunk/SRC/ToBeReviewed/PLOTS/DIVERS/.idlwave_catalog
r288 r363 9 9 ("autoscale" pro nil (lib "autoscale.pro" nil "saxo") "%s, min, max, ci" (nil)) 10 10 ("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"))) 12 12 ("err_1d" fun nil (lib "checkfield.pro" nil "saxo") "Result = %s(type, n1, name, n2)" (nil)) 13 13 ("err_2d" fun nil (lib "checkfield.pro" nil "saxo") "Result = %s(type, sz, nx, ny, nz)" (nil)) -
trunk/SRC/ToBeReviewed/STRING/.idlwave_catalog
r288 r363 8 8 '(("chkeywd" fun nil (lib "chkeywd.pro" nil "saxo") "Result = %s(stringin, keywdname, keywdvalue)" (nil ("AFTER") ("SEPARATOR"))) 9 9 ("delchr" fun nil (lib "delchr.pro" nil "saxo") "Result = %s(old, c)" (nil ("HELP"))) 10 ("getfile" fun nil (lib "getfile.pro" nil "saxo") "Result = %s(filein)" (nil (" error") ("FIND") ("HELP") ("LINES") ("QUIET")))10 ("getfile" fun nil (lib "getfile.pro" nil "saxo") "Result = %s(filein)" (nil ("ERROR") ("FIND") ("HELP") ("LINES") ("QUIET"))) 11 11 ("getwrd" fun nil (lib "getwrd.pro" nil "saxo") "Result = %s(txtstr, nth, mth)" (nil ("DELIMITER") ("HELP") ("LAST") ("LOCATION") ("NOTRIM") ("NWORDS"))) 12 12 ("isnumber" fun nil (lib "isnumber.pro" nil "saxo") "Result = %s(txt0, x)" (nil ("HELP")))
Note: See TracChangeset
for help on using the changeset viewer.