source: trunk/src/zwisd_va_dynzdf_imp.h @ 49

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

Import initial

  • Property svn:eol-style set to native
File size: 2.0 KB
Line 
1
2/***************************************************************************
3                 module classe zwisd_va_dynzdf_imp.h  -  description
4***************************************************************************/
5// Mohamed Berrada
6// locean-ipsl.upmc, Paris, April 17, 2009
7//===========================================================================
8//                          methode forward
9forward (YREAL x1, YREAL x2)
10{ /*    1       from    zdf_avt_avmu_avmv       3  i    j    k    t
11        2       from    zdf_avt_avmu_avmv       3  i    j    k+1  t*/   
12  /* YS1*/
13  /*     */
14  /* YS2*/
15  /*     */
16  /* YS3*/
17  /*     
18         */
19
20  if(Yt==TU){
21    YS1=0.;
22    YS2=0.;
23    YS3=0.;
24  }
25  else{
26    double zzws;
27    double  zcoef = -r2dt/fse3v(Yi,Yj,Yk);
28    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk== NZ-1){
29      YS1=0.;
30      YS2=0.;
31      YS3=0.;
32    }
33    else{
34     
35      YS1 = zcoef* x1/ fse3vw(Yi,Yj,Yk  );
36      zzws = zcoef* x2/fse3vw(Yi,Yj,Yk+1);
37      YS2 = zzws* vmask(Yi,Yj,Yk+1);
38      YS3 = 1. - YS1 - zzws;
39      //      ! Surface boudary conditions
40      if(Yk==0){
41        YS1 = 0.e0;
42        YS3 = 1. - YS2;
43      }
44    }
45  }
46  //
47}
48
49//===========================================================================
50//                         methode  backward
51
52backward (YREAL x1, YREAL x2)
53{
54 
55  YJ1I1=0.;     YJ1I2=0.; 
56  YJ2I1=0.;     YJ2I2=0.; 
57  YJ3I1=0.;     YJ3I2=0.; 
58  if(Yt!=TU){ 
59    double  zcoef = -r2dt/fse3v(Yi,Yj,Yk);
60    if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk== NZ-1){
61      YJ1I1=0.;     YJ1I2=0.; 
62      YJ2I1=0.;     YJ2I2=0.; 
63      YJ3I1=0.;     YJ3I2=0.; 
64    }
65    else{
66     
67      YJ1I1 = zcoef/ fse3vw(Yi,Yj,Yk  );
68      double dzzws_x2 = zcoef/fse3vw(Yi,Yj,Yk+1);
69      YJ2I2 = dzzws_x2* vmask(Yi,Yj,Yk+1);
70      YJ3I1 = -YJ1I1;
71      YJ3I2 = -dzzws_x2;
72      //      ! Surface boudary conditions
73      if(Yk==0){
74        YJ1I1 = 0.;
75        YJ3I1= 0.;
76        YJ3I2 =- YJ2I2;
77      }
78    }
79  }
80  //
81}
82
83  //===========================================================================
84//*************************  FIN DU MODULE zwisd_va_dynzdf_imp   *************************
85
Note: See TracBrowser for help on using the repository browser.