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

Last change on this file since 170 was 170, checked in by pinsard, 15 years ago

fill uses paragraph in header with used commons

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