source: trunk/src/tb.h

Last change on this file was 72, checked in by jbrlod, 13 years ago

test du qs

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1/***************************************************************************
2                 module classe tb.h  -  description
3***************************************************************************/
4// Mohamed Berrada
5// locean-ipsl.upmc, Paris, April 2, 2009
6//===========================================================================
7//                          methode forward
8forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4)
9{ /*    1       from    tb                      1  i    j    k    t-1
10        2       from    ta                      1  i    j    k    t-1
11        3       from    ta                      1  i    j    k    t
12        4       from    ta_c                    1  i    j    k     */
13
14  if(Yt==TU){
15#ifdef YE_ta_c
16    if( ndiag_rst==0)
17      YS1=x4;
18    else{
19      if( neuler == 0)
20        YS1=x4;
21      else 
22        YS1=tb_neuler1(Yi,Yj,Yk);
23    }
24#else
25    if( neuler == 0)//   ! Euler 1st time step : swap only
26      YS1=x4;
27    else
28      YS1=tb_neuler1(Yi,Yj,Yk); // valeur chargee depuis restart (neuler=1)
29#endif
30  }
31  else{
32    if(Yk!=NZ-1){
33#ifdef YE_ta_c
34      if( Yt == TU+1 && ndiag_rst == 0)//   ! Euler 1st time step : swap only
35#else
36      if( Yt == TU+1 && neuler == 0)//   ! Euler 1st time step : swap only
37#endif
38        YS1=x2;
39      else
40        YS1 = atfp*(x1+x3)+atfp1*x2;
41      // pour generer le tourbillon
42      /*  YS1=YS1+exp(-((Yi+1.-(3.*NX)/4.)*(Yi+1.-(3.*NX)/4.)+
43          (Yj+1.-(3.*NY)/4.)*(Yj+1.-(3.*NY)/4.))/4.)
44          *(1.-exp(-double(Yk+1.-NZ)/NZ))*(1.-exp(-double(Yt-TU)/24.));*/
45#ifdef EDDY
46      if (Yt<27)
47      //pour generer un tourbillon à Yi=19 et Yj=13
48      YS1=YS1+4*exp(-0.75*((Yi - 17.*(NX/32.))*(Yi - 17.*(NX/32.))+ 
49                    (Yj - 10.*(NY/22.))*(Yj - 10.*(NY/22.))))
50        *(1.-exp(-double(Yk+1.-NZ)/NZ))*(1.-exp(-double(Yt-TU)/24.));
51#endif
52        }
53  }
54  //
55}
56    //===========================================================================
57    //                         methode  backward
58
59backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4)
60{
61  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;
62  if(Yt==TU){
63    //YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;  YJ1I4=0.; 
64#ifdef YE_ta_c
65    //if(Yi==28 && Yj==12)
66    YJ1I4=1.;
67#else
68    if( neuler == 0)//   ! Euler 1st time step : swap only
69      YJ1I4=1.;//
70    else
71       YJ1I4=0.;//
72#endif
73  }
74  else{
75    if(Yk!=NZ-1){
76#ifdef YE_ta_c
77      if( Yt == TU+1){//   ! Euler 1st time step : swap only
78          YJ1I1=0.;     YJ1I2=1.;   YJ1I3=0.;     YJ1I4=0.;
79      }
80#else
81        if( Yt == TU+1 && neuler == 0){//   ! Euler 1st time step : swap only
82          YJ1I1=0.;     YJ1I2=1.;   YJ1I3=0.;     YJ1I4=0.;
83      }
84#endif
85      else{
86        YJ1I1 =  atfp;
87        YJ1I2 =  atfp1;
88        YJ1I3 =  atfp;
89        YJ1I4 =  0.;
90      }
91    }
92  }
93  //
94}
95
96//===========================================================================
97//***************************  FIN DU MODULE tb   ***************************
98
Note: See TracBrowser for help on using the repository browser.