source: tags/version-1.1/trunk/src/va_dyn_ldf_lap.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.2 KB
Line 
1
2/***************************************************************************
3                 module classe va_dyn_ldf_lap.h  -  description
4***************************************************************************/
5// Mohamed Berrada
6// locean-ipsl.upmc, Paris, Mars 11, 2009
7//===========================================================================
8//                          methode forward
9forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5)
10{/*     x1      from    va_vor_ene              1  i    j    k    t
11        x2      from    rotn                    1  i-1  j    k    t-1
12        x3      from    rotn                    1  i    j    k    t-1
13        x4      from    hdivn                   1  i    j    k    t-1
14        x5      from    hdivn                   1  i    j+1  k    t-1*/
15
16  if(Yt==TU)
17    YS1=0.;
18  else{
19    double ze2u,ze1v,zva;
20    if(Yk==NZ-1 || Yj==0 || Yj==NY-1 || Yi==0 || Yi==NX-1)
21      YS1=0.;
22    else{
23#ifdef key_zco
24      ze2u = x3*fsahmf(Yi,Yj,Yk);
25      ze1v = x4*fsahmt(Yi,Yj,Yk);
26      zva = +(ze2u-x2*fsahmf(Yi-1,Yj,Yk))/e1v(Yi,Yj)
27        + (x5*fsahmt(Yi,Yj+1,Yk) - ze1v)/e2v(Yi,Yj);
28      YS1  = x1+zva;
29#else
30      printf("erreur: .not.key_zco pas encore fait\n");
31      exit(99);
32#endif
33    }
34  }
35  // 
36}
37
38//===========================================================================
39//                         methode  backward
40
41backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5)
42{
43 
44  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;   YJ1I4=0.;     YJ1I5=0.; 
45  if(Yt!=TU){ 
46    double ze2u,ze1v;
47    if(Yk==NZ-1 || Yj==0 || Yj==NY-1 || Yi==0 || Yi==NX-1){
48      YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;   YJ1I4=0.;     YJ1I5=0.; 
49    }
50    else{
51#ifdef key_zco
52      ze2u = x3*fsahmf(Yi,Yj,Yk);
53      double dze2u_x3 = fsahmf(Yi,Yj,Yk);
54      ze1v = x4*fsahmt(Yi,Yj,Yk);
55      double dze1v_x4 = fsahmt(Yi,Yj,Yk);
56      double dzva_x2 = -fsahmf(Yi-1,Yj,Yk)/e1v(Yi,Yj);
57      double dzva_x3 = dze2u_x3/e1v(Yi,Yj);
58      double dzva_x4 = -dze1v_x4/e2v(Yi,Yj);
59      double dzva_x5 = fsahmt(Yi,Yj+1,Yk)/e2v(Yi,Yj);
60      YJ1I1=1.;
61      YJ1I2=dzva_x2;
62      YJ1I3=dzva_x3;
63      YJ1I4=dzva_x4;
64      YJ1I5=dzva_x5; 
65
66#else
67      printf("erreur: .not.key_zco pas encore fait\n");
68      exit(99);
69#endif
70    }
71  }
72  // 
73 }
74
75  //===========================================================================
76//********************* FIN DU MODULE va_dyn_ldf_lap **********************
77
Note: See TracBrowser for help on using the repository browser.