source: tags/version-1.1/trunk/src/sb.h @ 24

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

Import initial

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1/***************************************************************************
2                 module classe sb.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    sb                      1  i    j    k    t-1
10        2       from    sa                      1  i    j    k    t-1
11        3       from    sa                      1  i    j    k    t
12        4       from    sa_c                    1  i    j    k    */
13
14  if(Yt==TU){
15#ifdef YE_sa_c
16    if( ndiag_rst==0)
17      YS1=x4;
18    else{
19      if( neuler == 0)
20        YS1=x4;
21      else 
22        YS1=sb_neuler1(Yi,Yj,Yk);
23    }
24#else
25    if( neuler == 0)//   ! Euler 1st time step : swap only
26      YS1=x4;
27    else
28      YS1=sb_neuler1(Yi,Yj,Yk); // valeur chargee depuis restart (neuler=1)
29#endif
30  }
31  else{
32    if(Yk!=NZ-1){
33#ifdef YE_sa_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    }
42  }
43  //
44}
45//===========================================================================
46//                         methode  backward
47
48backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4)
49{
50  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     YJ1I4=0.;
51  if(Yt==TU){
52    YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;     
53#ifdef YE_sa_c
54    YJ1I4=1.;
55#else
56    if( neuler == 0)//   ! Euler 1st time step : swap only
57      YJ1I4=1.;//
58    else
59       YJ1I4=0.;//
60#endif
61  }
62  else{
63    if(Yk!=NZ-1){
64#ifdef YE_sa_c
65      if( Yt == TU+1){//   ! Euler 1st time step : swap only
66        YJ1I1=0.;     YJ1I2=1.;   YJ1I3=0.;     YJ1I4=0.;
67      }
68#else
69      if( Yt == TU+1 && neuler == 0){//   ! Euler 1st time step : swap only
70        YJ1I1=0.;     YJ1I2=1.;   YJ1I3=0.;     YJ1I4=0.;
71      }
72#endif
73      else{
74        YJ1I1 =  atfp;
75        YJ1I2 =  atfp1;
76        YJ1I3 =  atfp;
77        YJ1I4 =  0.;
78      }
79    }
80  }
81  //
82}
83
84//===========================================================================
85//***************************  FIN DU MODULE sb   ***************************
86
Note: See TracBrowser for help on using the repository browser.