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

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

design a reference version

  • Property svn:eol-style set to native
File size: 2.4 KB
Line 
1
2/***************************************************************************
3                 module classe ua_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    ua_vor_ene              1  i    j    k    t
11        x2      from    rotn                    1  i    j-1  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+1  j    k    t-1*/
15
16 /*if (Yi==30 && Yj==1 && Yk==0 && Yt<13)
17  {
18    printf("ua_dyn_ldf_lap:Yt=%i,x1=%f,x2=%f,x3=%f, x4=%f, x5=%f\n\n",Yt,x1,x2,x3,x4,x5);
19      } 
20 */
21
22  if(Yt==TU)
23    YS1=0.;
24  else{
25    double ze2u,ze1v,zua;
26    if(Yk==NZ-1 || Yj==0 || Yj==NY-1 || Yi==0 || Yi==NX-1)
27      YS1=0.;
28    else{
29#ifdef key_zco
30      ze2u = x3*fsahmf(Yi,Yj,Yk);
31      ze1v = x4*fsahmt(Yi,Yj,Yk);
32      zua  = -(ze2u-x2*fsahmf(Yi,Yj-1,Yk))/e2u(Yi,Yj)
33        + (x5*fsahmt(Yi+1,Yj,Yk) - ze1v)/e1u(Yi,Yj);
34      YS1  = x1+zua;
35#else
36      printf("erreur: .not.key_zco pas encore fait\n");
37      exit(99);
38#endif
39    }
40  }
41  // 
42}
43
44//===========================================================================
45//                         methode  backward
46
47backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5)
48{
49  YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;   YJ1I4=0.;     YJ1I5=0.; 
50  if(Yt!=TU){ 
51    double ze2u,ze1v;
52    if(Yk==NZ-1 || Yj==0 || Yj==NY-1 || Yi==0 || Yi==NX-1){
53      YJ1I1=0.;     YJ1I2=0.;   YJ1I3=0.;   YJ1I4=0.;     YJ1I5=0.; 
54    }
55    else{
56#ifdef key_zco
57      ze2u = x3*fsahmf(Yi,Yj,Yk);
58      double dze2u_x3 = fsahmf(Yi,Yj,Yk);
59      ze1v = x4*fsahmt(Yi,Yj,Yk);
60      double dze1v_x4 = fsahmt(Yi,Yj,Yk);
61      double dzua_x2  = fsahmf(Yi,Yj-1,Yk)/e2u(Yi,Yj);
62      double dzua_x3  = -dze2u_x3/e2u(Yi,Yj);
63      double dzua_x4  = -dze1v_x4/e1u(Yi,Yj);
64      double dzua_x5  = fsahmt(Yi+1,Yj,Yk)/e1u(Yi,Yj);
65      YJ1I1= 1.;
66      YJ1I2=dzua_x2;
67      YJ1I3=dzua_x3;
68      YJ1I4=dzua_x4;
69      YJ1I5=dzua_x5;
70#else
71      printf("erreur: .not.key_zco pas encore fait\n");
72      exit(99);
73#endif
74    }
75  }
76  // 
77 
78 }
79
80  //===========================================================================
81//********************* FIN DU MODULE ua_dyn_ldf_lap **********************
82
Note: See TracBrowser for help on using the repository browser.