source: trunk/src/spguv_dynspg_flt.h @ 49

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

Import initial

  • Property svn:eol-style set to native
File size: 3.0 KB
Line 
1
2/***************************************************************************
3                 module classe spguv_dynspg_flt.h  -  description
4***************************************************************************/
5// Mohamed Berrada
6// locean-ipsl.upmc, Paris, April 20, 2009
7//===========================================================================
8//                          methode forward
9forward (YREAL x1,YREAL x2,YREAL x3)
10{/*     1       from    gcx2                    1  i+1  j         t
11        2       from    gcx2                    1  i    j         t
12        3       from    gcx2                    1  i    j+1       t*/
13
14  /* YS1  */
15  /*     A
16         R */
17  if(Yt==TU){
18    YS1=0.;
19    YS2=0.;
20  }
21  else{
22    double znugdt =  rnu * grav * r2dt;
23    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 ){
24      YS1=0.;
25    }
26    else{
27      //          ! trend of Transport divergence gradient
28      //    double   ztdgu = znugdt * (gcx(Yi+1,Yj  ) - gcx(Yi,Yj) ) / e1u(Yi,Yj);
29      //    double   ztdgv = znugdt * (gcx(Yi  ,Yj+1) - gcx(Yi,Yj) ) / e2v(Yi,Yj);
30      double   ztdgu = znugdt * (x1 - x2 ) / e1u(Yi,Yj);
31      double   ztdgv = znugdt * (x3 - x2 ) / e2v(Yi,Yj);
32      //        ! multiplied by z2dt
33      YS1 = r2dt * ztdgu;
34      YS2 = r2dt * ztdgv;
35    }
36  }
37  //
38  /*   if(Yt==6 && Yi==28 && Yj==3)  xtest("spg YS_spg",YS1,Yi,Yj,Yk,Yt);
39 if(Yt==6 && Yi==28 && Yj==3)  xtest("spg x1",x1,Yi,Yj,Yk,Yt);
40 if(Yt==6 && Yi==28 && Yj==3)  xtest("spg x2",x2,Yi,Yj,Yk,Yt);
41 if(Yt==6 && Yi==28 && Yj==3)  xtest("spg x3",x3,Yi,Yj,Yk,Yt);*/
42 
43}
44
45//===========================================================================
46//                         methode  backward
47
48backward (YREAL x1,YREAL x2,YREAL x3)
49{//(12 7 0; 4)
50  double znugdt,dztdgu_x1,dztdgu_x2,dztdgv_x2,dztdgv_x3;
51  YJ1I1=0.;     YJ1I2=0.;     YJ1I3=0.;
52  YJ2I1=0.;     YJ2I2=0.;     YJ2I3=0.;
53  if(Yt!=TU){ 
54     znugdt =  rnu * grav * r2dt;
55    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 ){
56      YJ1I1=0.;     YJ1I2=0.;     YJ1I3=0.;
57      YJ2I1=0.;     YJ2I2=0.;     YJ2I3=0.;
58    }
59    else{
60      //          ! trend of Transport divergence gradient
61      dztdgu_x1 =  znugdt / e1u(Yi,Yj);
62      dztdgu_x2 = -znugdt / e1u(Yi,Yj);
63      dztdgv_x2 = -znugdt / e2v(Yi,Yj);
64      dztdgv_x3 =  znugdt / e2v(Yi,Yj);
65      //        ! multiplied by z2dt
66      YJ1I1=r2dt * dztdgu_x1;
67      YJ1I2=r2dt * dztdgu_x2;
68      YJ1I3=0.;
69      YJ2I1=0.;
70      YJ2I2=r2dt * dztdgv_x2; 
71      YJ2I3=r2dt * dztdgv_x3;
72    }
73  }
74  //
75  /*  if(Yi==11 && Yj== 11 &&Yt==3)
76    {
77      if(Ycurward==BACKWARD)
78        printf("BACKWARD:\n");
79      if(Ycurward==LINWARD)
80        printf("LINWARD:\n");
81      printf("x1:%24.16e x2:%24.16e x3:%24.16e \n",x1,x2,x3);
82      // printf("znugdt:%24.16e  \n",znugdt);
83      printf("dztdgu_x1:%24.16e  \n",dztdgu_x1);
84      printf("dztdgu_x2:%24.16e  \n",dztdgu_x2);
85      printf("dztdgv_x2:%24.16e  \n",dztdgv_x2);
86      printf("dztdgv_x3:%24.16e  \n",dztdgv_x3);
87    }*/ 
88}
89
90  //===========================================================================
91//*************************  FIN DU MODULE spguv_dynspg_flt   *************************
92
Note: See TracBrowser for help on using the repository browser.