1 | /*************************************************************************** |
---|
2 | module classe hdivn.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 ua 1 i j k t |
---|
10 | 2 from ua 1 i-1 j k t |
---|
11 | 3 from va 1 i j k t |
---|
12 | 4 from va 1 i j-1 k t*/ |
---|
13 | if(Yt==TU){ |
---|
14 | YS1=hdivn_at_TU(Yi,Yj,Yk); |
---|
15 | // YS1=0.; |
---|
16 | } |
---|
17 | else{ |
---|
18 | if(Yi==0 || Yj==0 || Yi==NX-1 || Yj==NY-1 || Yk==NZ-1) |
---|
19 | YS1=0.; |
---|
20 | else |
---|
21 | YS1= ( e2u(Yi,Yj) * x1 - e2u(Yi-1,Yj ) * x2 + e1v(Yi,Yj) * x3 - e1v(Yi,Yj-1) * x4) / (e1t(Yi,Yj)*e2t(Yi,Yj)); |
---|
22 | } |
---|
23 | // |
---|
24 | } |
---|
25 | //=========================================================================== |
---|
26 | // methode backward |
---|
27 | |
---|
28 | backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4) |
---|
29 | { |
---|
30 | YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; |
---|
31 | |
---|
32 | if(Yt!=TU){ |
---|
33 | if(Yi==0 || Yj==0 || Yi==NX-1 || Yj==NY-1 || Yk==NZ-1){ |
---|
34 | YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; |
---|
35 | } |
---|
36 | else{ |
---|
37 | YJ1I1= e2u(Yi ,Yj )/ (e1t(Yi,Yj)*e2t(Yi,Yj)); |
---|
38 | YJ1I2= - e2u(Yi-1,Yj )/ (e1t(Yi,Yj)*e2t(Yi,Yj)); |
---|
39 | YJ1I3= e1v(Yi ,Yj )/ (e1t(Yi,Yj)*e2t(Yi,Yj)); |
---|
40 | YJ1I4= - e1v(Yi ,Yj-1)/ (e1t(Yi,Yj)*e2t(Yi,Yj)); |
---|
41 | } |
---|
42 | } |
---|
43 | // |
---|
44 | |
---|
45 | } |
---|
46 | |
---|
47 | //=========================================================================== |
---|
48 | //************************* FIN DU MODULE hdivn ************************* |
---|
49 | |
---|