/*************************************************************************** module classe zwisd_ua_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 2 i j k t 2 from zdf_avt_avmu_avmv 2 i j k+1 t*/ /* YS1 */ /* A 4.671131788614972e-17 R 1.088374593705250e-16*/ /* YS2 */ /* A 2.089031091690222e-17 R 4.907327859125863e-17*/ /* */ /* YS3*/ /* A 0 R 0*/ if(Yt==TU) YS1=0.; else{ double zzws; double zcoef = -r2dt/fse3u(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/ fse3uw(Yi,Yj,Yk ); zzws = zcoef * x2/fse3uw(Yi,Yj,Yk+1); YS2 = zzws* umask(Yi,Yj,Yk+1); YS3 = 1. - YS1 - zzws; // ! Surface boudary conditions if(Yk==0){ YS1 = 0.; 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/fse3u(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 / fse3uw(Yi,Yj,Yk ); double dzzws_x2 = zcoef/fse3uw(Yi,Yj,Yk+1); YJ2I2 = dzzws_x2* umask(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_ua_dynzdf_imp ********************