/*************************************************************************** module classe zwisd_trazdf_imp.h - description ***************************************************************************/ // Mohamed Berrada // locean-ipsl.upmc, Paris, April 15, 2009 //=========================================================================== // methode forward forward (YREAL x1, YREAL x2) { /* 1 from zdf_avt_avmu_avmv 1 i j k t 2 from zdf_avt_avmu_avmv 1 i j k+1 t*/ /* YS1*/ /* 2.655954839980409e-18 6.536998265857578e-17*/ /* YS2*/ /* 3.352714069924341e-18 7.743459995643917e-17*/ /* YS3*/ /* 0 0*/ if(Yt==TU) YS1=0.; else{ double ze3tn = fse3t(Yi,Yj,Yk); if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk== NZ-1){ YS1=0.; YS2=0.; YS3=0.; } else{ YS1 = - r2dt * x1/(ze3tn * fse3w(Yi,Yj,Yk )); //ck*r2dt/e3t YS2 = - r2dt * x2/(ze3tn * fse3w(Yi,Yj,Yk+1)); //ck+1*r2dt/e3t YS3 = 1. - YS1 - YS2; //r2dt*d(k)/e3t // ! Surface boudary conditions if(Yk==0){ YS1 = 0.e0; YS3 = 1. - YS2; } } } // } //=========================================================================== // methode backward backward (YREAL x1, YREAL x2) { YJ1I1=0.; YJ1I2=0.; YJ2I1=0.; YJ2I2=0.; YJ3I1=0.; YJ3I2=0.; if(Yt!=TU){ double ze3tn = fse3t(Yi,Yj,Yk); if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk== NZ-1){ YJ1I1=0.; YJ1I2=0.; YJ2I1=0.; YJ2I2=0.; YJ3I1=0.; YJ3I2=0.; } else{ YJ1I1 = - r2dt /(ze3tn * fse3w(Yi,Yj,Yk )); YJ2I2 = - r2dt /(ze3tn * fse3w(Yi,Yj,Yk+1)); YJ3I1 = - YJ1I1; YJ3I2 = - YJ2I2; // ! Surface boudary conditions if(Yk==0){ YJ1I1 = 0.e0; YJ3I1 = 0.; } } } // } //=========================================================================== //************************* FIN DU MODULE zwisd_trazdf_imp *************************