source: trunk/src/tb.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: 2.4 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    }
46  }
47  //
48}
49//===========================================================================
50//                         methode  backward
51
52backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4)
53{
54  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;
55  if(Yt==TU){
56    //YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;  YJ1I4=0.; 
57#ifdef YE_ta_c
58    //if(Yi==28 && Yj==12)
59    YJ1I4=1.;
60#else
61    if( neuler == 0)//   ! Euler 1st time step : swap only
62      YJ1I4=1.;//
63    else
64       YJ1I4=0.;//
65#endif
66  }
67  else{
68    if(Yk!=NZ-1){
69#ifdef YE_ta_c
70      if( Yt == TU+1){//   ! Euler 1st time step : swap only
71          YJ1I1=0.;     YJ1I2=1.;   YJ1I3=0.;     YJ1I4=0.;
72      }
73#else
74        if( Yt == TU+1 && neuler == 0){//   ! Euler 1st time step : swap only
75          YJ1I1=0.;     YJ1I2=1.;   YJ1I3=0.;     YJ1I4=0.;
76      }
77#endif
78      else{
79        YJ1I1 =  atfp;
80        YJ1I2 =  atfp1;
81        YJ1I3 =  atfp;
82        YJ1I4 =  0.;
83      }
84    }
85  }
86  //
87}
88
89//===========================================================================
90//***************************  FIN DU MODULE tb   ***************************
91
Note: See TracBrowser for help on using the repository browser.