source: trunk/src/zhpij_dyn_hpg_zco.h @ 186

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

Import initial

  • Property svn:eol-style set to native
File size: 2.7 KB
Line 
1
2/***************************************************************************
3                 module classe zhpij_dyn_hpg_zco.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,YREAL x6,YREAL x7,YREAL x8)
10{ /*    1       from    rhd                     1  i+1  j    k    t
11        2       from    rhd                     1  i    j+1  k    t
12        3       from    rhd                     1  i    j    k    t
13        4       from    rhd                     1  i+1  j    k-1  t
14        5       from    rhd                     1  i    j+1  k-1  t
15        6       from    rhd                     1  i    j    k-1  t
16        7       from    zhpij_dyn_hpg_zco       1  i    j    k-1  t
17        8       from    zhpij_dyn_hpg_zco       2  i    j    k-1  t*/
18
19  /* YS1 */
20  /*     A 3.543246415491029e-08
21         R 3.489563037431924e-07*/
22  /* YS2 */
23  /*     A 4.126438261507486e-08
24         R 3.318177645528311e-07*/
25  if(Yt==TU)
26    YS1=0.;
27  else{
28    double zcoef0 = - grav * 0.5;
29    double zcoef1 = zcoef0 * fse3w(Yi,Yj,Yk);
30    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){
31      YS1=0.;
32      YS2=0.;
33    }
34    else{
35      if(Yk==0){
36        YS1=zcoef1*(x1 - x3)/ e1u(Yi,Yj);
37        YS2=zcoef1*(x2 - x3)/ e2v(Yi,Yj);
38      }
39      else{
40        YS1=x7+zcoef1*((x1+x4)-(x3+x6)) / e1u(Yi,Yj);
41        YS2=x8+zcoef1*((x2+x5)-(x3+x6)) / e2v(Yi,Yj);
42      }
43    }
44  }
45  //
46}
47
48//===========================================================================
49//                         methode  backward
50
51backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5,YREAL x6,YREAL x7,YREAL x8)
52{
53  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;   YJ1I4=0.;     YJ1I5=0.;    YJ1I6=0.;   YJ1I7=0.;     YJ1I8=0.; 
54  YJ2I1=0.;     YJ2I2=0.;   YJ2I3=0.;   YJ2I4=0.;     YJ2I5=0.;    YJ2I6=0.;   YJ2I7=0.;     YJ2I8=0.; 
55  if(Yt!=TU){ 
56    double zcoef0 = - grav * 0.5;
57    double zcoef1 = zcoef0 * fse3w(Yi,Yj,Yk);
58    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){
59      YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;   YJ1I4=0.;     YJ1I5=0.;    YJ1I6=0.;   YJ1I7=0.;     YJ1I8=0.; 
60      YJ2I1=0.;     YJ2I2=0.;   YJ2I3=0.;   YJ2I4=0.;     YJ2I5=0.;    YJ2I6=0.;   YJ2I7=0.;     YJ2I8=0.; 
61    }
62    else{
63      if(Yk==0){
64        YJ1I1= zcoef1/ e1u(Yi,Yj);
65        YJ1I3=-zcoef1/ e1u(Yi,Yj);
66        YJ2I2= zcoef1/ e2v(Yi,Yj);
67        YJ2I3=-zcoef1/ e2v(Yi,Yj);
68      }
69      else{
70        YJ1I1=  zcoef1 / e1u(Yi,Yj); 
71        YJ1I3= -zcoef1 / e1u(Yi,Yj);
72        YJ1I4=  zcoef1 / e1u(Yi,Yj); 
73        YJ1I6= -zcoef1 / e1u(Yi,Yj);
74        YJ1I7=1.;
75
76        YJ2I2=  zcoef1/ e2v(Yi,Yj);
77        YJ2I3= -zcoef1/ e2v(Yi,Yj);
78        YJ2I5=  zcoef1/ e2v(Yi,Yj);
79        YJ2I6= -zcoef1/ e2v(Yi,Yj);
80        YJ2I8=1.; 
81      }
82    }
83  }
84  // 
85}
86
87//===========================================================================
88//*******************  FIN DU MODULE zhpij_dyn_hpg_zco  *********************
89
Note: See TracBrowser for help on using the repository browser.