/*************************************************************************** module classe zwisd_va_dynzdf_imp.h - description ***************************************************************************/ // Mohamed Berrada // locean-ipsl.upmc, Paris, April 17, 2009 //=========================================================================== // methode forward forward (YREAL x1, YREAL x2) { /* 1 from zdf_avt_avmu_avmv 3 i j k t 2 from zdf_avt_avmu_avmv 3 i j k+1 t*/ /* YS1*/ /* */ /* YS2*/ /* */ /* YS3*/ /* */ if(Yt==TU){ YS1=0.; YS2=0.; YS3=0.; } else{ double zzws; double zcoef = -r2dt/fse3v(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 = zcoef* x1/ fse3vw(Yi,Yj,Yk ); zzws = zcoef* x2/fse3vw(Yi,Yj,Yk+1); YS2 = zzws* vmask(Yi,Yj,Yk+1); YS3 = 1. - YS1 - zzws; // ! 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 zcoef = -r2dt/fse3v(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 = zcoef/ fse3vw(Yi,Yj,Yk ); double dzzws_x2 = zcoef/fse3vw(Yi,Yj,Yk+1); YJ2I2 = dzzws_x2* vmask(Yi,Yj,Yk+1); YJ3I1 = -YJ1I1; YJ3I2 = -dzzws_x2; // ! Surface boudary conditions if(Yk==0){ YJ1I1 = 0.; YJ3I1= 0.; YJ3I2 =- YJ2I2; } } } // } //=========================================================================== //************************* FIN DU MODULE zwisd_va_dynzdf_imp *************************