/*************************************************************************** module classe ztuv_traldf_lap.h - description ***************************************************************************/ // Mohamed Berrada // locean-ipsl.upmc, Paris, April 2, 2009 //=========================================================================== // methode forward forward (YREAL x1, YREAL x2, YREAL x3) { /* 1 from ta 1 i j k t-1 2 from ta 1 i+1 j k t-1 3 from ta 1 i j+1 k t-1*/ if(Yt==TU) YS1=0.; else{ if(Yi==NX-1 || Yj==NY-1 || Yk== NZ-1) YS1=0.; else{ #if defined key_zco double zabe1 = fsahtu(Yi,Yj,Yk) * umask(Yi,Yj,Yk) * ze1ur(Yi,Yj); double zabe2 = fsahtv(Yi,Yj,Yk) * vmask(Yi,Yj,Yk) * ze2vr(Yi,Yj); #else double zabe1 = fsahtu(Yi,Yj,Yk) * umask(Yi,Yj,Yk) * ze1ur(Yi,Yj) * fse3u(Yi,Yj,Yk); double zabe2 = fsahtv(Yi,Yj,Yk) * vmask(Yi,Yj,Yk) * ze2vr(Yi,Yj) * fse3v(Yi,Yj,Yk); #endif YS1 = zabe1*(x2-x1); //ztu(ji,jj,jk) = zabe1 * ( tb(ji+1,jj ,jk) - tb(ji,jj,jk) ); YS2 = zabe2*(x3-x1); // ztv(ji,jj,jk) = zabe2 * ( tb(ji ,jj+1,jk) - tb(ji,jj,jk) ); } } // } //=========================================================================== // methode backward backward (YREAL x1, YREAL x2, YREAL x3) { YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ2I1=0.; YJ2I2=0.; YJ2I3=0.; if(Yt!=TU){ if(Yi==NX-1 || Yj==NY-1 || Yk== NZ-1){ YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ2I1=0.; YJ2I2=0.; YJ2I3=0.; } else{ #if defined key_zco double zabe1 = fsahtu(Yi,Yj,Yk) * umask(Yi,Yj,Yk) * ze1ur(Yi,Yj); double zabe2 = fsahtv(Yi,Yj,Yk) * vmask(Yi,Yj,Yk) * ze2vr(Yi,Yj); #else double zabe1 = fsahtu(Yi,Yj,Yk) * umask(Yi,Yj,Yk) * ze1ur(Yi,Yj) * fse3u(Yi,Yj,Yk); double zabe2 = fsahtv(Yi,Yj,Yk) * vmask(Yi,Yj,Yk) * ze2vr(Yi,Yj) * fse3v(Yi,Yj,Yk); #endif YJ1I1 = -zabe1 ; YJ1I2 = zabe1; YJ1I3 = 0.; YJ2I1= -zabe2; YJ2I2= 0.; YJ2I3= zabe2; } } // } //=========================================================================== //********************* FIN DU MODULE ztuv_traldf_lap **********************