Changeset 440 for trunk/SRC/ToBeReviewed/CALCULS/grossemoyenne.pro
- Timestamp:
- 12/21/10 14:26:05 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SRC/ToBeReviewed/CALCULS/grossemoyenne.pro
r424 r440 61 61 ; mean even if NAN is activated (see SPATIALFIRST explanations...) 62 62 ; 63 ; @keyword SSH 64 ; array giving the sea level elenation (in meter) that must be added 65 ; to the thickness of the first level when computing vertical mean 66 ; 63 67 ; @keyword WDEPTH 64 68 ; to specify that the field is at W depth instead of T … … 89 93 ;- 90 94 FUNCTION grossemoyenne, tab, direc, BOXZOOM=boxzoom, INTEGRATION=integration, KEEPBOTTOM = keepbottom $ 91 , NAN=nan, NODOMDEF=nodomdef, WDEPTH=wdepth $95 , NAN=nan, NODOMDEF=nodomdef, WDEPTH=wdepth, ssh=ssh $ 92 96 , SPATIALFIRST=spatialfirst, TEMPORALFIRST=temporalfirst $ 93 97 , _EXTRA=ex … … 164 168 ;--------------------------------------------------------------- 165 169 grille, mask, glam, gphi, gdep, nx, ny, nz, firstx, firsty, firstz, lastx, lasty, lastz, e1, e2, e3, WDEPTH = wdepth 170 ;--------------------------------------------------------------- 171 ; check the use of ssh keyword... 172 ;--------------------------------------------------------------- 173 IF keyword_set(ssh) AND dirz NE 0 AND firstz EQ 0 AND taille[0] GT 2 THEN BEGIN 174 szssh = size(ssh) 175 IF szssh[1] NE taille[1] OR szssh[2] NE taille[2] THEN $ 176 return, report('ssh and input arrays must have the same size') 177 sshh = ssh 178 ENDIF 166 179 ;------------------------------------------------------------ 167 180 ; I.4) if dirt equal 1, we make the temporal average and we send it in moyenne 168 181 ;------------------------------------------------------------ 169 if dirt EQ 1 AND NOT keyword_set(spatialfirst) then begin 182 if dirt EQ 1 AND NOT keyword_set(spatialfirst) then BEGIN 183 IF keyword_set(sshh) THEN return, report('ssh and temporal mean: case not coded...') 170 184 if dim EQ 3d then BEGIN 171 185 case 1 of … … 338 352 ;--------------------------------------------------------------- 339 353 case 1 of 340 taille[1] eq jpi and taille[2] eq jpj and taille[3] eq jpk and taille[4] eq jpt: $354 taille[1] eq jpi and taille[2] eq jpj and taille[3] eq jpk and taille[4] eq jpt:BEGIN 341 355 res = tab[firstx:lastx, firsty:lasty, firstz:lastz, *] 342 taille[1] eq jpi and taille[2] eq jpj and taille[3] eq nz and taille[4] eq jpt: $ 356 IF keyword_set(sshh) THEN sshh = sshh[firstx:lastx, firsty:lasty, *] 357 END 358 taille[1] eq jpi and taille[2] eq jpj and taille[3] eq nz and taille[4] eq jpt:BEGIN 343 359 res = tab[firstx:lastx, firsty:lasty, *, *] 360 IF keyword_set(sshh) THEN sshh = sshh[firstx:lastx, firsty:lasty, *] 361 END 344 362 taille[1] EQ nx and taille[2] eq ny and taille[3] eq nz and taille[4] eq jpt:res = tab 345 363 taille[1] EQ nx and taille[2] eq ny and taille[3] eq jpk and taille[4] eq jpt: $ … … 455 473 echelle = (temporary(e33)*temporary(mask))[*]#replicate(1, jpt) 456 474 echelle = reform(echelle, nx, ny, nz, jpt, /over) 475 IF keyword_set(sshh) THEN echelle[*, *, 0, *] = echelle[*, *, 0, *] + sshh 457 476 if keyword_set(integration) then divi = 1 ELSE begin 458 477 IF msknan[0] NE -1 THEN divi = total(echelle*msknan, 3) $ … … 506 525 echelle = (temporary(e133[*])*temporary(mask[*]))#replicate(1, jpt) 507 526 echelle = reform(echelle, nx, ny, nz, jpt, /over) 527 IF keyword_set(sshh) THEN echelle[*, *, 0, *] = echelle[*, *, 0, *] + sshh*( e1[*]#replicate(1., jpt) ) 508 528 if keyword_set(integration) then divi = 1 ELSE begin 509 529 IF msknan[0] NE -1 THEN divi = total(total(echelle*msknan, 1), 2) $ … … 527 547 echelle = (temporary(e233[*])*temporary(mask[*]))#replicate(1, jpt) 528 548 echelle = reform(echelle, nx, ny, nz, jpt, /over) 549 IF keyword_set(sshh) THEN echelle[*, *, 0, *] = echelle[*, *, 0, *] + sshh*( e2[*]#replicate(1., jpt) ) 529 550 if keyword_set(integration) then divi = 1 ELSE begin 530 551 IF msknan[0] NE -1 THEN divi = total(total(echelle*msknan, 2), 2) $ … … 548 569 echelle = (temporary(e1233[*])*temporary(mask[*]))#replicate(1, jpt) 549 570 echelle = reform(echelle, nx, ny, nz, jpt, /over) 571 IF keyword_set(sshh) THEN echelle[*, *, 0, *] = echelle[*, *, 0, *] + sshh*( (e1[*]*e2[*])#replicate(1., jpt) ) 550 572 if keyword_set(integration) then divi = 1 ELSE begin 551 573 IF msknan[0] NE -1 THEN divi = total(total(total(echelle*msknan, 1), 1), 1) $
Note: See TracChangeset
for help on using the changeset viewer.