source: trunk/tools/density_binning/density_bin_IDL_gm/msfs.pro @ 2

Last change on this file since 2 was 2, checked in by post_it, 17 years ago

Initial import from ~/POST_IT/

File size: 1.5 KB
Line 
1function msfs, msfin, sigma_values, mask=mask, orca=orca
2@common
3msf=msfin
4;-------------------------
5jpk=(size(msf))[3]
6gdept=[min(sigma_values)-0.1,sigma_values]
7gdepw=[min(sigma_values)-0.1,sigma_values]+0.05
8e3t=replicate(1,jpk)
9e3w=replicate(1,jpk)
10tmask=replicate(1b,jpi,jpj,jpk)
11domdef,0,jpi-1,0,jpj-1,0,jpk-1,/index
12
13
14if keyword_set(mask) then begin
15      print, 'subdomain: use of mask argument'
16;       print, mask
17     if (size(mask))[0] eq 2 then msf=msf*reform(mask[*]#replicate(1,jpk),jpi,jpj,jpk)
18endif
19;
20msf=total(msf*(e1v[*]#replicate(1,jpk)),1,/nan)
21msf=1e-6*msf
22
23mmsk=msf
24indm=where(mmsk NE 0 )
25mmsk(indm)=1
26
27msf=total(msf,2,/cumulative)
28;msf=total(msf,2,/cumulative,/nan)
29msf=shift(msf,0,1)
30; if sub basin, substract the bottom value (equivalent to upward integration)
31if keyword_set(mask) then begin
32     for k=0, jpk-1 do begin
33       for j=0,jpj-1 do begin
34            msf(j,k) = msf(j,k) - msf(j,jpk-1)
35          endfor
36        endfor
37endif
38
39; mask the msf
40msf=msf*mmsk
41
42varname='Meridional Stream Function'
43varunit='Sv'
44vargrid='W'
45
46
47if keyword_set(orca) then begin
48        case orca of
49                2:ixref=51-1
50                .5:ixref=204-1
51                .25:ixref=408-1
52                else:ixref=0
53        endcase
54        ixref=ixref-ixminmesh
55        ixref=ixref+key_shift
56        ixref=ixref mod jpi
57        if ixref lt 0 then ixref=ixref+jpi
58endif else ixref=0
59domdef,ixref,ixref,0,jpj-1,0,jpk-1,/index,grille=['T','W']
60;terre=where(total(vmask()*mask,1) eq 0)
61;if n_elements(valmask) eq 0 then valmask=1e20
62;if terre[0] ne -1 then msf[terre]=valmask
63
64;------------------------
65return, msf
66end
Note: See TracBrowser for help on using the repository browser.