Ignore:
Timestamp:
12/21/10 14:26:05 (14 years ago)
Author:
smasson
Message:

take into account the ssh in moyenne and grossemoyenne

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SRC/ToBeReviewed/CALCULS/moyenne.pro

    r424 r440  
    4545; To make an integral rather than an average 
    4646; 
     47; @keyword SSH 
     48; array giving the sea level elenation (in meter) that must be added 
     49; to the thickness of the first level when computing vertical mean 
     50; 
    4751; @keyword WDEPTH 
    4852; to specify that the field is at W depth instead of T 
     
    7377;- 
    7478FUNCTION moyenne, tab, direc, BOXZOOM=boxzoom, INTEGRATION=integration, KEEPBOTTOM = keepbottom $ 
    75                 , NAN=nan, NODOMDEF=nodomdef, WDEPTH=wdepth, _EXTRA=ex 
     79                , NAN=nan, NODOMDEF=nodomdef, SSH = ssh, WDEPTH=wdepth, _EXTRA=ex 
    7680; 
    7781  compile_opt idl2, strictarrsubs 
     
    143147  IF vargrid EQ 'W' THEN wdepth = 1 
    144148  grille, mask, glam, gphi, gdep, nx, ny, nz, firstx, firsty, firstz, lastx, lasty, lastz, e1, e2, e3, WDEPTH = wdepth 
     149;--------------------------------------------------------------- 
     150; check the use of ssh keyword... 
     151;--------------------------------------------------------------- 
     152  IF keyword_set(ssh) AND dirz NE 0 AND firstz EQ 0 AND taille[0] GE 2 THEN BEGIN 
     153    szssh = size(ssh) 
     154    IF szssh[1] NE taille[1] OR szssh[2] NE taille[2] THEN $ 
     155       return, report('ssh and input arrays must have the same size') 
     156    sshh = ssh 
     157  ENDIF 
    145158;------------------------------------------------------------ 
    146159;------------------------------------------------------------ 
     
    317330;--------------------------------------------------------------- 
    318331    case 1 of 
    319       taille[1] eq jpi and taille[2] eq jpj and taille[3] eq jpk: $ 
     332      taille[1] eq jpi and taille[2] eq jpj and taille[3] eq jpk:BEGIN 
    320333        res = tab[firstx:lastx, firsty:lasty, firstz:lastz] 
    321       taille[1] eq jpi and taille[2] eq jpj and taille[3] eq nz: $ 
     334        IF keyword_set(sshh) THEN sshh = sshh[firstx:lastx, firsty:lasty] 
     335      END 
     336      taille[1] eq jpi and taille[2] eq jpj and taille[3] eq nz:BEGIN  
    322337        res = tab[firstx:lastx, firsty:lasty, *] 
     338        IF keyword_set(sshh) THEN sshh = sshh[firstx:lastx, firsty:lasty] 
     339      END 
    323340      taille[1] EQ  nx and taille[2] eq  ny and taille[3] eq nz :res = tab 
    324341      taille[1] EQ  nx and taille[2] eq  ny and taille[3] eq jpk : $ 
     
    424441        e33 = replicate(1, 1.*nx*ny)#e3 
    425442        e33 = reform(e33, nx, ny, nz, /over) 
     443        IF keyword_set(sshh) THEN e33[*, *, 0] = e33[*, *, 0] + sshh 
    426444        IF keyword_set(key_partialstep) AND bottom[0] NE -1 THEN BEGIN 
    427445          IF keyword_set(wdepth) THEN $ 
     
    476494        e133 = e1[*]#e3 
    477495        e133 = reform(e133, nx, ny, nz, /over) 
     496        IF keyword_set(sshh) THEN e133[*, *, 0] = e133[*, *, 0] + sshh*e1 
    478497        IF keyword_set(key_partialstep) AND bottom[0] NE -1 THEN BEGIN 
    479498          IF keyword_set(wdepth) THEN $ 
     
    500519        e233 = e2[*]#e3 
    501520        e233 = reform(e233, nx, ny, nz, /over) 
     521        IF keyword_set(sshh) THEN e233[*, *, 0] = e233[*, *, 0] + sshh*e2 
    502522        IF keyword_set(key_partialstep) AND bottom[0] NE -1 THEN BEGIN 
    503523          IF keyword_set(wdepth) THEN $ 
     
    524544        e1233 = (e1*e2)[*]#e3 
    525545        e1233 = reform(e1233, nx, ny, nz, /over) 
     546        IF keyword_set(sshh) THEN e1233[*, *, 0] = e1233[*, *, 0] + sshh*e1*e2 
    526547        IF keyword_set(key_partialstep) AND bottom[0] NE -1 THEN BEGIN 
    527548          IF keyword_set(wdepth) THEN $ 
Note: See TracChangeset for help on using the changeset viewer.