source: trunk/tools/density_binning/density_bin_IDL_gm/msf.pro @ 165

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

homogenize PRO and FUNCTION lines (case and following lines)

  • Property svn:keywords set to Id
File size: 1.4 KB
Line 
1;+
2;
3; Calcul de la Fonction de Courant a travers les lignes J
4;
5;
6; @history
7;  creation : 12/02/99 M Imbard
8;  Modification : 12/11/98 G. Roullet
9;                 18/11/98 G. Roullet
10; @version
11; $Id$
12;
13;-
14PRO msf, v, sf $
15    , MSK=msk
16;
17@common
18COMMON moy, zonmsk, mermsk, jpl
19IF n_elements(jpl) EQ 0 THEN jpl = jpj
20;
21;  jpl bandes de latitudes
22;
23fm = fltarr(jpl, jpk)
24sf = fltarr(jpl, jpk)
25msfmsk = fltarr(jpl, jpk)
26zv = v
27z = zv
28ze1v = zv
29ze3v = zv
30vert = replicate(1, jpk)
31;
32;  Masque de u pour un calcul de msf sur le sous domaine msk(jpi,jpj)
33;
34IF n_elements(msk) NE 0 THEN BEGIN
35      zvmask = boundperio( (msk +shift(msk, 0, -1) ) < 1 )
36      zvmask = zvmask(*)#vert
37      zv = zv*zvmask
38ENDIF
39;
40;  Ecriture "tricky" optimisee... si vous avez compris comment
41;  on calculait un flux a partir de champ 2D, vous avez fait le
42;  plus dur : ici on generalise a 3D d''ou l''utilisation de #vert
43;
44;  calcul du flux
45;
46FOR i = 0, jpi-1 DO BEGIN for j= 0, jpj-1 do begin ze1v(i,j,*) = replicate(e1v(i,j),jpk) & endfor &endfor
47FOR k = 0, jpk-1 DO BEGIN ze3v(*,*,k)=replicate(e3t(k),jpi*jpj) & endfor
48;
49z= -v*ze1v*ze3v
50;
51;  integration zonale du flux !
52;
53fm = total(z, 1)
54;
55;  calcul de la msf en integrant depuis le fond
56;
57FOR k = jpk-2, 0, -1 DO begin sf(*, k) = sf(*, k+1)+fm(*, k) & endfor
58;
59;  msfmsk est le masque associe a msf (utilise pour les graphiques)
60;
61msfmsk = fm NE 0.
62;
63END
Note: See TracBrowser for help on using the repository browser.