source: trunk/src/sbcgyre_wndm.h @ 77

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

Import initial

  • Property svn:eol-style set to native
File size: 2.8 KB
Line 
1
2/***************************************************************************
3                 module classe sbcgyre_utau_vtau_wndm.h  -  description
4***************************************************************************/
5// Mohamed Berrada
6// locean-ipsl.upmc, Paris, Mars 18, 2009
7//===========================================================================
8//                          methode forward
9forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4)
10{/*     1       from    sbcgyre_utau_vtau       1  i-1  j         t
11        2       from    sbcgyre_utau_vtau       2  i    j-1       t
12        3       from    sbcgyre_utau_vtau       1  i    j         t
13        4       from    sbcgyre_utau_vtau       2  i    j         t*/
14 /* verification norm(xY-xF),norm(xY-xF)/norm(xF)
15   wndm   3.299904462350809e-09,     2.039381910331513e-11
16*/
17  if(Yt==TU){
18    YS1=0.;
19  }
20  else{
21    //      ! Estimation of wind speed as a function of wind stress ( |tau|=rhoa*Cd*|U|^2 )
22    double zrhoa  = 1.22;//         ! Air density kg/m3
23    double zcdrag = 1.5e-3;//       ! drag coefficient
24    double zcoef = 0.5 / ( zrhoa * zcdrag ); 
25    if(Yj==NY-1 || Yj==0 || Yi==NX-1 || Yi==0)
26      YS1=0.;
27    else{
28      double  ztx = x1+x3;//utau(ji-1,jj  ) + utau(ji,jj)
29      double  zty = x2+x4;// vtau(ji  ,jj-1) + vtau(ji,jj)
30      double  ztau = sqrt( ztx * ztx + zty * zty );
31      YS1=sqrt(ztau * zcoef ) * tmask(Yi,Yj,0);
32    }
33    // CALL lbc_lnk( wndm(:,:) , 'T', 1. ) pour l'instant "closed domain"
34  }
35  //
36}
37
38//===========================================================================
39//                         methode  backward
40
41backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4)
42{
43  YJ1I1=0.;     YJ1I2=0.;     YJ1I3=0.;     YJ1I4=0.;
44  if(Yt!=TU){
45    //      ! Estimation of wind speed as a function of wind stress ( |tau|=rhoa*Cd*|U|^2 )
46    double zrhoa  = 1.22;//         ! Air density kg/m3
47    double zcdrag = 1.5e-3;//       ! drag coefficient
48    double zcoef = 0.5 / ( zrhoa * zcdrag ); 
49    if(Yj==NY-1 || Yj==0 || Yi==NX-1 || Yi==0){
50      YJ1I1=0.;     YJ1I2=0.;     YJ1I3=0.;     YJ1I4=0.;
51    }
52    else{
53      double  ztx = x1+x3,dztx_x1=1.,dztx_x3=1.;//utau(ji-1,jj  ) + utau(ji,jj)
54      double  zty = x2+x4,dzty_x2=1.,dzty_x4=1.;// vtau(ji  ,jj-1) + vtau(ji,jj)
55      double  ztau = sqrt( ztx * ztx + zty * zty ), 
56        dztau_ztx  = ztx/ztau,
57        dztau_zty  = zty/ztau,
58        dztau_x1   = dztau_ztx*dztx_x1,
59        dztau_x2   = dztau_zty*dzty_x2,
60        dztau_x3   = dztau_ztx*dztx_x3,
61        dztau_x4   = dztau_zty*dzty_x4;
62      YJ1I1 = 0.5 / sqrt(ztau * zcoef ) * zcoef * dztau_x1 * tmask(Yi,Yj,0);
63      YJ1I2 = 0.5 / sqrt(ztau * zcoef ) * zcoef * dztau_x2 * tmask(Yi,Yj,0);
64      YJ1I3 = 0.5 / sqrt(ztau * zcoef ) * zcoef * dztau_x3 * tmask(Yi,Yj,0);
65      YJ1I4 = 0.5 / sqrt(ztau * zcoef ) * zcoef * dztau_x4 * tmask(Yi,Yj,0);
66    }
67   
68  }
69}
70//===========================================================================
71//********************* FIN DU MODULE sbcgyre_utau_vtau_wndm **********************
72
Note: See TracBrowser for help on using the repository browser.