/*************************************************************************** module classe tb.h - description ***************************************************************************/ // Mohamed Berrada // locean-ipsl.upmc, Paris, April 2, 2009 //=========================================================================== // methode forward forward (YREAL x1,YREAL x2,YREAL x3,YREAL x4) { /* 1 from tb 1 i j k t-1 2 from ta 1 i j k t-1 3 from ta 1 i j k t 4 from ta_c 1 i j k */ if(Yt==TU){ #ifdef YE_ta_c if( ndiag_rst==0) YS1=x4; else{ if( neuler == 0) YS1=x4; else YS1=tb_neuler1(Yi,Yj,Yk); } #else if( neuler == 0)// ! Euler 1st time step : swap only YS1=x4; else YS1=tb_neuler1(Yi,Yj,Yk); // valeur chargee depuis restart (neuler=1) #endif } else{ if(Yk!=NZ-1){ #ifdef YE_ta_c if( Yt == TU+1 && ndiag_rst == 0)// ! Euler 1st time step : swap only #else if( Yt == TU+1 && neuler == 0)// ! Euler 1st time step : swap only #endif YS1=x2; else YS1 = atfp*(x1+x3)+atfp1*x2; // pour generer le tourbillon /* YS1=YS1+exp(-((Yi+1.-(3.*NX)/4.)*(Yi+1.-(3.*NX)/4.)+ (Yj+1.-(3.*NY)/4.)*(Yj+1.-(3.*NY)/4.))/4.) *(1.-exp(-double(Yk+1.-NZ)/NZ))*(1.-exp(-double(Yt-TU)/24.));*/ #ifdef EDDY if (Yt<27) //pour generer un tourbillon à Yi=19 et Yj=13 YS1=YS1+4*exp(-0.75*((Yi - 17.*(NX/32.))*(Yi - 17.*(NX/32.))+ (Yj - 10.*(NY/22.))*(Yj - 10.*(NY/22.)))) *(1.-exp(-double(Yk+1.-NZ)/NZ))*(1.-exp(-double(Yt-TU)/24.)); #endif } } // } //=========================================================================== // methode backward backward (YREAL x1,YREAL x2,YREAL x3,YREAL x4) { YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; if(Yt==TU){ //YJ1I1=0.; YJ1I2=0.; YJ1I3=0.; YJ1I4=0.; #ifdef YE_ta_c //if(Yi==28 && Yj==12) YJ1I4=1.; #else if( neuler == 0)// ! Euler 1st time step : swap only YJ1I4=1.;// else YJ1I4=0.;// #endif } else{ if(Yk!=NZ-1){ #ifdef YE_ta_c if( Yt == TU+1){// ! Euler 1st time step : swap only YJ1I1=0.; YJ1I2=1.; YJ1I3=0.; YJ1I4=0.; } #else if( Yt == TU+1 && neuler == 0){// ! Euler 1st time step : swap only YJ1I1=0.; YJ1I2=1.; YJ1I3=0.; YJ1I4=0.; } #endif else{ YJ1I1 = atfp; YJ1I2 = atfp1; YJ1I3 = atfp; YJ1I4 = 0.; } } } // } //=========================================================================== //*************************** FIN DU MODULE tb ***************************