/*************************************************************************** module classe ta.h - description ***************************************************************************/ // Mohamed Berrada // locean-ipsl.upmc, Paris, April 17, 2009 //=========================================================================== // methode forward forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5) { /* 1 from zwisd_trazdf_imp 2 i j k t 2 from ta_trazdf_imp 1 i j k+1 t 3 from ta_de_trazdf_imp 1 i j k t 4 from zwt_trazdf_imp 1 i j k t 5 from ta_c 1 i j k */ if(Yt==TU){ // if(Yi==28 && Yj==12) YS1=x5; } else{ if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){ YS1=0.; } else{ if(Yk==NZ-2) YS1= x3/x4*tmask(Yi,Yj,NZ-2); else YS1=(x3-x1*x2)/x4*tmask(Yi,Yj,NZ-2); } } // } //=========================================================================== // methode backward backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4,YREAL x5) { YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; YJ1I5=0.; if(Yt==TU){ YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; YJ1I5=0.; //#ifdef YE_ta_c //if(Yi==28 && Yj==12) YJ1I5=1.; //#endif } else{ if(Yi==0 || Yi==NX-1 || Yj==0 || Yj==NY-1 || Yk==NZ-1){ YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; YJ1I5=0.; } else{ if(Yk==NZ-2){ YS1= x3/x4*tmask(Yi,Yj,NZ-2); YJ1I1=0.; YJ1I2=0.; YJ1I3=1./x4*tmask(Yi,Yj,NZ-2); YJ1I4=-x3/x4/x4*tmask(Yi,Yj,NZ-2); YJ1I5=0.; } else{ YJ1I1=-x2/x4*tmask(Yi,Yj,NZ-2); YJ1I2=-x1/x4*tmask(Yi,Yj,NZ-2); YJ1I3=1./x4*tmask(Yi,Yj,NZ-2); YJ1I4=-(x3-x1*x2)/x4/x4*tmask(Yi,Yj,NZ-2); YJ1I5=0.; } } } // // if( Yi==10 && Yj==10 && Yk==0) printf("YG_ta21(%d)= %24.16e\n",Yt,YG_ta(0,Yi,Yj,Yk,Yt)); //if(Yt==19 && Yi==10 && Yj==10 && Yk==0) printf("YG_ta20 %24.16e\n",YG_ta(0,Yi,Yj,Yk,Yt)); } //=========================================================================== //*************************** FIN DU MODULE ta ****************************