Changeset 238
- Timestamp:
- 03/27/07 15:43:18 (17 years ago)
- Location:
- trunk/SRC
- Files:
-
- 92 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/Calendar/caldat.pro
r231 r238 36 36 ; see also the use of key_caltype (variable of the common file cm_4cal) 37 37 ; 38 ; @uses cm_4cal 38 ; @uses 39 ; cm_4cal 39 40 ; 40 41 ; @restrictions … … 61 62 ; @version 62 63 ; $Id$ 64 ; 63 65 ;- 64 66 ; 65 pro caldat, julian, month, day, year, hour, minute, second, NDAYSPM = ndayspm 67 PRO caldat, julian, month, day, year, hour, minute, second, NDAYSPM = ndayspm 68 ; 69 compile_opt idl2, strictarrsubs 66 70 ; 67 71 @cm_4cal 68 72 ; 69 compile_opt idl2, strictarrsubs70 71 73 ON_ERROR, 2 ; Return to caller if errors 72 74 -
trunk/SRC/Calendar/date2jul.pro
r231 r238 1 1 ;+ 2 2 ; 3 ; @file_comments 3 ; @file_comments 4 4 ; gives Julian day equivalent of a date in yyyymmdd format 5 5 ; … … 14 14 ; if 50 <= year <= 99 --> year = 1900 + year 15 15 ; 16 ; @returns 16 ; @returns 17 17 ; date in Julian day 18 18 ; … … 25 25 ; 1 26 26 ; 27 ; @history 27 ; @history 28 28 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) June 2005 29 29 ; … … 46 46 ;------------------------------------------------------------ 47 47 IF array_equal(date, long(date)) THEN return, julday(month, day, year) 48 48 49 49 fraction = date - long(date) 50 50 hour = floor(fraction * 24d) … … 52 52 minute = floor(fraction*1440d) 53 53 second = (TEMPORARY(fraction) - minute/1440d) * 86400d 54 54 55 55 return, julday(month, day, year, hour, minute, second) 56 56 -
trunk/SRC/Calendar/date2string.pro
r231 r238 24 24 ; JAN 23, 1990 25 25 ; 26 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 26 ; @history 27 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 27 28 ; Creation ??? 28 29 ; update/review June 2005 Sebastien Masson. -
trunk/SRC/Calendar/daysinmonth.pro
r231 r238 4 4 ; give the number of days in a specific month 5 5 ; 6 ; @categories 6 ; @categories 7 7 ; Calendar 8 8 ; … … 15 15 ; month number 16 16 ; 17 ; @returns 17 ; @returns 18 18 ; number of days in a month or -1 in case of error 19 19 ; 20 ; @uses 21 ; cm_4cal, updatenew 20 ; @uses 21 ; cm_4cal 22 ; updatenew 22 23 ; 23 24 ; @examples 24 25 ; IDL> ndays = daysinmonth(2, 2000) 25 26 ; 26 ; @history 27 ; @history 27 28 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 28 29 ; 2/7/98 29 30 ; update/review/english/new commons: June 2005 Sebastien Masson. 30 31 ; 31 ; @version 32 ; @version 32 33 ; $Id$ 33 34 ; -
trunk/SRC/Calendar/leapyr.pro
r231 r238 6 6 ; eg. NUM_DAYS_IN_YR = 365 + leapyr(year) 7 7 ; 8 ; @categories 8 ; @categories 9 9 ; Calendar 10 10 ; … … 12 12 ; year to be tested as a leap year. 13 13 ; 14 ; @returns 14 ; @returns 15 15 ; 0 then not a leap year, 1 then year is a leap year 16 16 ; with the same number of elements than year. -
trunk/SRC/Colors/newpalette.pro
r232 r238 21 21 ; Used to pass keywords to <proidl>modifyct</proidl> 22 22 ; 23 ; @history 23 ; @history 24 24 ; Guillaume Roulet (gr\@lodyc.jussieu.fr) 25 25 ; 30/3/1999 s.masson, add _extra, research of the full name, OVER -
trunk/SRC/Colors/xpal.pro
r237 r238 12 12 ;- 13 13 ; 14 functionxp_new_colors14 FUNCTION xp_new_colors 15 15 ; 16 16 compile_opt idl2, strictarrsubs … … 33 33 return, res 34 34 end 35 36 ;+ 37 ; @hidden 38 ;- 39 pro xp_alert_caller 35 ; 36 ;+ 37 ; 38 ; @hidden 39 ; 40 ;- 41 ; 42 PRO xp_alert_caller 40 43 ; 41 44 compile_opt idl2, strictarrsubs … … 61 64 endif 62 65 end 63 ; XP_XLCTCALLBACK: For visuals with static colormaps, update the graphics 64 ; after a change by XLOADCT. 65 ;+ 66 ; @hidden 67 ;- 68 pro xp_xlctcallback 66 ;+ 67 ; 68 ; For visuals with static colormaps, update the graphics 69 ; after a change by <proidl>XLOADCT</proidl>. 70 ; 71 ; @hidden 72 ; 73 ;- 74 ; 75 PRO xp_xlctcallback 69 76 ; 70 77 compile_opt idl2, strictarrsubs … … 76 83 77 84 end 78 79 ;+ 80 ; @hidden 81 ;- 82 pro xp_redraw 85 ; 86 ;+ 87 ; 88 ; @hidden 89 ; 90 ;- 91 ; 92 PRO xp_redraw 83 93 ; 84 94 compile_opt idl2, strictarrsubs … … 94 104 end 95 105 96 ; XP_REPLOT: Re-draw the RGB plots. Type has the following possible values. 106 ;+ 107 ; 108 ; @hidden 109 ; 110 ; @file_comments 111 ; Re-draw the RGB plots. 112 ; 113 ; @param color_index 114 ; 115 ; @param type 116 ; Type has the following possible values. 97 117 ; - 'D': Draw the data part of all three plots 98 118 ; - 'F': draw all three plots 99 119 ; - 'R': Draw the data part of the Red plot 100 120 ; - 'G': Draw the data part of the Green plot 101 ; - 'B': Draw the data part of the Blue plot 102 ;+ 103 ; @param color_index 104 ; ??? 105 ; @param type 106 ; ??? 107 ; 108 ; @hidden 109 ;- 110 pro xp_replot, color_index, type 121 ; 122 ;- 123 ; 124 PRO xp_replot, color_index, type 111 125 ; 112 126 compile_opt idl2, strictarrsubs … … 179 193 180 194 end 181 182 183 184 ; XP_CHANGE_COLOR: Change current color. Type has the following possible values. 195 ; 196 ;+ 197 ; 198 ; @hidden 199 ; 200 ; @file_comments 201 ; Change current color. 202 ; 203 ; @param type 204 ; Type has the following possible values. 185 205 ; - 'R': Change the R part of the current color 186 206 ; - 'G': ... 187 207 ; - 'B': ... 188 ;+ 189 ; 190 ; @param type 191 ; ??? 208 ; 192 209 ; @param value 193 ; ??? 194 ; 195 ; @hidden 196 ;- 197 pro xp_change_color, type, value 210 ; 211 ;- 212 ; 213 PRO xp_change_color, type, value 198 214 ; 199 215 compile_opt idl2, strictarrsubs … … 237 253 end 238 254 ;+ 255 ; 239 256 ; @param event 240 ; ??? 241 ; @hidden 242 ;- 243 pro xp_button_event, event 257 ; 258 ; @hidden 259 ; 260 ;- 261 ; 262 PRO xp_button_event, event 244 263 ; 245 264 compile_opt idl2, strictarrsubs … … 357 376 358 377 ;+ 359 ; @hidden 378 ; 379 ; @hidden 380 ; 360 381 ; @param ev 361 ; ??? 362 ;- 382 ; 383 ;- 384 ; 363 385 PRO xp_button_event_event, ev 364 386 ; … … 383 405 384 406 END 385 386 387 388 389 ;+ 407 ; 408 ;+ 409 ; 390 410 ; @param event 391 ; ??? 392 ; @hidden 393 ;- 394 395 pro xp_event, event 411 ; 412 ; @hidden 413 ; 414 ;- 415 ; 416 PRO xp_event, event 396 417 ; 397 418 compile_opt idl2, strictarrsubs … … 435 456 436 457 END 437 458 ; 438 459 ;+ 439 460 ; 440 461 ; @file_comments 441 462 ; Like <proidl>xpalette</proidl> but shorter to write and, moreover, 442 ; possess a hotkey save which (thanks to the newpaletteroutine)463 ; possess a hotkey save which (thanks to the <pro>newpalette</pro> routine) 443 464 ; allows to save the routine that we have just done. Comment: when we 444 ; press the predefined hotkey, it calls <pro>xlct</pro> instead of 465 ; press the predefined hotkey, it calls <pro>xlct</pro> instead of 445 466 ; <proidl>xloadct</proidl> 446 467 ; No explicit inputs. The current color table is used as a starting point. … … 449 470 ; Color, Widget 450 471 ; 451 ; @uses XP_COM452 ; Private to this module.472 ; @uses 473 ; XP_COM Private to this module. 453 474 ; 454 475 ; @restrictions -
trunk/SRC/Commons/cm_4cal.pro
r231 r238 1 1 ;+ 2 2 ; 3 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 3 ; @history 4 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 4 5 ; June 2005 5 6 ;- … … 12 13 ; = 'noleap' : no leap year calendar (always 365 days) 13 14 COMMON key_calendar, key_caltype 14 ;15 16 -
trunk/SRC/Commons/cm_4data.pro
r231 r238 1 1 ;+ 2 2 ; 3 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 3 ; @history 4 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 4 5 ; June 2005 5 6 ;- … … 11 12 COMMON global_data_coord, jpidta, jpjdta, jpkdta 12 13 ; 13 ; domains positions regarding to the original grid 14 ; domains positions regarding to the original grid 14 15 ; 15 16 COMMON zoom_data, ixmindta, ixmaxdta, iymindta $ … … 22 23 ; 23 24 COMMON xxx_readparameters, ccreadparameters 24 25 26 27 -
trunk/SRC/Commons/cm_4mesh.pro
r231 r238 1 1 ;+ 2 2 ; 3 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 3 ; @history 4 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 4 5 ; June 2005 5 6 ;- … … 12 13 COMMON global_mesh_coord, jpiglo, jpjglo, jpkglo 13 14 ; 14 ; domains positions regarding to the original grid 15 ; domains positions regarding to the original grid 15 16 ; 16 17 COMMON zoom_mesh, ixminmesh, ixmaxmesh $ … … 18 19 ; 19 20 ; mesh related coordinates 20 ; see OPA manual 21 ; see OPA manual 21 22 COMMON longitudes, glamf, glamt, glamu, glamv 22 23 COMMON latitudes, gphif, gphit, gphiu, gphiv … … 50 51 COMMON liees_a_triangule, triangles_list, twin_corners_up, twin_corners_dn 51 52 ; 52 53 54 55 -
trunk/SRC/Commons/cm_4ps.pro
r231 r238 1 1 ;+ 2 2 ; 3 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 3 ; @history 4 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 4 5 ; June 2005 5 6 ;- -
trunk/SRC/Commons/cm_general.pro
r157 r238 1 1 ;+ 2 2 ; 3 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 3 ; @history 4 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 4 5 ; June 2005 5 6 ;- -
trunk/SRC/Computation/curl.pro
r231 r238 20 20 ; 21 21 ; @keyword DIREC {type=scalar string} 22 ; Use if you want to call moyenne or grossemoyenne after the div computation 22 ; Use if you want to call <pro>moyenne</pro> or 23 ; <pro>grossemoyenne</pro> after the div computation 23 24 ; with a mean done in the DIREC direction 24 25 ; 25 ; @returns RES26 ; @returns 26 27 ; the vertical component of the curl of the input data (with the same size) 27 28 ; 28 29 ; @uses 29 ; cm_4cal, cm_4data, cm_4mmesh 30 ; cm_4cal 31 ; cm_4data 32 ; cm_4mmesh 30 33 ; 31 34 ; @restrictions … … 59 62 ; @todo 60 63 ; code the 4d case 64 ; 61 65 ;- 62 66 ; -
trunk/SRC/Computation/div.pro
r231 r238 20 20 ; 21 21 ; @keyword DIREC {type=scalar string} 22 ; Use if you want to call moyenne or grossemoyenne after the div computation 22 ; Use if you want to call <pro>moyenne</pro> or 23 ; <pro>grossemoyenne</pro> after the div computation 23 24 ; (stupid ?) with a mean done in the DIREC direction 24 25 ; 25 ; @returns RES26 ; @returns 26 27 ; the divergence of the input data (with the same size) 27 28 ; 28 29 ; @uses 29 ; cm_4cal, cm_4data, cm_4mmesh 30 ; cm_4cal 31 ; cm_4data 32 ; cm_4mmesh 30 33 ; 31 34 ; @restrictions … … 38 41 ; T, U, V and F grids, it is possible that these two arrays do not have the same 39 42 ; size and refer to different indexes. In this case, arrays are re-cut on 40 ; common indexes. To avoid these re-cuts, use the keyword /memeindice in 43 ; common indexes. To avoid these re-cuts, use the keyword /memeindice in 41 44 ; <pro>domdef</pro> 42 45 ; - When computing the divergence, we update, vargrid, varname, varunits and the … … 58 61 ; @todo 59 62 ; code the 4d case 63 ; 60 64 ;- 61 65 ; -
trunk/SRC/Computation/grad.pro
r232 r238 8 8 ; 9 9 ; @param FIELD 10 ; The field for which we want to compute the gradient. 10 ; The field for which we want to compute the gradient. A 2D (xy), 11 11 ; 3D (xyz or yt) or 4D (xyzt) array or a structure readable by litchamp 12 12 ; and containing a 2D (xy), 3D (xyz or yt) or 4D (xyzt) array. … … 16 16 ; the gradient direction: 'x', 'y', 'z' 17 17 ; 18 ; @returns RES {type=2D, 3D or 4D array}19 ; the gradient of the input data (with the same size)18 ; @returns 19 ; the gradient of the input data with the same size 2D, 3D or 4D array 20 20 ; 21 21 ; @uses 22 ; cm_4cal, cm_4data, cm_4mmesh 22 ; cm_4cal 23 ; cm_4data 24 ; cm_4mmesh 23 25 ; 24 26 ; @restrictions -
trunk/SRC/ForOldVersion/keep_compatibility.pro
r232 r238 7 7 ; 4) copy oldcm_full(_empty) to myuniquetmpdir+'oldcm_used.pro' 8 8 ; 9 ; @categories 9 ; @categories 10 10 ; Compatibility 11 11 ; 12 ; @param flag {in}{optional} 1 or 0 to keep or forget the compatibility 12 ; @param flag {in}{optional} 13 ; 1 or 0 to keep or forget the compatibility 13 14 ; 14 ; @uses cm_general 15 ; @uses 16 ; cm_general 15 17 ; 16 18 ; @restrictions … … 21 23 ; IDL> keep_compatibility,0 22 24 ; 23 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 25 ; @history 26 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 24 27 ; June 2005 25 28 ; 26 ; @version $Id$ 29 ; @version 30 ; $Id$ 27 31 ; 28 32 ;- 29 33 ; 30 34 PRO keep_compatibility, flag 31 ;32 35 ; 33 36 compile_opt idl2, strictarrsubs … … 105 108 ENDIF 106 109 ; 107 ; merge the online_help if possible.. 110 ; merge the online_help if possible... 108 111 ; 109 112 mergeonline_help -
trunk/SRC/ForOldVersion/oldcm_empty.pro
r122 r238 1 1 ;+ 2 2 ; 3 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 3 ; @history 4 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 4 5 ; June 2005 5 ; @version $Id$ 6 ; @version 7 ; $Id$ 8 ; 6 9 ;- 7 10 ; -
trunk/SRC/ForOldVersion/oldcm_full.pro
r122 r238 1 1 ;+ 2 2 ; 3 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 3 ; @history 4 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 4 5 ; 14/8/98 5 ; @version $Id$ 6 ; @version 7 ; $Id$ 6 8 ;- 7 9 ; -
trunk/SRC/ForOldVersion/updatekwd.pro
r231 r238 7 7 ; @categories compatibility with previous version 8 8 ; 9 ; @examples 9 ; @examples 10 10 ; IDL> \@updatekwd 11 ; (must be insert as an include in a procedure or function) 11 ; (must be insert as an include in a procedure or function) 12 12 ; 13 13 ; @restrictions the compatibility can be made only if the keyword 14 14 ; given through _extra are given with their complete name 15 15 ; 16 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 16 ; @history 17 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 17 18 ; July 2005 18 ; @version $Id$ 19 ; @version 20 ; $Id$ 19 21 ; 20 22 ;- … … 41 43 old = strtrim(strlowcase(old[1:*]), 2) 42 44 new = strtrim(strlowcase(new[1:*]), 2) 43 ; 45 ; 44 46 ; what are the keywords of the present routine? 45 47 ; … … 64 66 FOR i = 0, n_elements(alltags)-1 DO BEGIN 65 67 isold = (where(old EQ alltags[i], count))[0] 66 IF count EQ 1 THEN BEGIN 68 IF count EQ 1 THEN BEGIN 67 69 dummy = where(kwds EQ new[isold], count) 68 IF count EQ 1 THEN BEGIN 70 IF count EQ 1 THEN BEGIN 69 71 dummy = execute(new[isold] + ' = ex.' + alltags[i]) 70 72 ; dummy = execute('ex = get_extra(' + new[isold] + ' = ex.' $ -
trunk/SRC/ForOldVersion/updatenew.pro
r232 r238 6 6 ; check that key_forgetold and keep_compatibility are well defined... 7 7 ; 8 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 8 ; @history 9 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 9 10 ; June 2005 10 ; @version $Id$ 11 ; @version 12 ; $Id$ 11 13 ;- 12 14 ; -
trunk/SRC/ForOldVersion/updateold.pro
r232 r238 4 4 ; check that key_forgetold and keep_compatibility are well defined... 5 5 ; 6 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 6 ; @history 7 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 7 8 ; 14/8/98 8 ; @version $Id$ 9 ; @version 10 ; $Id$ 9 11 ; 10 12 ;- -
trunk/SRC/Grid/changemsk.pro
r232 r238 15 15 ; 16 16 ; @returns 17 ; newmskthe new 2D land-sea mask17 ; the new 2D land-sea mask 18 18 ; 19 19 ; @examples … … 31 31 ;- 32 32 ; 33 functionchangemsk,tab, CELLSIZE = cellsize33 FUNCTION changemsk,tab, CELLSIZE = cellsize 34 34 ; 35 35 compile_opt idl2, strictarrsubs … … 82 82 return, newmsk 83 83 end 84 -
trunk/SRC/Grid/checkperio.pro
r236 r238 45 45 ; 46 46 PRO checkperio, file, WRITE = write 47 47 ; 48 compile_opt idl2, strictarrsubs 49 ; 48 50 IF file_test(file) EQ 0 THEN BEGIN 49 51 ras = report( 'file '+file+' not found') -
trunk/SRC/Grid/computegrid.pro
r237 r238 128 128 ; Specify latitudes in this case starty, stepy and ny are not used but 129 129 ; starty and stepy could be necessary if the x axis is not defined with 130 ; xaxis. It must be sorted in the increasing or dec easing order (along each column if 2d array).130 ; xaxis. It must be sorted in the increasing or decreasing order (along each column if 2d array). 131 131 ; 132 132 ; @keyword XYINDEX activate to specify that the horizontal grid should … … 209 209 ; 210 210 ; @keyword ZAXIS {type=1D} 211 ; Specify the vertical axis. Must be sorted in the increasing or dec easing order211 ; Specify the vertical axis. Must be sorted in the increasing or decreasing order 212 212 ; 213 213 ; @keyword _EXTRA 214 214 ; not used in the present case ... 215 215 ; 216 ; @uses 217 ; cm_4mesh cm_4data cm_4cal 218 ; 219 ; @restrictions 216 ; @uses 217 ; cm_4mesh 218 ; cm_4data 219 ; cm_4cal 220 ; 221 ; @restrictions 220 222 ; if the grid has x/y periodicity overlap and/or if 221 223 ; the mask has 0 everywhere at the border (like a closed sea) and … … 226 228 ; to use cell_fill = 1). 227 229 ; 228 ; @restrictions229 230 ; FUV points definition is not exact if the grid is irregular 230 231 ; -
trunk/SRC/Grid/micromeshmask.pro
r237 r238 10 10 ; 11 11 ; @param inid {in}{required} 12 ; 12 13 ; @param outid {in}{required} 14 ; 13 15 ; @param inname {in}{required} 16 ; 14 17 ; @param outname {in}{optional} 15 18 ; … … 43 46 ; xxx.mask.nc. In that case, the meshmask is split into 3 files. 44 47 ; 45 ; @param ncfileout {in}{optional} the name of the uniq reduced meshmask file. 46 ; default definition is micromeshmask.nc 47 ; 48 ; @keyword IODIR to define the files path. 48 ; @param ncfileout {in}{optional} {default='micromeshmask.nc'} 49 ; the name of the uniq reduced meshmask file. 50 ; 51 ; @keyword IODIR 52 ; to define the files path. 49 53 ; 50 54 ; @examples -
trunk/SRC/Grid/n128gaussian.pro
r231 r238 11 11 ; IDL> lat=n128gaussian() 12 12 ; 13 ; @returns a 1d array 13 ; @returns 14 ; a 1d array 14 15 ; 15 16 ; @history … … 23 24 ; 24 25 FUNCTION n128gaussian 25 ;26 26 ; 27 27 compile_opt idl2, strictarrsubs -
trunk/SRC/Grid/n160gaussian.pro
r231 r238 9 9 ; 10 10 ; @examples 11 ; IDL> lat=n160gaussian()11 ; IDL> lat=n160gaussian() 12 12 ; 13 ; @returns a 1d array 13 ; @returns 14 ; a 1d array 14 15 ; 15 16 ; @history … … 23 24 ; 24 25 FUNCTION n160gaussian 25 ;26 26 ; 27 27 compile_opt idl2, strictarrsubs -
trunk/SRC/Grid/n256gaussian.pro
r231 r238 11 11 ; IDL> lat=n256gaussian() 12 12 ; 13 ; @returns a 1d array 13 ; @returns 14 ; a 1d array 14 15 ; 15 16 ; @history … … 23 24 ; 24 25 FUNCTION n256gaussian 25 ;26 26 ; 27 27 compile_opt idl2, strictarrsubs -
trunk/SRC/Grid/n48gaussian.pro
r231 r238 11 11 ; IDL> lat=n48gaussian() 12 12 ; 13 ; @returns a 1d array 13 ; @returns 14 ; a 1d array 14 15 ; 15 16 ; @history … … 23 24 ; 24 25 FUNCTION n48gaussian 25 ;26 26 ; 27 27 compile_opt idl2, strictarrsubs -
trunk/SRC/Grid/n80gaussian.pro
r232 r238 1 1 ;+ 2 2 ; 3 ; @file_comments 3 ; @file_comments 4 4 ; compute the latitudes of the n80 gaussian grid. See: 5 5 ; <a href="http://www.ecmwf.int/products/data/technical/gaussian/n80FIS.html">Gaussian 80</a> … … 11 11 ; IDL> lat=n80gaussian() 12 12 ; 13 ; @returns a 1d array 13 ; @returns 14 ; a 1d array 14 15 ; 15 16 ; @history … … 23 24 ; 24 25 FUNCTION n80gaussian 25 ;26 26 ; 27 27 compile_opt idl2, strictarrsubs -
trunk/SRC/Grid/numbisland.pro
r231 r238 1 1 ;+ 2 ; 2 3 ; @hidden 3 4 ; … … 24 25 ; 25 26 PRO mskneig, msk, nx, ny, indin, numb 27 ; 28 compile_opt idl2, strictarrsubs 29 ; 26 30 ; flag the point 27 31 msk[indin] = numb … … 33 37 ; build 1d index 34 38 ind = temporary(indx)#replicate(1L, 3) + replicate(nx, 3)#temporary(indy) 35 ; for each neighbourg son the same island, call again mskneig39 ; for each neighbourg on the same island, call again mskneig 36 40 FOR i = 0, n_elements(ind)-1 DO BEGIN 37 41 IF msk[ind[i]] EQ 0 THEN mskneig, msk, nx, ny, ind[i], numb … … 40 44 return 41 45 END 42 46 ; 43 47 ;+ 48 ; 44 49 ; @file_comments 45 ; given a 2D land-se mask, give a number to each islands50 ; given a 2D land-sea mask, give a number to each island 46 51 ; 47 52 ; @categories … … 67 72 ; @version 68 73 ; $Id$ 74 ; 69 75 ;- 70 76 ; 71 77 FUNCTION numbisland, mskin 72 time1 = systime(1) ; performance measurment 78 ; 79 compile_opt idl2, strictarrsubs 80 ; 81 time1 = systime(1) ; performance measurement 73 82 szmsk = size(reform(mskin)) 74 83 IF szmsk[0] NE 2 THEN stop -
trunk/SRC/Grid/restoreboxparam.pro
r231 r238 5 5 ; previously defined by <pro>saveboxparam</pro> 6 6 ; 7 ; @param filename {in}{required} 8 ; a scalar string definingthe file name7 ; @param filename {in}{required}{type= scalar string} 8 ; the file name 9 9 ; 10 10 ; @uses -
trunk/SRC/Grid/romsdepth.pro
r231 r238 12 12 ; 13 13 ; @uses 14 ; cm_4mesh cm_4data 14 ; cm_4mesh 15 ; cm_4data 15 16 ; 16 17 ; @restrictions … … 22 23 ; @version 23 24 ; $Id$ 25 ; 24 26 ;- 25 27 ; 26 28 FUNCTION romsdepth 29 ; 30 compile_opt idl2, strictarrsubs 27 31 ; 28 32 @cm_4mesh -
trunk/SRC/Grid/saveboxparam.pro
r231 r238 6 6 ; (common variable defined by def_myuniquetmpdir) 7 7 ; 8 ; @param filename {in}{required} 9 ; a scalar string definingthe file name8 ; @param filename {in}{required} {type=scalar string} 9 ; the file name 10 10 ; 11 11 ; @uses -
trunk/SRC/Grid/smallmeshmask.pro
r236 r238 5 5 ; 6 6 ; @param inid {in}{required} 7 ; 7 8 ; @param outid {in}{required} 9 ; 8 10 ; @param inname {in}{required} 11 ; 9 12 ; @param outname {in}{optional} 10 13 ; … … 28 31 ; 29 32 ;+ 33 ; 30 34 ; @file_comments 31 35 ; Reduce the size of the NetCDF meshmask created by OPA by … … 33 37 ; fields. 34 38 ; 35 ; @keyword IODIR to define the files path. 39 ; @keyword IODIR 40 ; to define the files path. 41 ; 36 42 ; @param ncfilein {in}{required} 37 43 ; 1) the name of the meshmask file to be reduced. In that case, … … 60 66 ; 61 67 ;- 68 ; 62 69 PRO smallmeshmask, ncfilein, ncfileout, IODIR = iodir 63 ;64 70 ; 65 71 compile_opt idl2, strictarrsubs -
trunk/SRC/Interpolation/angle.pro
r236 r238 39 39 END 40 40 ;+ 41 ; @file_comments Compute angles between grid lines and direction of the North pole 41 ; 42 ; @file_comments 43 ; Compute angles between grid lines and direction of the North pole 42 44 ;(fom angle.F,v 2.2 in OPA8.2) 43 45 ; … … 92 94 ; @version 93 95 ; $Id$ 96 ; 94 97 ;- 95 98 ; … … 97 100 , IODIRECTORY = iodirectory, DOUBLE = double 98 101 ; 102 compile_opt idl2, strictarrsubs 103 ; 99 104 ; 0. read oceanic grid parameters 100 105 ; ================================ 101 ;102 ;103 compile_opt idl2, strictarrsubs104 106 ; 105 107 IF keyword_set(IODIRECTORY) THEN BEGIN -
trunk/SRC/Interpolation/clickincell.pro
r232 r238 8 8 ; 9 9 ; @keyword CELLTYPE 10 ; = 'T', 'W', 'U', 'V' or 'F' This this the type of point 10 ; = 'T', 'W', 'U', 'V' or 'F' 11 ; the type of point 11 12 ; that is located in the center of the cell which the click is 12 13 ; located. default is T type of cell (with corner defined by F … … 28 29 ; 29 30 ; @keyword _EXTRA 30 ; Used to pass extra keywords to <pro>inquad</pro> and 31 ; Used to pass extra keywords to <pro>inquad</pro> and 31 32 ; <proidl>plot</proidl> 32 33 ; (when /drawcell) -
trunk/SRC/Interpolation/compute_fromirr_bilinear_weigaddr.pro
r236 r238 49 49 ; and the weight is redistributed on the remaining "water" corners 50 50 ; - points located out of the southern and northern boundaries or in cells 51 ; containing only land points are set the thesame value as their closest neighbor51 ; containing only land points are set the same value as their closest neighbor 52 52 ; 53 53 ; @history -
trunk/SRC/Interpolation/compute_fromreg_bilinear_weigaddr.pro
r232 r238 39 39 ; @restrictions 40 40 ; - the input grid must be a "regular grid", defined as a grid for which each 41 ; longitude s lines have the same latitude and each latitudescolumns have the41 ; longitude lines have the same latitude and each latitude columns have the 42 42 ; same longitude. 43 43 ; - We supposed the data are located on a sphere, with a periodicity along … … 123 123 , checkout = [alon[jpia-1L], alat[jpja-1L]], /output2d) 124 124 ; checks... 125 ; for longitude, each ocean point smust be located in atm cell.125 ; for longitude, each ocean point must be located in atm cell. 126 126 IF (where(pos[0, *] EQ -1))[0] NE -1 THEN stop 127 127 ; no ocean point should be located westward of the left boundary of the … … 134 134 ; we use bilinear interpolation 135 135 ; 136 ; we change the coordinates of each ocean point sto fit into a136 ; we change the coordinates of each ocean point to fit into a 137 137 ; rectangle defined by: 138 138 ; … … 239 239 return 240 240 end 241 -
trunk/SRC/Interpolation/compute_fromreg_imoms3_weigaddr.pro
r231 r238 39 39 ; @restrictions 40 40 ; - the input grid must be a "regular/rectangular grid", defined as a grid for 41 ; which each longitude s lines have the same latitude and each latitudescolumns41 ; which each longitude lines have the same latitude and each latitude columns 42 42 ; have the same longitude. 43 43 ; - We supposed the data are located on a sphere, with a periodicity along -
trunk/SRC/Interpolation/extrapolate.pro
r236 r238 2 2 ; 3 3 ; @file_comments 4 ; extrapolate data (zinput) where maskinput eq 0 by filling step by4 ; extrapolate data (zinput) where maskinput equal 0 by filling step by 5 5 ; step the coastline points with the mean value of the 8 neighbourgs 6 6 ; (weighted by their mask value). … … 33 33 ; put 1 to force the extrapolated values to be larger than 0, same as using minval=0. 34 34 ; 35 ; @returns {type=2d array}36 ; the extrapolated array35 ; @returns 36 ; the extrapolated 2d array 37 37 ; 38 38 ; @examples … … 114 114 ; find the coastline points... 115 115 ;--------------------------------------------------------------- 116 ; Once the land points list has been found, we change back the the116 ; Once the land points list has been found, we change back the 117 117 ; mask values for the boundary conditions. 118 118 msk[0, *] = 0b … … 163 163 IF n_elements(maxval) NE 0 THEN zcoast = temporary(zcoast) < maxval 164 164 z[coast] = temporary(zcoast)/temporary(weight) 165 ; we update the theboundary conditions of z165 ; we update the boundary conditions of z 166 166 if keyword_set(x_periodic) then begin 167 167 z[0, *] = z[nx, *] … … 191 191 return, z[1:nx, 1:ny] 192 192 END 193 -
trunk/SRC/Interpolation/extrapsmooth.pro
r236 r238 2 2 ; 3 3 ; @file_comments 4 ; similar to extrapolate but could to the job in a better way because the 5 ; extrapolated values are smoothed... takes more time than extrapolate. 6 ; extrapolate data where mskin eq 0 by filling 4 ; similar to <pro>extrapolate</pro> but could to the job in a better way 5 ; because the ; extrapolated values are smoothed... 6 ; takes more time than <pro>extrapolate</pro>. 7 ; extrapolate data where mskin is equal 0 by filling 7 8 ; step by step the coastline points with the mean value of the 8 neighbourgs. 8 9 ; -
trunk/SRC/Interpolation/fromirr.pro
r236 r238 9 9 ; 10 10 ; @param method {in}{required}{type=string} 11 ; a string definingthe interpolation method. must be 'bilinear'11 ; the interpolation method. must be 'bilinear' 12 12 ; 13 13 ; @param datain {in}{required}{type=2d array} 14 ; a 2D arraythe input data to interpolate14 ; the input data to interpolate 15 15 ; 16 16 ; @param lonin {in}{required}{type=2d array} 17 ; a 2D array definingthe longitude of the input data17 ; the longitude of the input data 18 18 ; 19 19 ; @param latin {in}{required}{type=2d array} 20 ; a 2D array definingthe latitude of the input data.20 ; the latitude of the input data. 21 21 ; 22 22 ; @param mskin {in}{required}{type=2d array or -1} … … 25 25 ; 26 26 ; @param lonout {in}{required}{type=1d or 2d array} 27 ; 1D or 2D array definingthe longitude of the output data.27 ; the longitude of the output data. 28 28 ; 29 29 ; @param latout {in}{required}{type=1d or 2d array} 30 ; 1D or 2D array definingthe latitude of the output data.30 ; the latitude of the output data. 31 31 ; 32 32 ; @param mskout {in}{required}{type=2d array or -1} … … 73 73 ; IDL> help, a, b 74 74 ; 75 ; 2) use a and b that are now defined to bypass the computation of the weights and addresses76 ; and speed-up the computation!75 ; 2) use a and b that are now defined to bypass the computation of the weights 76 ; and addresses and speed-up the computation! 77 77 ; 78 78 ; IDL> t2ncep = fromirr('bilinear', topa, WEIG = a, ADDR = b) -
trunk/SRC/Interpolation/fromreg.pro
r236 r238 4 4 ; interpolate data from a "regular/rectangular grid" to any grid. 5 5 ; 2 methods available: bilinear and imoms3 6 ; A "regular/rectangular grid" is defined as a grid for which each longitudes lines have 7 ; the same latitude and each latitudes columns have the same longitude. 6 ; A "regular/rectangular grid" is defined as a grid for which 7 ; each longitude lines have the same latitude and each latitude columns 8 ; have the same longitude. 8 9 ; 9 10 ; @categories … … 11 12 ; 12 13 ; @param method {in}{required}{type=string} 13 ; a string definingthe interpolation method.14 ; the interpolation method. 14 15 ; must be 'bilinear' or 'imoms3' 15 16 ; 16 17 ; @param datain {in}{required}{type=2d array} 17 ; a 2D arraythe input data to interpolate18 ; the input data to interpolate 18 19 ; 19 20 ; @param lonin {in}{required}{type=1d or 2d array} 20 ; 1D or 2D array definingthe longitude of the input data21 ; the longitude of the input data 21 22 ; 22 23 ; @param latin {in}{required}{type=1d or 2d array} 23 ; 1D or 2D array definingthe latitude of the input data24 ; the latitude of the input data 24 25 ; 25 26 ; @param lonout {in}{required}{type=1d or 2d array} 26 ; 1D or 2D array definingthe longitude of the output data27 ; the longitude of the output data 27 28 ; 28 29 ; @param latout {in}{required}{type=1d or 2d array} 29 ; 1D or 2D array definingthe latitude of the output data30 ; the latitude of the output data 30 31 ; 31 32 ; @keyword WEIG {type=2d array or variable name} … … 68 69 ; 69 70 ; 1) get back the weights and addresses in variables a and b 70 ; (that must be undefined or equal to 0 before calling fromreg )71 ; (that must be undefined or equal to 0 before calling fromreg 71 72 ; 72 73 ; IDL> t1opa = fromreg('bilinear', t1ncep, xncep, yncep, glamt, gphit, WEIG = a, ADDR = b) -
trunk/SRC/Interpolation/get_gridparams.pro
r236 r238 22 22 ; IDL> get_gridparams, lon, lat, jpi, jpj, n_dimensions 23 23 ; 24 ; 1)25 24 ; @param in1 {in}{required} 26 25 ; Case 1: the name of the netcdf file … … 46 45 ; Case 2: 1 or 2 to specify if lon and lat should be 1D (jpi or jpj) 47 46 ; arrays or 2D arrays (jpi,jpj). Note that of n_dimensions = 1, then the 48 ; grid must be regular (each longitude smust be the same for all latitudes49 ; and each latitude sshould be the same for all longitudes).47 ; grid must be regular (each longitude must be the same for all latitudes 48 ; and each latitude should be the same for all longitudes). 50 49 ; 51 50 ; @param in6 {out} … … 79 78 ; file, lonname, latname, lon, lat, jpi, jpj, n_dimensions 80 79 ; lon, lat, jpi, jpj, n_dimensions 81 ;82 80 ; 83 81 compile_opt idl2, strictarrsubs -
trunk/SRC/Interpolation/inquad.pro
r236 r238 35 35 ; @keyword ZOOMRADIUS {default=4} 36 36 ; the zoom (circle centered on the (x,y) with a radius of 37 ; zoomradius degree where we look for the thequadrilateral which37 ; zoomradius degree where we look for the quadrilateral which 38 38 ; contains the (x,y) point) used for the satellite projection 39 39 ; when /ONSPHERE is activated. -
trunk/SRC/Interpolation/inrecgrid.pro
r231 r238 6 6 ; find in which cell is located each given point. 7 7 ; 8 ; @categories 8 ; @categories 9 9 ; Without loop 10 10 ; -
trunk/SRC/Interpolation/ll_narcs_distances.pro
r231 r238 4 4 ; This function returns the longitude and latitude [lon, lat] of 5 5 ; a point a given arc distance (-pi <= Arc_Dist <= pi), and azimuth (Az), 6 ; from a specified location Lon0, lat0.7 ; Same as LL_ARC_DISTANCEbut for n points without do loop.6 ; from a specified location Lon0, Lat0. 7 ; Same as <proidl>LL_ARC_DISTANCE</proidl> but for n points without do loop. 8 8 ; 9 9 ; Formula from Map Projections - a working manual. USGS paper 10 10 ; 1395. Equations (5-5) and (5-6). 11 11 ; 12 ; @categories 12 ; @categories 13 13 ; Mapping, geography 14 14 ; -
trunk/SRC/Interpolation/map_npoints.pro
r231 r238 6 6 ; returns the distances between number n of P0 points and number 7 7 ; n of P1 points (in that case, np0 and np1 must be equal). 8 ; Same as map_2points with the meter parameter but for n points9 ; without do loop.8 ; Same as <proidl>map_2points</proidl> with the meter parameter but for n 9 ; points without do loop. 10 10 ; 11 11 ; @categories … … 36 36 ; 37 37 ; @keyword TWO_BY_TWO 38 ; If given, then Map_nPoints returns the distances between number n of38 ; If given, then map_npoints returns the distances between number n of 39 39 ; P0 points and number n of P1 points 40 40 ; In that case, np0 and np1 must be equal. … … 44 44 ; points P0 and np1 points P1. Element (i,j) of the output is the 45 45 ; distance between element P0[i] and P1[j]. 46 ; If keyword /TWO_BY_TWO is given then Map_nPoints returns46 ; If keyword /TWO_BY_TWO is given then map_npoints returns 47 47 ; an np-element vector giving the distance in meter between P0[i] 48 48 ; and P1[i] (in that case, we have np0 = np1 = np) ; if /MIDDLE see this keyword. … … 103 103 ;- 104 104 ; 105 F unctionmap_npoints, lon0, lat0, lon1, lat1, AZIMUTH = azimuth $105 FUNCTION map_npoints, lon0, lat0, lon1, lat1, AZIMUTH = azimuth $ 106 106 , RADIANS = radians, RADIUS = radius, MIDDLE = middle, TWO_BY_TWO = two_by_two 107 107 -
trunk/SRC/Interpolation/neighbor.pro
r231 r238 2 2 ; 3 3 ; @file_comments 4 ; find the close test point of (P0) within a list of np1 points5 ; P1 Which can be on a sphere4 ; find the closest point of (P0) within a list of np1 points 5 ; P1 which can be on a sphere 6 6 ; 7 7 ; @categories … … 25 25 ; variable dis. 26 26 ; 27 ; @keyword SPHERE to activate if points are located on a sphere. 27 ; @keyword SPHERE 28 ; to activate if points are located on a sphere. 28 29 ; 29 30 ; @returns -
trunk/SRC/Interpolation/quadrilateral2square.pro
r231 r238 41 41 ; 42 42 ; @returns 43 ;44 43 ; (2,n) array: the new coordinates (xout, yout) of the (xin,yin) point(s) after 45 44 ; mapping. -
trunk/SRC/Interpolation/spl_fstdrv.pro
r231 r238 2 2 ; 3 3 ; @file_comments 4 ; SPL_FSTDRVreturns the values of the first derivative of4 ; returns the values of the first derivative of 5 5 ; the interpolating function at the points X2i. It is a double 6 6 ; precision array. … … 8 8 ; Given the arrays X and Y, which tabulate a function (with the X[i] 9 9 ; AND Y[i] in ascending order), and given an input value X2, the 10 ; SPL_INCR function returns an interpolated value for the given values11 ; of X2. The interpolation method is based on cubic spline, corrected12 ; in a way that interpolated value are also in ascending order 10 ; <pro>spl_incr</pro> function returns an interpolated value for the given 11 ; values of X2. The interpolation method is based on cubic spline, corrected 12 ; in a way that interpolated value are also in ascending order. 13 13 ; 14 14 ; @examples … … 24 24 ; 25 25 ; @param yscd {in}{required} 26 ; The output from SPL_INITfor the specified X and Y.26 ; The output from <proidl>SPL_INIT</pro> for the specified X and Y. 27 27 ; 28 28 ; @param x2 {in}{required} … … 43 43 FUNCTION spl_fstdrv, x, y, yscd, x2 44 44 ; 45 compile_opt idl2, strictarrsubs 46 ; 45 47 ; compute the first derivative of the spline function 46 ;47 compile_opt idl2, strictarrsubs48 48 ; 49 49 nx = n_elements(x) … … 81 81 RETURN, yfrst 82 82 END 83 -
trunk/SRC/Interpolation/spl_incr.pro
r231 r238 5 5 ; Given the arrays X and Y, which tabulate a function (with the X[i] 6 6 ; AND Y[i] in ascending order), and given an input value X2, the 7 ; SPL_INCRfunction returns an interpolated value for the given values7 ; spl_incr function returns an interpolated value for the given values 8 8 ; of X2. The interpolation method is based on cubic spline, corrected 9 9 ; in a way that interpolated values are also monotonically increasing. … … 65 65 ; 66 66 FUNCTION pure_concave, x1, x2, y1, y2, der2, x 67 ; 68 compile_opt idl2, strictarrsubs 69 ; 67 70 ; X^n type 68 ;69 compile_opt idl2, strictarrsubs70 71 ; 71 72 xx = (double(x)-double(x1))/(double(x2)-double(x1)) … … 82 83 RETURN, res 83 84 END 84 85 ; 85 86 ;+ 87 ; 86 88 ; @param x1 {in}{required} 87 89 ; An n-element (at least 2) input vector that specifies the tabulate points in … … 102 104 ; 103 105 ;- 106 ; 104 107 FUNCTION pure_convex, x1, x2, y1, y2, der2, x 108 ; 109 compile_opt idl2, strictarrsubs 110 ; 105 111 ; 1-(1-X)^n type 106 ;107 compile_opt idl2, strictarrsubs108 112 ; 109 113 xx = 1.0d - (double(x)-double(x1))/(double(x2)-double(x1)) … … 121 125 RETURN, res 122 126 END 123 127 ; 124 128 ;+ 129 ; 125 130 ; @param x 126 131 ; @param y 127 132 ; @param x2 128 ; @keyword YP0 The first derivative of the interpolating function at the 133 ; @keyword YP0 134 ; The first derivative of the interpolating function at the 129 135 ; point X0. If YP0 is omitted, the second derivative at the 130 136 ; boundary is set to zero, resulting in a "natural spline." 131 ; @keyword YPN_1 The first derivative of the interpolating function at the 137 ; @keyword YPN_1 138 ; The first derivative of the interpolating function at the 132 139 ; point Xn-1. If YPN_1 is omitted, the second derivative at the 133 140 ; boundary is set to zero, resulting in a "natural spline." 134 141 ;- 142 ; 135 143 FUNCTION spl_incr, x, y, x2, YP0 = yp0, YPN_1 = ypn_1 136 144 ; … … 515 523 RETURN, y2 516 524 ; 517 ;------------------------------------------------------------------518 ;------------------------------------------------------------------519 ;520 525 END -
trunk/SRC/Interpolation/spl_keep_mean.pro
r232 r238 5 5 ; Given the arrays X and Y, which tabulate a function (with the X[i] 6 6 ; AND Y[i] in ascending order), and given an input value X2, the 7 ; SPL_INCRfunction returns an interpolated value for the given values7 ; spl_incr function returns an interpolated value for the given values 8 8 ; of X2. The interpolation method is based on cubic spline, corrected 9 9 ; in a way that integral of the interpolated values is the same as the … … 129 129 ; yfrst = 0.0d > temporary(yfrst) 130 130 RETURN, yfrst 131 132 ;------------------------------------------------------------------133 ;------------------------------------------------------------------134 131 ; 135 132 END -
trunk/SRC/Interpolation/square2quadrilateral.pro
r231 r238 27 27 ; Can be scalar or array. 28 28 ; (x0,y0), (x1,y1), (x2,y2) and (x3,y3) are given in the anticlockwise order. 29 ;30 29 ; 31 30 ; @param xxin {in}{optional} … … 73 72 ; page 54 of Wolberg's book, see figure 3.7 page 56 for the good 74 73 ; definition. 75 ;76 74 ; 77 75 compile_opt idl2, strictarrsubs -
trunk/SRC/Matrix/cmapply.pro
r237 r238 6 6 ; @param X 7 7 ; 8 ; @version 8 ; @version 9 9 ; $Id$ 10 10 ; … … 120 120 ; 121 121 ; It's worth noting however, that the implementation of user-defined 122 ; functions is not particularly optimized for speed. 122 ; functions is not particularly optimized for speed. Users are 123 123 ; encouraged to implement their own array if the number of output 124 124 ; elements is large. 125 125 ; 126 ; @categories 126 ; @categories 127 127 ; Array 128 128 ; … … 134 134 ; the user-defined function. 135 135 ; 136 ; @param ARRAY {in}{required}{type=array} 136 ; @param ARRAY {in}{required}{type=array} 137 137 ; An array of values to be operated on. 138 138 ; Must not be of type STRING (7) or STRUCTURE (8). … … 140 140 ; @param dimapply {in}{optional}{default=1 (ie, first dimension)}{type=array} 141 141 ; An array of dimensions that are to be "collapsed", where 142 ; the thefirst dimension starts with 1 (ie, same convention142 ; the first dimension starts with 1 (ie, same convention 143 143 ; as IDL function TOTAL). Whereas TOTAL only allows one 144 144 ; dimension to be added, you can specify multiple dimensions … … 155 155 ; @keyword TYPE {default=same as input type} 156 156 ; Set this to the IDL code of the desired output type (refer 157 ; to documentation of SIZE()). Internal results will be157 ; to documentation of <proidl>SIZE</proidl>()). Internal results will be 158 158 ; rounded to the nearest integer if the output type is an 159 159 ; integer type. … … 214 214 ; (OUT[i,j] is the median value of IN[i,j,*]) 215 215 ; 216 ; @history 216 ; @history 217 217 ; Mar 1998, Written, CM 218 218 ; Changed usage message to not bomb, 24 Mar 2000, CM … … 229 229 ; craigm\@lheamail.gsfc.nasa.gov 230 230 ; 231 ; @version 231 ; @version 232 232 ; $Id$ 233 233 ; -
trunk/SRC/Matrix/cmset_op.pro
r237 r238 69 69 ; benefit. 70 70 ; 71 ; @categories 71 ; @categories 72 72 ; Array 73 73 ; … … 131 131 ; SET_UTILS.PRO by RSI 132 132 ; 133 ; @history 133 ; @history 134 134 ; Written, CM, 23 Feb 2000 135 135 ; Added empty set capability, CM, 25 Feb 2000 … … 163 163 ; craigm\@lheamail.gsfc.nasa.gov 164 164 ; 165 ; @version 165 ; @version 166 166 ; $Id$ 167 167 ; -
trunk/SRC/Matrix/extrac2.pro
r231 r238 29 29 ; 20 22 30 30 ; 31 ; @categories 31 ; @categories 32 32 ; Utilities 33 33 ; … … 58 58 ; I have a dim 2 matrix named A. I want extract a small intersection 59 59 ; matrix 2d of the line 2,3 and 7 and of the column 0 and 1: 60 ; 60 ; 61 61 ; IDL> res=extrac2(A,[2,3,7],[0,1]) 62 62 ; … … 70 70 ; g i 71 71 ; 72 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 72 ; @history 73 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 73 74 ; 12/1/1999 74 75 ; 29/4/1999: correction of a bug and complement of the heading 75 76 ; 76 ; @version $Id$ 77 ; @version 78 ; $Id$ 77 79 ; 78 80 ;- -
trunk/SRC/Obsolete/common.pro
r232 r238 7 7 ; 8 8 ;- 9 9 ; 10 10 @all_cm -
trunk/SRC/Obsolete/congridseb.pro
r232 r238 39 39 ; an array which dimensions are x,y 40 40 ; 41 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 41 ; @history 42 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 42 43 ; 20/3/98 43 44 ; 18/6/1999 supression d''une horrible boucle 44 45 ; 45 ; @version $Id$ 46 ; @version 47 ; $Id$ 46 48 ; 47 49 ;- 48 50 ; 49 functioncongridseb, tableau, x, y51 FUNCTION congridseb, tableau, x, y 50 52 ; 51 53 compile_opt idl2, strictarrsubs -
trunk/SRC/Obsolete/extrait.pro
r231 r238 73 73 ; g i 74 74 ; 75 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 75 ; @history 76 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 76 77 ; 12/1/1999 77 78 ; 29/4/1999: correction of a bug and complement of the heading 78 79 ; 79 ; @version $Id$ 80 ; @version 81 ; $Id$ 80 82 ; 81 83 ;- -
trunk/SRC/Obsolete/fictype.pro
r232 r238 16 16 ; IDL> fictype = fictype(930124) 17 17 ; 18 ; @history 18 ; @history 19 19 ; Jerome Vialard (jv\@lodyc.jussieu.fr) 20 20 ; 2/7/98 21 21 ; 22 ; @version 22 ; @version 23 23 ; $Id$ 24 24 ; -
trunk/SRC/Obsolete/nlecan.pro
r232 r238 6 6 ; 7 7 ; @obsolete 8 ; @categories 8 ; @categories 9 9 ; Reading 10 10 ; … … 12 12 ; IDL> res=nlecan(nom, numsortie79, nbretps) 13 13 ; 14 ; @param nom {in}{required} 14 ; @param nom {in}{required} 15 15 ; nom du tableau contenant le champ que l'on veut (le 16 16 ; trouver avec ncdflec,fichier,/var 17 17 ; 18 ; @param numsortie79 {in}{required} 18 ; @param numsortie79 {in}{required} 19 19 ; le numero du pas de temps que l'on veut sortir du 20 20 ; fichier (compte a partir de 1) a partir de 79 21 21 ; 22 ; @param nbretps {in}{required} 22 ; @param nbretps {in}{required} 23 23 ; nombre de pas de temps a extraire 24 24 ; 25 ; @keyword BOITE 25 ; @keyword BOITE 26 26 ; boite sur laquelle integrer (par defaut tt le domaine) 27 27 ; 28 ; @keyword GRILLE 28 ; @keyword GRILLE 29 29 ; impose la grille a laquelle est rapporte le champ. rq permet 30 30 ; d'aller plus vite ds la lecture 31 31 ; 32 ; @keyword TOUT 32 ; @keyword TOUT 33 33 ; oblige a lire le tableau entier en non pas celui reduit a domdef 34 34 ; 35 ; @keyword _EXTRA 35 ; @keyword _EXTRA 36 36 ; Used to pass keywords 37 37 ; 38 ; @returns 38 ; @returns 39 39 ; tableau 2d (qd la serie ne fait que 1 pas de temps) ou 40 40 ; 3d (valable ds 1 premier tps que pour les tableaux 2d) 41 41 ; 42 ; @uses 42 ; @uses 43 43 ; common.pro 44 44 ; 45 ; @restrictions 45 ; @restrictions 46 46 ; appele par <pro>nlec</pro> 47 47 ; 48 ; @history 48 ; @history 49 49 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 50 50 ; 51 ; @version 51 ; @version 52 52 ; $Id$ 53 53 ; -
trunk/SRC/Postscript/closeps.pro
r232 r238 13 13 ; that we have to destroy at the end of closeps (when the postscript is done). 14 14 ; 15 ; @uses 15 ; @uses 16 16 ; cm_4ps 17 17 ; -
trunk/SRC/Postscript/openps.pro
r232 r238 38 38 ; Used to pass keywords to <proidl>device</proidl>. 39 39 ; 40 ; @uses 40 ; @uses 41 41 ; cm_4ps 42 42 ; 43 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 43 ; @history 44 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 44 45 ; 21/12/98 45 46 ; 1/2/98: ajout de nameps en input … … 52 53 ;- 53 54 ; 54 proopenps, namepsin, FILENAME = filename, INFOWIDGET = infowidget $55 PRO openps, namepsin, FILENAME = filename, INFOWIDGET = infowidget $ 55 56 , KEEPPFONT = keeppfont, KEEP_PFONT = keep_pfont $ 56 57 , PORTRAIT = portrait, LANDSCAPE = landscape $ -
trunk/SRC/ReadWrite/ncdf_timeget.pro
r232 r238 5 5 ; Julian days of IDL. 6 6 ; 7 ; @categories 7 ; @categories 8 8 ; Reading 9 9 ; … … 34 34 ; time_counter:units = "years since 1979-01-01 00:00:00" ; 35 35 ; 36 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 36 ; @history 37 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 37 38 ; June 2001 38 ; @version $Id$ 39 ; @version 40 ; $Id$ 39 41 ;- 40 42 ; -
trunk/SRC/ReadWrite/read_oasis.pro
r236 r238 7 7 ; Reading 8 8 ; 9 ; @param FILENAME {in}{required} 9 ; @param FILENAME {in}{required} 10 10 ; the filename 11 11 ; 12 ; @param VARNAME {in}{required} 12 ; @param VARNAME {in}{required} 13 13 ; the name of the variable to be read 14 14 ; … … 24 24 ; to change the default format (R8) of the data to be read. 25 25 ; 26 ; @returns a 2d array 26 ; @returns 27 ; a 2d array 27 28 ; 28 29 ; @examples … … 32 33 ; see also IDL> scanoasis,'grids_orca_t106' 33 34 ; 34 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 35 ; @history 36 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 35 37 ; July 01, 2002 36 ; @version $Id$ 38 ; @version 39 ; $Id$ 40 ; 37 41 ;- 38 42 ; -
trunk/SRC/ReadWrite/readbat.pro
r236 r238 12 12 ; @keyword ZERO to put 0 on land instead of negatives values for the islands. 13 13 ; 14 ; @returns a 2d array 14 ; @returns 15 ; a 2d array 15 16 ; 16 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 17 ; @history 18 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 17 19 ; May 31, 2002 18 20 ; based on batlec2.pro, written by Maurice Imbard, March 17, 1998 19 21 ; 20 ; @version $Id$ 22 ; @version 23 ; $Id$ 21 24 ; 22 25 ;- -
trunk/SRC/ReadWrite/readoldopadistcoast.pro
r236 r238 6 6 ; based on the OPA subroutines dtacof and parctl 7 7 ; 8 ; @categories 8 ; @categories 9 9 ; For OPA 10 10 ; 11 11 ; @param UNIT 12 12 ; 13 ; @param PARAMS 13 14 ; 14 ; @param PARAMS15 ;16 ;17 15 ; @param NUM 18 ;19 16 ; 20 ; @returns 17 ; @returns 21 18 ; a structure that contains two elements: tdistcoast (the 22 19 ; distance for the t-points) and fdiscoast (the distance for the 23 20 ; f-points). 24 21 ; 25 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 22 ; @history 23 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 26 24 ; June, 2002 27 ; @version $Id$ 25 ; @version 26 ; $Id$ 27 ; 28 28 ;- 29 29 ; … … 37 37 return, b 38 38 end 39 39 ; 40 40 ;+ 41 ; 41 42 ; @file_comments 42 ;43 43 ; 44 44 ; @categories … … 50 50 ; @param JPIGLO {in}{required} 51 51 ; 52 ;53 52 ; @param JPJGLO {in}{required} 54 ;55 53 ; 56 54 ; @param JPK {in}{required} … … 59 57 ; @keyword IBLOC {default=4096L} 60 58 ; Ibloc size 61 ; 59 ; 62 60 ; @keyword JPBYT {default=8L} 63 61 ; Jpbyt size 64 ; 62 ; 65 63 ; @keyword NUMREC {default=19L*jpk} 66 64 ; Number of records in the file. … … 72 70 ; @version 73 71 ; $Id$ 72 ; 74 73 ;- 74 ; 75 75 FUNCTION readoldopadistcoast, filename, jpiglo, jpjglo, jpk, IBLOC = ibloc, JPBYT = jpbyt, NUMREC = numrec 76 76 ; -
trunk/SRC/ReadWrite/scanctl.pro
r237 r238 32 32 ; @param xyheader 33 33 ; 34 ; @keyword VARFMT 34 ; @keyword VARFMT 35 35 ; 36 36 ; @keyword _EXTRA 37 37 ; 38 ; @version 38 ; @version 39 39 ; $Id$ 40 40 ; -
trunk/SRC/ReadWrite/scanoasis.pro
r236 r238 6 6 ; @categories know what is inside 7 7 ; 8 ; @param FILENAME {in}{required} 8 ; @param FILENAME {in}{required} 9 9 ; The file name 10 10 ; 11 ; @restrictions 11 ; @restrictions 12 12 ; List the variable names included in a Oasis file 13 13 ; … … 15 15 ; IDL> scanoasis,'grids_orca_t106' 16 16 ; 17 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 17 ; @history 18 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 18 19 ; July 01, 2002 19 ; @version $Id$ 20 ; @version 21 ; $Id$ 22 ; 20 23 ;- 21 24 ; -
trunk/SRC/ReadWrite/write_oasis.pro
r236 r238 4 4 ; write an Oasis file (version < 2.5) 5 5 ; 6 ; @param FILENAME {in}{required} 6 ; @param FILENAME {in}{required} 7 7 ; the filename 8 8 ; 9 ; @param VARNAME {in}{required} 9 ; @param VARNAME {in}{required} 10 10 ; the name of the variable to be written 11 11 ; 12 ; @param Z2D {in}{required} 12 ; @param Z2D {in}{required} 13 13 ; the variable (2D array) to be written 14 14 ; … … 19 19 ; to change the default format (R8) of the data to be written. 20 20 ; 21 ; @keyword APPEND 22 ; to open the file with the file pointer at the end of the file, ready for 21 ; @keyword APPEND 22 ; to open the file with the file pointer at the end of the file, ready for 23 23 ; data to be appended. 24 24 ; 25 ; @restrictions 25 ; @restrictions 26 26 ; varname is automatically written as a "character*8" 27 27 ; by default z2d is written as an R8 array 28 28 ; 29 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 29 ; @history 30 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 30 31 ; July 01, 2002 31 ; @version $Id$ 32 ; @version 33 ; $Id$ 34 ; 32 35 ;- 33 36 ; … … 42 45 return 43 46 endif 44 47 45 48 writeu, unit, string(varname, format='(a8)') 46 49 case 1 of -
trunk/SRC/ReadWrite/writebat.pro
r236 r238 4 4 ; write the bathymetry ASCII file of OPA 5 5 ; 6 ; @categories 6 ; @categories 7 7 ; For OPA 8 8 ; 9 ; @param ZBAT {in}{required} 9 ; @param ZBAT {in}{required} 10 10 ; the bathymetry, a 2d array 11 11 ; … … 13 13 ; It contains the filename 14 14 ; 15 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 15 ; @history 16 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 16 17 ; Sept 30, 2003 17 18 ; based on batsav2.pro, written by Maurice Imbard, March 17, 1998 18 19 ; 19 ; @version $Id$ 20 ; @version 21 ; $Id$ 22 ; 20 23 ;- 21 24 ; -
trunk/SRC/Tests/TestsOld/tst_plt_old.pro
r237 r238 4 4 ; 5 5 ; @categories 6 ; 6 ; 7 7 ; @keyword IMAGE 8 8 ; … … 10 10 ; Sebastien Masson 11 11 ; 12 ; @version 12 ; @version 13 13 ; $Id$ 14 14 ; -
trunk/SRC/ToBeReviewed/CALCULS/hdyn.pro
r231 r238 37 37 ; Give a depth to this keyword which will be considered as the reference depth 38 38 ; (in this case, LEVEL has not any effect). the calculation will be effectuated 39 ; until this depth effecting an interpolation between the thelast W level above39 ; until this depth effecting an interpolation between the last W level above 40 40 ; PROFREF and PROFREF. 41 41 ; -
trunk/SRC/ToBeReviewed/CALCULS/remplit.pro
r232 r238 231 231 ; 232 232 z[coast] = temporary(zcoast)/ temporary(weight) 233 ; we update the theboundary conditions of z233 ; we update the boundary conditions of z 234 234 if keyword_set(key_periodic) AND nx EQ jpi then begin 235 235 z[0, *] = z[nx, *] -
trunk/SRC/ToBeReviewed/IMAGE/animgif.pro
r157 r238 1 ;------------------------------------------------------------2 ;------------------------------------------------------------3 ;------------------------------------------------------------4 1 ;+ 5 2 ; 6 ; @file_comments 3 ; @file_comments 7 4 ; Build a gif animation 8 5 ; 9 ; @categories 6 ; @categories 10 7 ; Animated drawings. 11 8 ; 12 ; @param NOMFIC {in}{required} 9 ; @param NOMFIC {in}{required} 13 10 ; It is the name of the gif file containing the animation. 14 11 ; Comment: this file is placed in the directory defined by iodir. 15 12 ; 16 ; @uses 13 ; @uses 17 14 ; common.pro 18 15 ; 19 ; @restrictions 16 ; @restrictions 20 17 ; We use the Z buffer to go faster!. 21 18 ; So, if it failed in animgif, you have to do: … … 24 21 ; IDL> retall 25 22 ; 26 ; @restrictions 23 ; @restrictions 27 24 ; If we want to delete the \@common, 28 ; we have to define manually the picture's size 25 ; we have to define manually the picture's size 29 26 ; (variables xsize and ysize) just as iodir. 30 27 ; 31 ; @history 28 ; @history 32 29 ; Guillaume Roullet (grlod\@ipsl.jussieu.fr) 33 30 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 34 31 ; 30/4/1999 35 32 ; 36 ; @version 33 ; @version 37 34 ; $Id$ 38 35 ; 39 36 ;- 40 ;------------------------------------------------------------ 41 ;------------------------------------------------------------ 42 ;------------------------------------------------------------ 37 ; 43 38 PRO animgif, nomfic 44 39 ; … … 53 48 ; It completes the current palette on 256 colors. 54 49 ; 55 red = [rouge, replicate(255, 256-n_elements(rouge))] 56 green = [vert, replicate(255, 256-n_elements(rouge))] 57 blue = [bleu, replicate(255, 256-n_elements(rouge))] 50 red = [rouge, replicate(255, 256-n_elements(rouge))] 51 green = [vert, replicate(255, 256-n_elements(rouge))] 52 blue = [bleu, replicate(255, 256-n_elements(rouge))] 58 53 ; 59 54 ; It rocks on the z device, allowing to create the picture without display it. … … 67 62 device, set_resolution = [xsize, ysize] 68 63 ; 69 ; Beginning of the gif file. Writing of an empty picture. 64 ; Beginning of the gif file. Writing of an empty picture. 70 65 ; 71 66 reinitplt … … 80 75 ; Loop of picture's creation. 81 76 ; 82 calen = TIMEGEN(366, START=JULDAY(1,1,2000)) 77 calen = TIMEGEN(366, START=JULDAY(1,1,2000)) 83 78 debut = where(calen EQ 19810105) 84 79 debut = where(calen EQ 19790105) … … 103 98 ; plt, nlec('sss', date, 'ATF'), label = 2, /noerase 104 99 ; plt, nlec('htoth', date, 'RE3')-nlec('hpycn', date, 'RE3'), 10, 60, int = 5, /inv, /noerase 105 ; domdef, 290,340,-5,15 100 ; domdef, 290,340,-5,15 106 101 ; plt, norme(nlec('unsurf', date, 'RE3'), nlec('vnsurf', date, 'RE3')), 0, 1.2, int = .1, /noerase 107 102 ; … … 109 104 ; 110 105 write_gif,iodir+nomfic,tvrd(),red, green, blue, /multiple 111 ENDFOR 106 ENDFOR 112 107 ;---------------------------------------------------------------- 113 108 ; End of the part we want to change. … … 115 110 ; 116 111 ; Closing of the file. 117 write_gif,iodir+nomfic,/close 112 write_gif,iodir+nomfic,/close 118 113 ; Rerock on terminal X mode. 119 114 ; device, /close -
trunk/SRC/ToBeReviewed/INIT/initncdf.pro
r236 r238 139 139 zvarid = (where(namevar EQ 'nav_lev' or namevar EQ zaxisname OR namevar EQ 'level' OR namevar EQ 'lev' OR strmid(namevar, 0, 5) EQ 'depth'))[0] 140 140 if zvarid EQ -1 AND inside.ndims GT 3 then begin 141 ras = report( 'initncdf: the zaxis was not found..., check the theuse of ZAXISNAME keyword if you whant to find one...')141 ras = report( 'initncdf: the zaxis was not found..., check the use of ZAXISNAME keyword if you whant to find one...') 142 142 ; stop 143 143 endif -
trunk/SRC/ToBeReviewed/LECTURE/read_ncdf.pro
r231 r238 69 69 ; 70 70 ; @keyword ZETAFILENAME {default=FILENAME}{type=string} 71 ; For ROMS outputs. The filename of the file where zeta v riable should be read71 ; For ROMS outputs. The filename of the file where zeta variable should be read 72 72 ; 73 73 ; @keyword ZETAZERO {default=0}{type=scalar: 0 or 1} -
trunk/SRC/ToBeReviewed/MATRICE/colle.pro
r163 r238 1 1 ;+ 2 ; @file_comments 3 ; This concatenation function exist in IDL so long 4 ; as we do not try to stick with a dimension superior or equal at 4. 2 ; @file_comments 3 ; This concatenation function exist in IDL so long 4 ; as we do not try to stick with a dimension superior or equal at 4. 5 5 ; 6 ; @categories 6 ; @categories 7 7 ; Utilities 8 8 ; … … 52 52 ; force to save the pointer array and arrays to be stuck 53 53 ; 54 ; @returns res=matrice resultat 54 ; @returns 55 ; matrice resultat 55 56 ; 56 ; @examples IDL> print, colle(replicate(1,2,2,2),indgen(2,2,2),2) 57 ; @examples 58 ; IDL> print, colle(replicate(1,2,2,2),indgen(2,2,2),2) 57 59 ; 1 1 58 60 ; 1 1 … … 65 67 ; 6 7 66 68 ; 67 ; @history Sebastien Masson (smasson\@lodyc.jussieu.fr) 69 ; @history 70 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 68 71 ; 13/1/98 69 72 ; 70 ; @version $Id$ 73 ; @version 74 ; $Id$ 71 75 ; 72 76 ;- 77 ; 73 78 FUNCTION colle, a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, SAUVE = sauve 74 79 ; … … 111 116 res = [temporary(res), *ptrtab[n]] 112 117 if NOT keyword_set(sauve) then ptr_free, ptrtab[n] 113 ENDFOR 114 END 118 ENDFOR 119 END 115 120 2:BEGIN ; we paste following the dimension 2 116 121 res = *ptrtab[0] … … 119 124 res = [[temporary(res)], [*ptrtab[n]]] 120 125 if NOT keyword_set(sauve) then ptr_free, ptrtab[n] 121 ENDFOR 122 END 126 ENDFOR 127 END 123 128 3:BEGIN ; we paste following the dimension 3 124 129 res = *ptrtab[0] … … 127 132 res = [[[temporary(res)]], [[*ptrtab[n]]]] 128 133 if NOT keyword_set(sauve) then ptr_free, ptrtab[n] 129 ENDFOR 134 ENDFOR 130 135 END 131 ELSE:BEGIN 136 ELSE:BEGIN 132 137 ; We transpose res in order to put the dimension to be pasted number 1 133 ; To this, we contain the permuter vector which give the place that dimension 138 ; To this, we contain the permuter vector which give the place that dimension 134 139 ; in the transposed matrix must take. 135 140 siz = (size(*ptrtab[0]))[0] … … 143 148 FOR n = 1,nbretab-1 DO BEGIN ; we paste following the dimension 1on colle suivant la dimension 1 144 149 if (size(*ptrtab[n]))[0] LT direc then $ 145 *ptrtab[n] = reform(*ptrtab[n], [(size(*ptrtab[n]))[1:siz], replicate(1, direc-siz)]) 150 *ptrtab[n] = reform(*ptrtab[n], [(size(*ptrtab[n]))[1:siz], replicate(1, direc-siz)]) 146 151 res = [temporary(res), transpose(*ptrtab[n], permute)] 147 152 if NOT keyword_set(sauve) then ptr_free, ptrtab[n] … … 149 154 res = transpose(temporary(res), permute) 150 155 END 151 ENDCASE 156 ENDCASE 152 157 ;------------------------------------------------------------ 153 158 if NOT keyword_set(sauve) then undefine, ptrtab 154 159 sortie: 155 160 return, res 156 157 158 END 159 160 ;------------------------------------------------------------ 161 END -
trunk/SRC/ToBeReviewed/PLOTS/DIVERS/checkfield.pro
r237 r238 79 79 return, report(['Error in "' + type + '" type plot with a 2D input array:' $ 80 80 , 'the array dimensions ' + tostr(sz[1:2]) + ' are incompatible' $ 81 , 'with the thedomain dimensions ' $81 , 'with the domain dimensions ' $ 82 82 , '[jpi/nx, jpj/ny, jpk/nz, jpt] = [' $ 83 83 + strtrim(jpi, 1) + '/' + strtrim(nx, 1) $ … … 125 125 return, report(['Error in "' + type + '" type plot with a 3D input array:' $ 126 126 , 'the array dimensions ' + tostr(sz[1:3]) + ' are incompatible' $ 127 , 'with the thedomain dimensions ' $127 , 'with the domain dimensions ' $ 128 128 , '[jpi/nx, jpj/ny, jpk/nz, jpt] = [' $ 129 129 + strtrim(jpi, 1) + '/' + strtrim(nx, 1) $ -
trunk/SRC/ToBeReviewed/PLOTS/VECTEUR/velovect.pro
r231 r238 15 15 ; 16 16 ; @param V {in}{required} 17 ; The Y component of the two dimensional field. 18 ; the same dimensions as X. 17 ; The Y component of the two dimensional field. Y must have 18 ; the same dimensions as X. The vector at point [i,j] has a 19 19 ; magnitude of: 20 20 ; … … 26 26 ; 27 27 ; @param X {in}{optional}{type=vector} 28 ; Optional abscissa values. 28 ; Optional abscissa values. X must be a vector with a length 29 29 ; equal to the first dimension of U and V. 30 30 ; 31 31 ; @param Y {in}{optional}{type=vector} 32 ; Optional ordinate values. 32 ; Optional ordinate values. Y must be a vector with a length 33 33 ; equal to the first dimension of U and V. 34 34 ; … … 39 39 ; Set this keyword to 1 to place a dot at each missing point. 40 40 ; Set this keyword to 0 or omit it to draw nothing for missing 41 ; points. 41 ; points. Has effect only if MISSING is specified. 42 42 ; 43 43 ; @keyword LENGTH {default=1.0} 44 ; Length factor. 44 ; Length factor. The default of 1.0 makes the longest (U,V) 45 45 ; vector the length of a cell. 46 46 ; 47 47 ; @keyword MISSING 48 ; Missing data value. 48 ; Missing data value. Vectors with a LENGTH greater 49 49 ; than MISSING are ignored. 50 50 ; 51 51 ; @keyword OVERPLOT 52 ; Set this keyword to make VELOVECT "overplot". 52 ; Set this keyword to make VELOVECT "overplot". That is, the 53 53 ; current graphics screen is not erased, no axes are drawn, and 54 54 ; the previously established scaling remains in effect. … … 62 62 ; 63 63 ; @restrictions 64 ; Plotting on the selected device is performed. 64 ; Plotting on the selected device is performed. System 65 65 ; variables concerning plotting are changed. 66 66 ; Note: All other keywords are passed directly to the PLOT procedure … … 73 73 ; Added TITLE, Oct, 1990. 74 74 ; Added POSITION, NOERASE, COLOR, Feb 91, RES. 75 ; August, 1993. 75 ; August, 1993. Vince Patrick, Adv. Visualization Lab, U. of Maryland, 76 76 ; fixed errors in math. 77 77 ; August, 1993. DMS, Added _EXTRA keyword inheritance. … … 82 82 ; OPLOT to PLOTS. 83 83 ; September, 1996, GGS. Changed denominator of x_step and y_step vars. 84 ; February, 1998, DLD. 85 ; June, 1998, DLD. 84 ; February, 1998, DLD. Add support for CLIP and NO_CLIP keywords. 85 ; June, 1998, DLD. Add support for OVERPLOT keyword. 86 86 ; 87 ; Copyright (c) 1983-1998, Research Systems, Inc. 87 ; Copyright (c) 1983-1998, Research Systems, Inc. All rights reserved. 88 88 ; Unauthorized reproduction prohibited. 89 89 ; -
trunk/SRC/ToBeReviewed/POSTSCRIPT/ps.pro
r232 r238 1 1 ;+ 2 ; 2 3 ; @file_comments 3 4 ; Redirect the content of the graphic window in a postscript, … … 90 91 for i = 2, n_elements(vectjournal)-3 DO $ 91 92 printf, !journal, vectjournal[i] 92 93 ;------------------------------------------------------------ -
trunk/SRC/ToBeReviewed/STRING/chkeywd.pro
r232 r238 2 2 ; 3 3 ; @file_comments 4 ; In a string containing an order to execute with EXECUTE by example. 4 ; In a string containing an order to execute with EXECUTE by example. 5 5 ; We change the value of one of keywords. 6 6 ; More generally, in a string, we look for the character chain: ', keywdname= ..., … … 10 10 ; String, keywords 11 11 ; 12 ;13 12 ; @param STRINGIN {in}{required}{type=string} 14 13 ; it is a string … … 17 16 ; it is a string designating the name of keyword to look for. 18 17 ; 19 ; @param KEYWDVALUE {in}{required} 18 ; @param KEYWDVALUE {in}{required} 20 19 ; The new value of the keyword to considerate in STRINGIN 21 20 ; 22 21 ; @keyword SEPARATOR 23 ; To look for the keyword, we look for the first sign = which follow 24 ; the position of keywdname. By default, we substitute the string 25 ; before the comma. With the keyword SEPARATOR,we can modify the cut 26 ; of the string. SEPARATOR give a Character before the one we have to 22 ; To look for the keyword, we look for the first sign = which follow 23 ; the position of keywdname. By default, we substitute the string 24 ; before the comma. With the keyword SEPARATOR,we can modify the cut 25 ; of the string. SEPARATOR give a Character before the one we have to 27 26 ; look for the comma which delimit the keyword in the string. 28 27 ; (see examples) 29 28 ; 30 29 ; @keyword AFTER 31 ; To look for the keyword, we look for the first sign = which follow 32 ; the position of keywdname. By default, we substitute the string 33 ; before the comma. With the keyword AFTER,we can modify the cut 34 ; of the string. AFTER give a Character after the one we have to 30 ; To look for the keyword, we look for the first sign = which follow 31 ; the position of keywdname. By default, we substitute the string 32 ; before the comma. With the keyword AFTER,we can modify the cut 33 ; of the string. AFTER give a Character after the one we have to 35 34 ; look for the comma which delimit the keyword in the string. 36 35 ; (see examples) 37 36 ; 38 ; @returns 37 ; @returns 39 38 ; stringout=stringin modified if keywdname has been found in stringin 40 39 ; 41 ; @uses 40 ; @uses 42 41 ; common.pro 43 42 ; … … 46 45 ; 47 46 ; @restrictions 48 ; Beware, this function has loops, ifs ad cases everywhere. So it can 49 ; not be used by big keywords (with a lot of elements which are big 50 ; arrays). The input keyword must not contain Complex floatings, structure, 51 ; Double-precision complex, Pointer, Object reference, Unsigned Integer, 47 ; Beware, this function has loops, ifs ad cases everywhere. So it can 48 ; not be used by big keywords (with a lot of elements which are big 49 ; arrays). The input keyword must not contain Complex floatings, structure, 50 ; Double-precision complex, Pointer, Object reference, Unsigned Integer, 52 51 ; Unsigned Longword Integer, 64-bit Integer or Unsigned 64-bit Integer. 53 ; 52 ; 54 53 ; 55 54 ; @examples … … 72 71 ; 18/10/1999 73 72 ; 24/11/1999: adaptation for keywords starting by / 74 ; 73 ; 75 74 ; @version 76 75 ; $Id$ … … 93 92 poskeywd = poskeywd+strlen(ajoute) 94 93 poskeywd = strpos(stringout, keywdname, poskeywd) 95 ENDIF ELSE BEGIN 94 ENDIF ELSE BEGIN 96 95 ; change a keyword sarting by toto= 97 96 posegal = strpos(stringout, '=', poskeywd) … … 107 106 ; 108 107 poskeywd = strpos(stringout, keywdname, posvirgule+1) 109 ENDELSE 108 ENDELSE 110 109 endwhile 111 110 -
trunk/SRC/ToBeReviewed/STRING/strwhere.pro
r232 r238 13 13 ; the character to look for 14 14 ; 15 ; @returns COUNT {out}{optional}16 ; The number of matches that were found 15 ; @returns 16 ; The number of matches that were found 17 17 ; 18 ; The function returns an index array similar to the 18 ; The function returns an index array similar to the 19 19 ; result of the where function 20 20 ; 21 21 ; @examples 22 ; 23 ; 24 ; ; returns[ 0, 3, 6 ]22 ; IDL> ind = strwhere('abcabcabc','a') 23 ; IDL> print, ind 24 ; [ 0, 3, 6 ] 25 25 ; 26 26 ; @history 27 27 ; mgs, 02 Jun 1998: VERSION 1.00 28 ; bmy, 30 Jun 1998: - now returns COUNT, the number 28 ; bmy, 30 Jun 1998: - now returns COUNT, the number 29 29 ; of matches that are found (this is 30 30 ; analogous to the WHERE command) … … 44 44 ; with subject "IDL routine strwhere" 45 45 ; 46 functionstrwhere,str,schar,Count46 FUNCTION strwhere,str,schar,Count 47 47 ; 48 48 compile_opt idl2, strictarrsubs 49 49 ; 50 51 52 50 if (n_elements(str) eq 0) then return,-1 53 51 54 52 ; convert to byte 55 53 BStr = byte(Str) 56 54 BSC = (byte(schar))[0] 57 55 58 56 ; Search for matches 59 57 Ind = where( Bstr eq BSC, Count ) … … 63 61 64 62 end 65 -
trunk/SRC/ToBeReviewed/UTILITAIRE/oups.pro
r237 r238 1 1 ;+ 2 2 ; 3 ; @file_comments 3 ; @file_comments 4 4 ; Kind of UNDO: 5 ; Allows to redo all the chain of drawing since the opening of the last window without 6 ; reexecute the last order Example: I do a drawing with 10 plot over it, if I make a 5 ; Allows to redo all the chain of drawing since the opening of the last window without 6 ; reexecute the last order Example: I do a drawing with 10 plot over it, if I make a 7 7 ; mistake, I execute this program and i can redo the only plot missed. 8 8 ; 9 ; @categories 9 ; @categories 10 10 ; utilities 11 11 ; 12 ; @restrictions 13 ; compatible with \@<pro>ps</pro> 12 ; @restrictions 13 ; compatible with \@<pro>ps</pro> 14 14 ; \@<pro>vzoom</pro> text_box... 15 15 ; 16 ; @history 16 ; @history 17 17 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 18 18 ; 19 ; @version 19 ; @version 20 20 ; $Id$ 21 21 ; 22 ; @todo 22 ; @todo 23 23 ; seb 24 24 ; … … 64 64 IF strpos(vectjournal[n_elements(vectjournal)-1],';,pos=[' ) NE -1 then $ 65 65 vectjournal[n_elements(vectjournal)-2] = '' $ 66 ELSE vectjournal[n_elements(vectjournal)-1] = '' 66 ELSE vectjournal[n_elements(vectjournal)-1] = '' 67 67 ; we rewrite idlsave.pro 68 68 putfile, myuniquetmpdir+'idlsave.pro', vectjournal … … 70 70 path_cache, /rebuild 71 71 ; apply idlsave 72 @idlsave 73 ; the journal has just been reopened, and we put elements of vectjournal in it. 72 @idlsave 73 ; the journal has just been reopened, and we put elements of vectjournal in it. 74 74 for i = 0, n_elements(vectjournal)-1 DO $ 75 75 journal, vectjournal[i] 76 77 76 78 77 78 -
trunk/SRC/ToBeReviewed/UTILITAIRE/vzoom.pro
r232 r238 1 1 ;+ 2 2 ; 3 ; @file_comments 4 ; Make a real zoom in a plot, contrarly at the function 3 ; @file_comments 4 ; Make a real zoom in a plot, contrarly at the function 5 5 ; ZOOM prewritten by IDL which just get pixels bigger. 6 6 ; 7 ; @categories 7 ; @categories 8 8 ; utilities 9 9 ; 10 ; @restrictions 10 ; @restrictions 11 11 ; use the journal. 12 ; 12 ; 13 13 ; @history 14 14 ; Sebastien Masson (smasson\@lodyc.jussieu.fr) 15 15 ; 29/4/1999 16 16 ; 17 ; @version 18 ; $Id$ 17 ; @version 18 ; $Id$ 19 19 ; 20 20 ; @todo … … 69 69 path_cache, /rebuild 70 70 ; apply idlsave 71 @idlsave 72 ; the journal has just been reopened, and we put in elements of vectjournal. 71 @idlsave 72 ; the journal has just been reopened, and we put in elements of vectjournal. 73 73 for i = 0, n_elements(vectjournal)-1 DO $ 74 74 journal, vectjournal[i] 75 76 77 -
trunk/SRC/ToBeReviewed/WIDGET/AUTOUR_de_XXX/scanfile.pro
r232 r238 224 224 ; 225 225 ; now we try to find the attribut called calendar... 226 ; the theattribute "calendar" exists?226 ; the attribute "calendar" exists? 227 227 ; If no, we suppose that the calendar is gregorian calendar 228 228 ; -
trunk/SRC/ToBeReviewed/WIDGET/COMPOUND_WIDGET/cw_slide_slice.pro
r232 r238 2 2 ; 3 3 ; @file_comments 4 ;5 4 ; 6 5 ; @categories -
trunk/SRC/ToBeReviewed/WIDGET/slec.pro
r231 r238 24 24 ; 5 elements: The extraction is made on [Boxzoom[0:3], 0, Boxzoom[4]] 25 25 ; 6 elements: The extraction is made on Boxzoom 26 ; Where lon1,lon2,lat1,lat2 are global variables defined at the last domdef!26 ; where lon1,lon2,lat1,lat2 are global variables defined at the last domdef! 27 27 ; 28 28 ; @keyword _EXTRA … … 48 48 ; 49 49 FUNCTION slec,name,debut,fin, nomexp, PARENT = parent, BOXZOOM=boxzoom, _EXTRA = ex 50 ;---------------------------------------------------------51 50 ; 52 51 compile_opt idl2, strictarrsubs -
trunk/SRC/Utilities/find.pro
r232 r238 9 9 ; all file_search keywords can be used. 10 10 ; 11 ; @categories 11 ; @categories 12 12 ; find a file 13 13 ; 14 ; @param FILEIN {in}{required} 14 ; @param FILEIN {in}{required} 15 15 ; A scalar or array variable of string type, containing 16 16 ; file names to match. Input names specifications may contain … … 20 20 ; completed with '.pro' 21 21 ; 22 ; @keyword FIRSTFOUND 22 ; @keyword FIRSTFOUND 23 23 ; activate this keyword to stop looking for the file as soon as we found one. 24 24 ; 25 ; @keyword IODIRECTORY {default=['.',!path]} 25 ; @keyword IODIRECTORY {default=['.',!path]} 26 26 ; A scalar or array variable of string type, containing 27 27 ; directories names where we are looking for the file. … … 32 32 ; keyword is not taken into account. 33 33 ; 34 ; @keyword LOOKALLDIR 34 ; @keyword LOOKALLDIR 35 35 ; activate to look for the file (with a recursive search if needed) 36 36 ; in . iodir, homedir, !path + the DATA:TestsData directory if it exists. 37 37 ; 38 ; @keyword NOPRO 38 ; @keyword NOPRO 39 39 ; activate to avoid the automatic search of filename completed with '.pro' 40 40 ; 41 ; @keyword ONLYPRO 41 ; @keyword ONLYPRO 42 42 ; force to look only at file ending with .pro 43 43 ; 44 ; @keyword ONLYNC 44 ; @keyword ONLYNC 45 45 ; force to look only at file ending with .nc 46 46 ; 47 ; @keyword RECURSIVE 47 ; @keyword RECURSIVE 48 48 ; performs recursive searching of directory hierarchies. 49 49 ; In a recursive search, find looks recursively for any and all 50 50 ; subdirectories in the file hierarchy rooted at the IODIRECTORY argument. 51 51 ; 52 ; @keyword REPERTOIRE 52 ; @keyword REPERTOIRE 53 53 ; obsolete. keep for compatibility, use directory keyword 54 54 ; 55 ; @keyword UNIQUE 55 ; @keyword UNIQUE 56 56 ; activate to make sure that each element of the output vector is unique. 57 57 ; 58 ; @keyword TRYFIND 58 ; @keyword TRYFIND 59 59 ; if the file was not found and this keyword is activated, find will call 60 60 ; itself with the keywords /LOOKALLDIR and /FIRSTFOUND to try to find 61 61 ; the file we are looking for. Note that if the file was found at the 62 ; first try this keyword as no effect (which is not the case with LOOKALLDIR) 62 ; first try this keyword as no effect (which is not the case with LOOKALLDIR) 63 63 ; 64 ; @keyword _EXTRA 64 ; @keyword _EXTRA 65 65 ; Used to pass keywords 66 66 ; 67 ; @returns 67 ; @returns 68 68 ; A scalar or array variable of string type, containing the 69 69 ; name (with the full path of the matching files. If no files -
trunk/SRC/Utilities/fitintobox.pro
r231 r238 47 47 RETURN, report(['Error: ' $ 48 48 , 'the vector size (' + tostr(sz) + ') is incompatible' $ 49 , 'with the thedomain dimensions ' $49 , 'with the domain dimensions ' $ 50 50 , '[jpi/nx, jpj/ny, jpk/nz, jpt] = [' $ 51 51 + strtrim(jpi, 1) + '/' + strtrim(nx, 1) $ … … 55 55 RETURN, report(['Error: ' $ 56 56 , 'the array dimensions ' + tostr(sz) + ' are incompatible' $ 57 , 'with the thedomain dimensions ' $57 , 'with the domain dimensions ' $ 58 58 , '[jpi/nx, jpj/ny, jpk/nz, jpt] = [' $ 59 59 + strtrim(jpi, 1) + '/' + strtrim(nx, 1) $ … … 97 97 ; or -1 if there is an error... 98 98 ; 99 ; @uses 99 ; @uses 100 100 ; cm_4mesh 101 101 ; cm_4cal … … 107 107 ; Error: 108 108 ; the array dimensions [180,148,78] are incompatible 109 ; with the thedomain dimensions109 ; with the domain dimensions 110 110 ; [jpi/nx, jpj/ny, jpk/nz, jpt] = [180/41, 148/3, 31/31, 1] 111 111 ; <Expression> INT = -1 … … 118 118 ; @version 119 119 ; $Id$ 120 ; 120 121 ;- 121 122 ;
Note: See TracChangeset
for help on using the changeset viewer.