source: tags/version-1.1/trunk/src/zfuv_UW_dynadv_cen2.h @ 24

Last change on this file since 24 was 1, checked in by jbrlod, 13 years ago

Import initial

  • Property svn:eol-style set to native
File size: 2.9 KB
Line 
1
2/***************************************************************************
3                 module classe zfuv_UW_dynadv_cen2.h  -  description
4***************************************************************************/
5// Mohamed Berrada
6// locean-ipsl.upmc, Paris, February 27, 2009
7//===========================================================================
8//                          methode forward
9forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5,YREAL x6,YREAL x7)
10{/*     x1      from    wa                      1  i    j    k    t-1
11        x2      from    wa                      1  i+1  j    k    t-1
12        x3      from    wa                      1  i    j+1  k    t-1
13        x4      from    ua                      1  i    j    k    t-1   
14        x5      from    ua                      1  i    j    k-1  t-1
15        x6      from    va                      1  i    j    k    t-1   
16        x7      from    va                      1  i    j    k-1  t-1*/
17
18  if(Yt==TU)
19    YS1=0.;
20  else{
21    double zfwij,zfwip1j,zfwijp1;
22    /*    if(Yk==0 && Yi==0 && Yj==0)
23          printf("Yt=%d\n",Yt);*/
24    if(Yk==NZ-1 || Yj==0 || Yj==NY-1 || Yi==0 || Yi==NX-1)
25      YS1=0.;
26    else{
27      zfwij=0.25*e1t(Yi,Yj)*e2t(Yi,Yj)*x1;
28      zfwip1j=0.25*e1t(Yi+1,Yj)*e2t(Yi+1,Yj)*x2;
29      zfwijp1=0.25*e1t(Yi,Yj+1)*e2t(Yi,Yj+1)*x3;
30      if(Yk==0){
31        YS1=2.*(zfwij+zfwip1j)*x4;
32        YS2=2.*(zfwij+zfwijp1)*x6;
33      }
34      else{
35        YS1=(zfwij+zfwip1j)*(x4+x5);
36        YS2=(zfwij+zfwijp1)*(x6+x7);
37      }
38    }
39  }
40  // 
41}
42
43//===========================================================================
44//                         methode  backward
45
46backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5,YREAL x6,YREAL x7)
47{
48  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;   YJ1I5=0.;     YJ1I6=0.;     YJ1I7=0.;
49  YJ2I1=0.;     YJ2I2=0.;   YJ2I3=0.;     YJ2I4=0.;   YJ2I5=0.;     YJ2I6=0.;     YJ2I7=0.;
50  if(Yt!=TU){ 
51    double zfwij,zfwip1j,zfwijp1,dzfwij_x1,dzfwip1j_x2,dzfwijp1_x3;
52    /*  if(Yk==0 && Yi==0 && Yj==0)
53        printf("Yt=%d\n",Yt);*/
54    if(Yk==NZ-1 || Yj==0 || Yj==NY-1 || Yi==0 || Yi==NX-1){
55      YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;   YJ1I5=0.;     YJ1I6=0.;     YJ1I7=0.;
56      YJ2I1=0.;     YJ2I2=0.;   YJ2I3=0.;     YJ2I4=0.;   YJ2I5=0.;     YJ2I6=0.;     YJ2I7=0.;
57    }
58    else{
59      zfwij=0.25*e1t(Yi,Yj)*e2t(Yi,Yj)*x1;
60      dzfwij_x1=0.25*e1t(Yi,Yj)*e2t(Yi,Yj);
61      zfwip1j=0.25*e1t(Yi+1,Yj)*e2t(Yi+1,Yj)*x2;
62      dzfwip1j_x2=0.25*e1t(Yi+1,Yj)*e2t(Yi+1,Yj);
63      zfwijp1=0.25*e1t(Yi,Yj+1)*e2t(Yi,Yj+1)*x3;
64      dzfwijp1_x3=0.25*e1t(Yi,Yj+1)*e2t(Yi,Yj+1);
65      if(Yk==0){
66        YJ1I1=2.*dzfwij_x1*x4;
67        YJ1I2=2.*dzfwip1j_x2*x4;
68        YJ1I4=2.*(zfwij+zfwip1j);
69
70        YJ2I1=2.*dzfwij_x1*x6;
71        YJ2I3=2.*dzfwijp1_x3*x6;
72        YJ2I6=2.*(zfwij+zfwijp1);
73      }
74      else{
75        YJ1I1=dzfwij_x1*(x4+x5);
76        YJ1I2=dzfwip1j_x2*(x4+x5);
77        YJ1I4=zfwij+zfwip1j;
78        YJ1I5=zfwij+zfwip1j;
79
80        YJ2I1=dzfwij_x1*(x6+x7);
81        YJ2I3=dzfwijp1_x3*(x6+x7);
82        YJ2I6=zfwij+zfwijp1;
83        YJ2I7=zfwij+zfwijp1;
84      }
85    }
86   
87  }
88}
89  //===========================================================================
90//********************* FIN DU MODULE zfu_UW_dynadv_cen2 **********************
Note: See TracBrowser for help on using the repository browser.