Changeset 13 for trunk/ToBeReviewed/GRILLE/grille.pro
- Timestamp:
- 04/28/06 14:18:03 (18 years ago)
- File:
-
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/ToBeReviewed/GRILLE/grille.pro
r12 r13 13 13 ; 14 14 ; CALLING SEQUENCE: 15 ; grille,mask,glam,gphi,gdep,nx,ny,nz, premierx,premiery,premierz,dernierx,derniery,dernierz,e1,e2,e315 ; grille,mask,glam,gphi,gdep,nx,ny,nz,firstx,firsty,firstz,lastx,lasty,lastz,e1,e2,e3 16 16 ; 17 17 ; INPUTS:rien. ATTENTION les choix de la grille se fait a partir de la … … 32 32 ; /NOTRI: utile seulement qd TRI est active. dans ce cas 33 33 ; grille retourne -1 ds la variable tri meme si la variable du 34 ; common triangles est definie et differente de -1 35 ; 36 ; OUTPUTS:mask,glam,gphi,gdep,nx,ny,nz,premierx,premiery,premierz, 37 ; dernierx,derniery,dernierz,e1,e2,e3 34 ; common triangles_list est definie et differente de -1 35 ; 36 ; /WDEPTH: to specify that the field is at W depth instad of T 37 ; depth (automatically activated if vargrid eq 'W') 38 ; 39 ; OUTPUTS:mask,glam,gphi,gdep,nx,ny,nz,firstx,firsty,firstz, 40 ; lastx,lasty,lastz,e1,e2,e3 38 41 ; 39 42 ; pour leur definition cf domdef et la gestion des sous … … 43 46 ; mask, glam et gphi il suffit de taper grille, mask, glam, gphi 44 47 ; 45 ; COMMON BLOCKS: 46 ; common.pro congridseb.pro 48 ; COMMON BLOCKS: cm_4mesh and cm_4data 47 49 ; 48 50 ; SIDE EFFECTS: utilise la variable globale vargird … … 59 61 ;------------------------------------------------------------ 60 62 ;------------------------------------------------------------ 61 pro grille, mask, glam, gphi, gdep, nx, ny,nz,premierx,premiery,premierz,dernierx, derniery, dernierz, e1,e2,e3, TRI = tri, NOTRI = notri, TOUT = tout, FORPLT = forplt, _EXTRA = ex 62 @common 63 tempsun = systime(1) ; pour key_performance 64 ;------------------------------------------------------------ 65 if keyword_set(tout) then begin 66 oldboite = [lon1, lon2, lat1, lat2, prof1, prof2] 67 domdef, grille = vargrid, _EXTRA = ex 68 endif 69 tempdeux = systime(1) ; pour key_performance =2 70 CASE 1 OF 71 ;------------------------------------------------------------ 72 ; grille T 73 ;------------------------------------------------------------ 74 vargrid eq 'OPAPTDHT' or vargrid eq 'OPAPT3DT' $ 75 or vargrid eq 'T': begin 63 pro grille, mask, glam, gphi, gdep, nx, ny, nz, firstx, firsty, firstz, lastx, lasty, lastz, e1, e2, e3, TRI = tri, NOTRI = notri, TOUT = tout, FORPLT = forplt, IFPLTZ = ifpltz, WDEPTH = wdepth, _EXTRA = ex 64 ;------------------------------------------------------------ 65 ; include commons 66 @cm_4mesh 67 @cm_4data 68 IF NOT keyword_set(key_forgetold) THEN BEGIN 69 @updatenew 70 ENDIF 71 ;--------------------- 72 tempsun = systime(1) ; pour key_performance 73 ;------------------------------------------------------------ 74 vargrid = strupcase(strmid(vargrid,0,/reverse_offset)) 75 ; 76 if vargrid eq 'W' then wdepth = 1 77 if keyword_set(tout) then begin 78 savedbox = 1b 79 saveboxparam, 'boxparam4grille.dat' 80 domdef, gridtype = vargrid, _EXTRA = ex 81 endif 82 tempdeux = systime(1) ; pour key_performance =2 83 ;------------------------------------------------------------ 84 ;------------------------------------------------------------ 85 IF keyword_set(wdepth) THEN BEGIN 86 firstz = firstzw 87 lastz = lastzw 88 nz = nzw 89 ENDIF ELSE BEGIN 90 firstz = firstzt 91 lastz = lastzt 92 nz = nzt 93 ENDELSE 94 ;------------------------------------------------------------ 95 ;------------------------------------------------------------ 96 CASE 1 OF 97 ;------------------------------------------------------------ 98 ; grille T and W 99 ;------------------------------------------------------------ 100 vargrid eq 'T' OR vargrid eq 'W' : begin 76 101 ;scalaires 77 nx=nxt 78 ny=nyt 79 nz=nzt 80 premierx = premierxt 81 premiery = premieryt 82 premierz = premierzt 83 dernierx = dernierxt 84 derniery = dernieryt 85 dernierz = dernierzt 102 nx = nxt 103 ny = nyt 104 firstx = firstxt 105 firsty = firstyt 106 lastx = lastxt 107 lasty = lastyt 86 108 ;vecteurs 2d 87 glam=glamt[premierx:dernierx, premiery:derniery]88 gphi=gphit[premierx:dernierx, premiery:derniery]89 e1 =e1t[premierx:dernierx, premiery:derniery]90 e2 =e2t[premierx:dernierx, premiery:derniery]109 IF n_elements(glam) NE 1 THEN glam = glamt[firstx:lastx, firsty:lasty] 110 IF n_elements(gphi) NE 1 THEN gphi = gphit[firstx:lastx, firsty:lasty] 111 IF n_elements(e1) NE 1 THEN e1 = e1t[firstx:lastx, firsty:lasty] 112 IF n_elements(e2) NE 1 THEN e2 = e2t[firstx:lastx, firsty:lasty] 91 113 ;vecteurs 3d 92 mask=tmask[premierx:dernierx, premiery:derniery, premierz:dernierz] 93 end 94 ;------------------------------------------------------------ 95 ; grille W 96 ;------------------------------------------------------------ 97 vargrid eq 'OPAPT3DW' or vargrid eq 'W': begin 114 IF keyword_set(forplt) THEN mask = tmask[firstx:lastx, firsty:lasty, firstz] $ 115 ELSE IF n_elements(mask) NE 1 THEN mask = tmask[firstx:lastx, firsty:lasty, firstz:lastz] 116 end 117 ;------------------------------------------------------------ 118 ; grille U 119 ;------------------------------------------------------------ 120 vargrid eq 'U': begin 98 121 ;scalaires 99 nx=nxt 100 ny=nyt 101 nz=nzw 102 premierx = premierxt 103 premiery = premieryt 104 premierz = premierzw 105 dernierx = dernierxt 106 derniery = dernieryt 107 dernierz = dernierzw 122 nx = nxu 123 ny = nyu 124 firstx = firstxu 125 firsty = firstyu 126 lastx = lastxu 127 lasty = lastyu 108 128 ;vecteurs 2d 109 terre = where(tmask[*, *, 0] EQ 0) 110 glam=glamt[premierx:dernierx, premiery:derniery] 111 gphi=gphit[premierx:dernierx, premiery:derniery] 112 e1 =e1t[premierx:dernierx, premiery:derniery] 113 e2 =e2t[premierx:dernierx, premiery:derniery] 129 IF n_elements(glam) NE 1 THEN glam = glamu[firstx:lastx, firsty:lasty] 130 IF n_elements(gphi) NE 1 THEN gphi = gphiu[firstx:lastx, firsty:lasty] 131 if keyword_set(forplt) then BEGIN 132 mask = 1b-tmask[firstx:lastx, firsty:lasty, firstz] 133 eastboarder = mask-shift(mask, 1, 0)*mask 134 westboarder = mask-shift(mask, -1, 0)*mask 135 if key_periodic NE 1 OR nx NE jpi then westboarder[nx-1, *] = 0b 136 tmp1 = shift(eastboarder, 0, 1) 137 tmp1[*, 0] = 0b 138 tmp2 = shift(eastboarder, 0, -1) 139 tmp2[*, ny-1] = 0b 140 add = (temporary(tmp1)+temporary(tmp2))*(1b-eastboarder)*(1b-temporary(westboarder)) 141 eastboarder = temporary(eastboarder)+temporary(add) 142 tmp1 = (mask+shift(mask, 0, -1)+shift(mask, 0, 1)) NE 1b 143 tmp1[*, ny-1] = 1b 144 tmp1[*, 0] = 1b 145 tmp2 = (mask+shift(mask, -1, 0)+shift(mask, 1, 0)) NE 1b 146 if key_periodic NE 1 OR nx NE jpi then begin 147 tmp2[nx-1, *] = 1b 148 tmp2[0, *] = 0b 149 endif 150 no1 = temporary(tmp1)*temporary(tmp2) 151 tmp = temporary(eastboarder)*temporary(no1)*mask 152 mask[0:nx-2, *] = 0b 153 tmp = temporary(tmp)+temporary(mask) 154 tmp = where(tmp GE 1) 155 if tmp[0] NE -1 then begin 156 glam[tmp] = (glamt[firstx:lastx, firsty:lasty])[tmp] 157 gphi[tmp] = (gphit[firstx:lastx, firsty:lasty])[tmp] 158 endif 159 ENDIF 160 IF n_elements(e1) NE 1 THEN e1 = e1u[firstx:lastx, firsty:lasty] 161 IF n_elements(e2) NE 1 THEN e2 = e2u[firstx:lastx, firsty:lasty] 114 162 ;vecteurs 3d 115 mask=tmask[premierx:dernierx, premiery:derniery, premierz:dernierz] 116 end 117 ;------------------------------------------------------------ 118 ; grille U 119 ;------------------------------------------------------------ 120 vargrid eq 'OPAPTDHU' or vargrid eq 'OPAPT3DU' $ 121 or vargrid eq 'U': begin 163 IF keyword_set(forplt) THEN mask = (umask())[firstx:lastx, firsty:lasty, firstz] $ 164 ELSE IF n_elements(mask) NE 1 THEN mask = (umask())[firstx:lastx, firsty:lasty, firstz:lastz] 165 end 166 ;------------------------------------------------------------ 167 ; grille V 168 ;------------------------------------------------------------ 169 vargrid eq 'OPAPTDHV' or vargrid eq 'OPAPT3DV' $ 170 or vargrid eq 'V': begin 122 171 ;scalaires 123 nx=nxu 124 ny=nyu 125 nz=nzt 126 premierx = premierxu 127 premiery = premieryu 128 premierz = premierzt 129 dernierx = dernierxu 130 derniery = dernieryu 131 dernierz = dernierzt 172 nx = nxv 173 ny = nyv 174 firstx = firstxv 175 firsty = firstyv 176 lastx = lastxv 177 lasty = lastyv 132 178 ;vecteurs 2d 133 glam=glamu[premierx:dernierx, premiery:derniery] 134 gphi=gphiu[premierx:dernierx, premiery:derniery] 135 if keyword_set(forplt) then BEGIN 136 mask = tmask[premierx:dernierx, premiery:derniery, niveau-1] 137 terre = where(mask EQ 0) 138 if terre[0] NE -1 then begin 139 glam[terre] = (glamt[premierx:dernierx, premiery:derniery])[terre] 140 gphi[terre] = (gphit[premierx:dernierx, premiery:derniery])[terre] 141 endif 142 ENDIF 143 e1 =e1u[premierx:dernierx, premiery:derniery] 144 e2 =e2u[premierx:dernierx, premiery:derniery] 179 IF n_elements(glam) NE 1 THEN glam = glamv[firstx:lastx, firsty:lasty] 180 IF n_elements(gphi) NE 1 THEN gphi = gphiv[firstx:lastx, firsty:lasty] 181 if keyword_set(forplt) then BEGIN 182 mask = 1b-tmask[firstx:lastx, firsty:lasty, firstz] 183 northboarder = mask-shift(mask, 0, 1)*mask 184 southboarder = mask-shift(mask, 0, -1)*mask 185 southboarder[*, ny-1] = 0b 186 tmp1 = shift(northboarder, -1, 0) 187 if key_periodic NE 1 OR nx NE jpi then tmp1[nx-1, *] = 0b 188 tmp2 = shift(northboarder, 1, 0) 189 if key_periodic NE 1 OR nx NE jpi then tmp2[0, *] = 0b 190 add = (temporary(tmp1)+temporary(tmp2))*(1b-northboarder)*(1b-southboarder) 191 northboarder = temporary(northboarder)+temporary(add) 192 tmp1 = (mask+shift(mask, 0, -1)+shift(mask, 0, 1)) NE 1b 193 tmp1[*, ny-1] = 1b 194 tmp1[*, 0] = 0b 195 tmp2 = (mask+shift(mask, -1, 0)+shift(mask, 1, 0)) NE 1b 196 if key_periodic NE 1 OR nx NE jpi then begin 197 tmp2[nx-1, *] = 1b 198 tmp2[0, *] = 1b 199 endif 200 no1 = temporary(tmp1)*temporary(tmp2) 201 tmp = temporary(northboarder)*mask*temporary(no1) 202 mask[*, 0:ny-2] = 0b 203 tmp = temporary(tmp)+temporary(mask) 204 tmp = where(tmp GE 1) 205 if tmp[0] NE -1 then begin 206 glam[tmp] = (glamt[firstx:lastx, firsty:lasty])[tmp] 207 gphi[tmp] = (gphit[firstx:lastx, firsty:lasty])[tmp] 208 endif 209 ENDIF 210 IF n_elements(e1) NE 1 THEN e1 = e1v[firstx:lastx, firsty:lasty] 211 IF n_elements(e2) NE 1 THEN e2 = e2v[firstx:lastx, firsty:lasty] 145 212 ;vecteurs 3d 146 mask=(umask())[premierx:dernierx, premiery:derniery, premierz:dernierz] 147 end 148 ;------------------------------------------------------------ 149 ; grille V 150 ;------------------------------------------------------------ 151 vargrid eq 'OPAPTDHV' or vargrid eq 'OPAPT3DV' $ 152 or vargrid eq 'V': begin 213 IF keyword_set(forplt) THEN mask = (vmask())[firstx:lastx, firsty:lasty, firstz] $ 214 ELSE IF n_elements(mask) NE 1 THEN mask = (vmask())[firstx:lastx, firsty:lasty, firstz:lastz] 215 end 216 ;------------------------------------------------------------ 217 ; grille F 218 ;------------------------------------------------------------ 219 vargrid eq 'OPAPTDHF' or vargrid eq 'OPAPT3DF' $ 220 or vargrid eq 'F': begin 153 221 ;scalaires 154 nx=nxv 155 ny=nyv 156 nz=nzt 157 premierx = premierxv 158 premiery = premieryv 159 premierz = premierzt 160 dernierx = dernierxv 161 derniery = dernieryv 162 dernierz = dernierzt 222 nx = nxf 223 ny = nyf 224 firstx = firstxf 225 firsty = firstyf 226 lastx = lastxf 227 lasty = lastyf 163 228 ;vecteurs 2d 164 glam=glamv[premierx:dernierx, premiery:derniery] 165 gphi=gphiv[premierx:dernierx, premiery:derniery] 166 if keyword_set(forplt) then BEGIN 167 mask = tmask[premierx:dernierx, premiery:derniery, niveau-1] 168 terre = where(mask EQ 0) 169 if terre[0] NE -1 then begin 170 glam[terre] = (glamt[premierx:dernierx, premiery:derniery])[terre] 171 gphi[terre] = (gphit[premierx:dernierx, premiery:derniery])[terre] 172 endif 173 ENDIF 174 e1 =e1v[premierx:dernierx, premiery:derniery] 175 e2 =e2v[premierx:dernierx, premiery:derniery] 229 IF n_elements(glam) NE 1 THEN glam = glamf[firstx:lastx, firsty:lasty] 230 IF n_elements(gphi) NE 1 THEN gphi = gphif[firstx:lastx, firsty:lasty] 231 if keyword_set(forplt) then BEGIN 232 mask = 1b-tmask[firstx:lastx, firsty:lasty, firstz] 233 eastboarder = mask-shift(mask, 1, 0)*mask 234 westboarder = mask-shift(mask, -1, 0)*mask 235 westboarder[nx-1, *] = 0b 236 northboarder = mask-shift(mask, 0, 1)*mask 237 southboarder = mask-shift(mask, 0, -1)*mask 238 southboarder[*, ny-1] = 0b 239 tmp1 = shift(northboarder, -1, 0) 240 if key_periodic NE 1 OR nx NE jpi then tmp1[nx-1, *] = 0b 241 tmp2 = shift(northboarder, 1, 0) 242 if key_periodic NE 1 OR nx NE jpi then tmp2[0, *] = 0b 243 add = (temporary(tmp1)+temporary(tmp2))*(1b-northboarder)*(1b-southboarder) 244 northboarder = temporary(northboarder)+temporary(add) 245 tmp1 = shift(eastboarder, 0, 1) 246 tmp1[*, 0] = 0b 247 tmp2 = shift(eastboarder, 0, -1) 248 tmp2[*, ny-1] = 0b 249 add = (temporary(tmp1)+temporary(tmp2))*(1b-eastboarder)*(1b-temporary(westboarder)) 250 eastboarder = temporary(eastboarder)+temporary(add) 251 tmp1 = (mask+shift(mask, 0, -1)+shift(mask, 0, 1)) NE 1b 252 tmp1[*, ny-1] = 1b 253 tmp1[*, 0] = 1b 254 tmp2 = (mask+shift(mask, -1, 0)+shift(mask, 1, 0)) NE 1b 255 if key_periodic NE 1 OR nx NE jpi then begin 256 tmp2[nx-1, *] = 1b 257 tmp2[0, *] = 1b 258 endif 259 no1 = temporary(tmp1)*temporary(tmp2) 260 tmp = (temporary(northboarder)+temporary(eastboarder))*mask*temporary(no1) 261 mask[0:nx-2, *] = 0b 262 mask[*, 0:ny-2] = 0b 263 tmp = temporary(tmp)+temporary(mask) 264 tmp = where(tmp GE 1) 265 if tmp[0] NE -1 then begin 266 glam[tmp] = (glamt[firstx:lastx, firsty:lasty])[tmp] 267 gphi[tmp] = (gphit[firstx:lastx, firsty:lasty])[tmp] 268 endif 269 ENDIF 270 IF n_elements(e1) NE 1 THEN e1 = e1f[firstx:lastx, firsty:lasty] 271 IF n_elements(e2) NE 1 THEN e2 = e2f[firstx:lastx, firsty:lasty] 176 272 ;vecteurs 3d 177 mask=(vmask())[premierx:dernierx, premiery:derniery, premierz:dernierz] 178 end 179 ;------------------------------------------------------------ 180 ; grille F 181 ;------------------------------------------------------------ 182 vargrid eq 'OPAPTDHF' or vargrid eq 'OPAPT3DF' $ 183 or vargrid eq 'F': begin 184 ;scalaires 185 nx=nxf 186 ny=nyf 187 nz=nzt 188 premierx = premierxf 189 premiery = premieryf 190 premierz = premierzt 191 dernierx = dernierxf 192 derniery = dernieryf 193 dernierz = dernierzt 194 ;vecteurs 2d 195 glam=glamf[premierx:dernierx, premiery:derniery] 196 gphi=gphif[premierx:dernierx, premiery:derniery] 197 if keyword_set(forplt) then BEGIN 198 mask = tmask[premierx:dernierx, premiery:derniery, niveau-1] 199 terre = where(mask EQ 0) 200 if terre[0] NE -1 then begin 201 glam[terre] = (glamt[premierx:dernierx, premiery:derniery])[terre] 202 gphi[terre] = (gphit[premierx:dernierx, premiery:derniery])[terre] 203 endif 204 ENDIF 205 e1 =e1f[premierx:dernierx, premiery:derniery] 206 e2 =e2f[premierx:dernierx, premiery:derniery] 207 ;vecteurs 3d 208 mask=(fmask())[premierx:dernierx, premiery:derniery, premierz:dernierz] 273 IF keyword_set(forplt) THEN mask = (fmask())[firstx:lastx, firsty:lasty, firstz] $ 274 ELSE IF n_elements(mask) NE 1 THEN mask = (fmask())[firstx:lastx, firsty:lasty, firstz:lastz] 275 END 276 ;------------------------------------------------------------ 277 ELSE:BEGIN 278 ras = report('Wrong definition of vargrid = '+vargrid+'. Only T, U, V, W or F are acceptable') 279 stop 280 END 281 ENDCASE 282 IF testvar(var = key_performance) EQ 2 THEN $ 283 print, 'temps grille: attribution des scalaires, vecteurs et tableaux ', systime(1)-tempdeux 284 ; 285 ;------------------------------------------------------------ 286 ;------------------------------------------------------------ 287 ;------------------------------------------------------------ 288 ; Variables se rapportant a la dimension verticale 289 ;------------------------------------------------------------ 290 ;------------------------------------------------------------ 291 ;------------------------------------------------------------ 292 ; 293 ; 294 tempdeux = systime(1) ; pour key_performance =2 295 if keyword_set(wdepth) then begin 296 gdep = gdepw[firstz:lastz] 297 e3 = e3w[firstz:lastz] 298 endif else begin 299 gdep = gdept[firstz:lastz] 300 e3 = e3t[firstz:lastz] 301 ENDELSE 302 ; for the vertical sections with partial steps 303 IF keyword_set(ifpltz) AND keyword_set(key_partialstep) THEN BEGIN 304 CASE 1 OF 305 ifpltz EQ 'xz' AND ny EQ 1:BEGIN 306 bottom = total(tmask[firstx:lastx, firsty:lasty, firstz:lastz], 3) 307 good = where(bottom NE 0 AND bottom NE nz+keyword_set(wdepth)) 308 bottom = lindgen(nx)+(bottom-1l+keyword_set(wdepth))*nx 309 IF good[0] NE -1 THEN BEGIN 310 bottom = bottom[good] 311 IF lastz EQ jpk-1 THEN gdep[nz-1] = max(hdepw) 312 gdep = replicate(1, nx)#gdep 313 if keyword_set(wdepth) THEN $ 314 truegdep = hdepw[firstx:lastx, firsty:lasty] $ 315 ELSE truegdep = hdept[firstx:lastx, firsty:lasty] 316 gdep[bottom] = truegdep[good] 317 ENDIF 209 318 END 210 ;------------------------------------------------------------ 211 ELSE:BEGIN 212 ras = report('Vauvaise definition de la variable vargrid: '+vargrid+'ceete variable doit etre T, U, V, W ou F') 213 stop 319 ifpltz EQ 'yz' AND nx EQ 1:BEGIN 320 bottom = total(tmask[firstx:lastx, firsty:lasty, firstz:lastz], 3) 321 good = where(bottom NE 0 AND bottom NE nz+keyword_set(wdepth)) 322 bottom = lindgen(ny)+(bottom-1l+keyword_set(wdepth))*ny 323 IF good[0] NE -1 THEN BEGIN 324 bottom = bottom[good] 325 IF lastz EQ jpk-1 THEN gdep[nz-1] = max(hdepw) 326 gdep = replicate(1, ny)#gdep 327 if keyword_set(wdepth) THEN $ 328 truegdep = hdepw[firstx:lastx, firsty:lasty] $ 329 ELSE truegdep = hdept[firstx:lastx, firsty:lasty] 330 gdep[bottom] = truegdep[good] 331 ENDIF 214 332 END 215 ENDCASE 216 IF testvar(var = key_performance) EQ 2 THEN $ 217 print, 'temps grille: attribution des scalaires, vecteurs et tableaux ', systime(1)-tempdeux 218 ;------------------------------------------------------------ 219 ; Variables se rapportant a la dimension verticale 220 ;------------------------------------------------------------ 221 tempdeux = systime(1) ; pour key_performance =2 222 if vargrid eq 'OPAPT3DW' or vargrid eq 'W' then begin 223 gdep = gdepw[premierz:dernierz] 224 e3=e3w[premierz:dernierz] 225 endif else begin 226 gdep = gdept[premierz:dernierz] 227 e3=e3t[premierz:dernierz] 228 endelse 229 IF testvar(var = key_performance) EQ 2 THEN $ 333 ELSE: 334 ENDCASE 335 ENDIF 336 IF testvar(var = key_performance) EQ 2 THEN $ 230 337 print, 'temps grille: Variables se rapportant a la dimension verticale ', systime(1)-tempdeux 231 338 ;------------------------------------------------------------ 232 339 ; vecteur triangulation Qd TRI est active 233 340 ;------------------------------------------------------------ 234 235 if triangles [0] EQ -1 OR keyword_set(notri) then tri = -1 ELSE BEGIN236 tempdeux = systime(1); pour key_performance =2237 238 msk[premierx:dernierx,premiery:derniery] = 1239 ind = where( msk[triangles[0, *]]*msk[triangles[1, *]]*msk[triangles[2, *]] EQ 1 )240 tri =triangles[*, ind]-(premierx+premiery*jpi)241 242 243 244 245 246 341 if arg_present(TRI) then $ 342 if triangles_list[0] EQ -1 OR keyword_set(notri) then tri = -1 ELSE BEGIN 343 tempdeux = systime(1) ; pour key_performance =2 344 msk = bytarr(jpi, jpj) 345 msk[firstx:lastx, firsty:lasty] = 1 346 ind = where( msk[triangles_list[0, *]]*msk[triangles_list[1, *]]*msk[triangles_list[2, *]] EQ 1 ) 347 tri = triangles_list[*, ind]-(firstx+firsty*jpi) 348 y = tri/jpi 349 x = tri-y*jpi 350 tri = x+y*nx 351 IF testvar(var = key_performance) EQ 2 THEN $ 352 print, 'temps grille: decoupage de la triangulation ', systime(1)-tempdeux 353 ENDELSE 247 354 ;------------------------------------------------------------------ 248 355 ; pour s'assurer qu'il n'y a pas de dimension degenerees (=1) … … 256 363 ; e3=reform(e3, /over) 257 364 258 if keyword_set(tout) then domdef, oldboite, grille = vargrid 259 if keyword_set(key_performance) THEN print, 'temps grille', systime(1)-tempsun 260 261 return 365 if keyword_set(savedbox) THEN restoreboxparam, 'boxparam4grille.dat' 366 if keyword_set(key_performance) THEN print, 'temps grille', systime(1)-tempsun 367 368 ;------------------------------------------------------------ 369 IF NOT keyword_set(key_forgetold) THEN BEGIN 370 @updateold 371 ENDIF 372 ;--------------------- 373 return 262 374 263 375 end
Note: See TracChangeset
for help on using the changeset viewer.