source: trunk/src/ta.h @ 186

Last change on this file since 186 was 10, checked in by jbrlod, 13 years ago

design a reference version

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1
2/***************************************************************************
3                 module classe ta.h  -  description
4***************************************************************************/
5// Mohamed Berrada
6// locean-ipsl.upmc, Paris, April 17, 2009
7//===========================================================================
8//                          methode forward
9forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5)
10{ /*    1       from    zwisd_trazdf_imp        2  i    j    k    t
11        2       from    ta_trazdf_imp           1  i    j    k+1  t
12        3       from    ta_de_trazdf_imp        1  i    j    k    t
13        4       from    zwt_trazdf_imp          1  i    j    k    t
14        5       from    ta_c                    1  i    j    k */
15  if(Yt==TU){
16    //  if(Yi==28 && Yj==12)
17    YS1=x5;
18  }
19  else{
20    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){
21      YS1=0.;
22    }
23    else{
24      if(Yk==NZ-2)
25        YS1= x3/x4*tmask(Yi,Yj,NZ-2);
26      else
27        YS1=(x3-x1*x2)/x4*tmask(Yi,Yj,NZ-2);
28    }
29  }
30  //
31}
32
33//===========================================================================
34//                         methode  backward
35
36backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5)
37{
38  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;   YJ1I5=0.;
39  if(Yt==TU){
40    YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;   YJ1I5=0.;
41    //#ifdef YE_ta_c
42    //if(Yi==28 && Yj==12)
43    YJ1I5=1.;
44    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1) YJ1I5=0;
45    //#endif
46  }
47   else{
48    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){
49      YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;   YJ1I5=0.;
50    }
51    else{
52      if(Yk==NZ-2){
53        YS1= x3/x4*tmask(Yi,Yj,NZ-2);
54        YJ1I1=0.;
55        YJ1I2=0.;
56        YJ1I3=1./x4*tmask(Yi,Yj,NZ-2); 
57        YJ1I4=-x3/x4/x4*tmask(Yi,Yj,NZ-2);
58        YJ1I5=0.;
59      }
60      else{
61        YJ1I1=-x2/x4*tmask(Yi,Yj,NZ-2);
62        YJ1I2=-x1/x4*tmask(Yi,Yj,NZ-2);
63        YJ1I3=1./x4*tmask(Yi,Yj,NZ-2); 
64        YJ1I4=-(x3-x1*x2)/x4/x4*tmask(Yi,Yj,NZ-2);
65        YJ1I5=0.;
66      }
67    }
68  }
69  //
70  // if( Yi==10 && Yj==10 && Yk==0) printf("YG_ta21(%d)= %24.16e\n",Yt,YG_ta(0,Yi,Yj,Yk,Yt));
71  //if(Yt==19 && Yi==10 && Yj==10 && Yk==0) printf("YG_ta20 %24.16e\n",YG_ta(0,Yi,Yj,Yk,Yt));
72}
73
74//===========================================================================
75//***************************  FIN DU MODULE ta  ****************************
76
Note: See TracBrowser for help on using the repository browser.