1 | /*************************************************************************** |
---|
2 | module classe rotn.h - description |
---|
3 | ***************************************************************************/ |
---|
4 | // Mohamed Berrada |
---|
5 | // locean-ipsl.upmc, Paris, April 27, 2009 |
---|
6 | //=========================================================================== |
---|
7 | // methode forward |
---|
8 | forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4) |
---|
9 | { /* 1 from va 1 i+1 j k t |
---|
10 | 2 from va 1 i j k t |
---|
11 | 3 from ua 1 i j+1 k t |
---|
12 | 4 from ua 1 i j k t*/ |
---|
13 | |
---|
14 | if(Yt==TU){ |
---|
15 | YS1=rotn_at_TU(Yi,Yj,Yk); |
---|
16 | // YS1=0.; |
---|
17 | } |
---|
18 | else{ |
---|
19 | if( Yi==NX-1||Yj==NY-1||Yk==NZ-1) |
---|
20 | YS1=0.; |
---|
21 | else |
---|
22 | YS1 = (e2v(Yi+1,Yj)*x1-e2v(Yi,Yj)*x2-e1u(Yi,Yj+1)*x3+e1u(Yi,Yj)*x4)*fmask(Yi,Yj,Yk) / (e1f(Yi,Yj)*e2f(Yi,Yj)); |
---|
23 | } |
---|
24 | // |
---|
25 | } |
---|
26 | //=========================================================================== |
---|
27 | // methode backward |
---|
28 | |
---|
29 | backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4) |
---|
30 | { |
---|
31 | YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; |
---|
32 | |
---|
33 | if(Yt!=TU){ |
---|
34 | if( Yi==NX-1||Yj==NY-1||Yk==NZ-1){ |
---|
35 | YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; |
---|
36 | } |
---|
37 | else{ |
---|
38 | YJ1I1= e2v(Yi+1,Yj )*fmask(Yi,Yj,Yk)/ (e1f(Yi,Yj)*e2f(Yi,Yj)); |
---|
39 | YJ1I2= -e2v(Yi ,Yj )*fmask(Yi,Yj,Yk)/ (e1f(Yi,Yj)*e2f(Yi,Yj)); |
---|
40 | YJ1I3= -e1u(Yi ,Yj+1)*fmask(Yi,Yj,Yk)/ (e1f(Yi,Yj)*e2f(Yi,Yj)); |
---|
41 | YJ1I4= e1u(Yi ,Yj )*fmask(Yi,Yj,Yk)/ (e1f(Yi,Yj)*e2f(Yi,Yj)); |
---|
42 | } |
---|
43 | } |
---|
44 | // |
---|
45 | |
---|
46 | } |
---|
47 | |
---|
48 | //=========================================================================== |
---|
49 | //************************* FIN DU MODULE rotn ************************* |
---|
50 | |
---|