source: trunk/src/sa.h @ 10

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

design a reference version

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