📄 fdtd3d.c
字号:
hmulx[z]=fd1.dt*0.00079577471546/(fd1.dx*fd1.zur);
hmuly[z]=fd1.dt*0.00079577471546/(fd1.dy*fd1.zur);
hmulz[z]=fd1.dt*0.00079577471546/(fd1.dz*fd1.zur);
}
}
enmulz[z]=fd1.dt/(permez[z]*eonan*(1.0+sigez[z]*fd1.dt/(2.*permez[z]*eonan)));
enmulzx[z]=enmulz[z]*dxi;
enmulzy[z]=enmulz[z]*dyi;
eoldmulz[z]=(1.0-(sigez[z]*fd1.dt/(2.0*permez[z]*eonan)))/(1.0+(sigez[z]*fd1.dt/(2.0*permez[z]*eonan)));
fmulozx[z]= (0.3*fd1.dt/pow(permez[z]*ur[z],0.5)-fd1.dx)/(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+fd1.dx);
fmulozy[z]= (0.3*fd1.dt/pow(permez[z]*ur[z],0.5)-fd1.dy)/(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+fd1.dy);
fmulozxb[z]= (0.3*fd1.dt/pow(permez[z]*ur[z],0.5)-1.41*fd1.dx)/(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+1.41*fd1.dx);
fmulozyb[z]= (0.3*fd1.dt/pow(permez[z]*ur[z],0.5)-1.41*fd1.dy)/(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+1.41*fd1.dy);
fmulo2zx[z]=2.0*fd1.dx/(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+fd1.dx);
fmulo2zy[z]=2.0*fd1.dy/(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+fd1.dy);
eoldmulx[z]=(1.0-(sige[z]*fd1.dt/(2.0*perme[z]*eonan)))/(1.0+(sige[z]*fd1.dt/(2.0*perme[z]*eonan)));
eoldmuly[z]=(1.0-(sige[z]*fd1.dt/(2.0*perme[z]*eonan)))/(1.0+(sige[z]*fd1.dt/(2.0*perme[z]*eonan)));
enmulx[z]=fd1.dt/(perme[z]*eonan*(1.0+sige[z]*fd1.dt/(2.*perme[z]*eonan)));
enmuly[z]=fd1.dt/(perme[z]*eonan*(1.0+sige[z]*fd1.dt/(2.*perme[z]*eonan)));
enmulxy[z]=enmulx[z]*dyi;
enmulxz[z]=enmulx[z]*dzi;
enmulyx[z]=enmuly[z]*dxi;
enmulyz[z]=enmuly[z]*dzi;
fmuloxz[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-fd1.dz)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dz);
fmuloyz[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-fd1.dz)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dz);
fmuloxy[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-fd1.dy)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dy);
fmuloyx[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-fd1.dx)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dx);
fmuloxzb[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-1.41*fd1.dz)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+1.41*fd1.dz);
fmuloyzb[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-1.41*fd1.dz)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+1.41*fd1.dz);
fmuloxyb[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-1.41*fd1.dy)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+1.41*fd1.dy);
fmuloyxb[z]= (0.3*fd1.dt/pow(perme[z]*ur[z],0.5)-1.41*fd1.dx)/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+1.41*fd1.dx);
fmulo2yx[z]=2.0*fd1.dy/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dy);
fmulo2xy[z]=2.0*fd1.dx/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dx);
fmulo2yz[z]=2.0*fd1.dz/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dz);
fmulo2xz[z]=2.0*fd1.dz/(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dz);
fmulo3xx[z]=pow(0.3*fd1.dt,2.0)/(perme[z]*ur[z]*2.0*fd1.dx*(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dx));
fmulo3xy[z]=pow(0.3*fd1.dt,2.0)/(perme[z]*ur[z]*2.0*fd1.dy*(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dy));
fmulo3xz[z]=pow(0.3*fd1.dt,2.0)/(perme[z]*ur[z]*2.0*fd1.dz*(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dz));
fmulo3yx[z]=pow(0.3*fd1.dt,2.0)/(perme[z]*ur[z]*2.0*fd1.dx*(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dx));
fmulo3yy[z]=pow(0.3*fd1.dt,2.0)/(perme[z]*ur[z]*2.0*fd1.dy*(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dy));
fmulo3yz[z]=pow(0.3*fd1.dt,2.0)/(perme[z]*ur[z]*2.0*fd1.dz*(0.3*fd1.dt/pow(perme[z]*ur[z],0.5)+fd1.dz));
fmulo3zx[z]=pow(0.3*fd1.dt,2.0)/(permez[z]*ur[z]*2.0*fd1.dx*(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+fd1.dx));
fmulo3zy[z]=pow(0.3*fd1.dt,2.0)/(permez[z]*ur[z]*2.0*fd1.dy*(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+fd1.dy));
fmulo3zz[z]=pow(0.3*fd1.dt,2.0)/(permez[z]*ur[z]*2.0*fd1.dz*(0.3*fd1.dt/pow(permez[z]*ur[z],0.5)+fd1.dz));
rho[z]=0.3*fd1.dt/(fd1.dz*pow(perme[z]*ur[z],0.5));
rhoz[z]=0.3*fd1.dt/(fd1.dz*pow(permez[z]*ur[z],0.5));
}
/* =========================================================================
ASSIGN ELECTRICAL PROPERTIES TO OTHER FINITE SIZE OBJECTS IN GRID
========================================================================= */
/* FOR ANTENNA TERMINALS - with no coax attached (i.e. assuming load is at terminals */
eoldmult=(1.0-(termcon*fd1.dt/(2.0*eonan)))/(1.0+(termcon*fd1.dt/(2.0*eonan)));
enmultx= fd1.dt/(1.*eonan*(1.0+termcon*fd1.dt/(2.*eonan)))*dxi;
enmulty= fd1.dt/(1.*eonan*(1.0+termcon*fd1.dt/(2.*eonan)))*dyi;
enmultz= fd1.dt/(1.*eonan*(1.0+termcon*fd1.dt/(2.*eonan)))*dzi;
eoldmulr=(1.0-(termrcon*fd1.dt/(2.0*eonan)))/(1.0+(termrcon*fd1.dt/(2.0*eonan)));
enmulrx= fd1.dt/(1.*eonan*(1.0+termrcon*fd1.dt/(2.*eonan)))*dxi;
enmulry= fd1.dt/(1.*eonan*(1.0+termrcon*fd1.dt/(2.*eonan)))*dyi;
enmulrz= fd1.dt/(1.*eonan*(1.0+termrcon*fd1.dt/(2.*eonan)))*dzi;
/* FOR UNDERWATER PROBE */
eoldmulpr=(1.0-(sigpr*fd1.dt/(2.0*eonan)))/(1.0+(sigpr*fd1.dt/(2.0*eonan)));
enmulpr= fd1.dt/(1.*eonan*(1.0+sigpr*fd1.dt/(2.*eonan)))*dxi;
/* FOR BURIED DIELECTRIC PIPE */
if(fd1.targperm<0.0001) {
printf("fd1.targperm<0.0001, CHANGED TO 1.0\n");
fd1.targperm=1.0;
}
pipeperm=fd1.targperm;
pipecond=fd1.targcond;
/* TANGENTIAL E CONTINUOUS ACROSS SURFACE OF TARGET (I.E. TAKE THE AVERAGE) */
paveperm=(fd1.targperm+fd1.zperm)/2.;
pavecond=(fd1.targcond+fd1.zcond)/2.;
eoldmulps=(1.0-(pavecond*fd1.dt/(2.0*paveperm*eonan)))/(1.0+(pavecond*fd1.dt/(2.0*paveperm*eonan)));
enmulpxs= fd1.dt/(1.*paveperm*eonan*(1.0+pavecond*fd1.dt/(2.*paveperm*eonan)))*dxi;
enmulpys= fd1.dt/(1.*paveperm*eonan*(1.0+pavecond*fd1.dt/(2.*paveperm*eonan)))*dyi;
enmulpzs= fd1.dt/(1.*paveperm*eonan*(1.0+pavecond*fd1.dt/(2.*paveperm*eonan)))*dzi;
eoldmulp=(1.0-(pipecond*fd1.dt/(2.0*pipeperm*eonan)))/(1.0+(pipecond*fd1.dt/(2.0*pipeperm*eonan)));
enmulpx= fd1.dt/(1.*pipeperm*eonan*(1.0+pipecond*fd1.dt/(2.*pipeperm*eonan)))*dxi;
enmulpy= fd1.dt/(1.*pipeperm*eonan*(1.0+pipecond*fd1.dt/(2.*pipeperm*eonan)))*dyi;
enmulpz= fd1.dt/(1.*pipeperm*eonan*(1.0+pipecond*fd1.dt/(2.*pipeperm*eonan)))*dzi;
/* SPHERE OR CYLINDER OR PIPE (OPTION 8 FOR PIPE) */
/* [0] = target interior
[1] = surrounding medium
[2] = target exterior - average of interior and ground values
*/
eoldmulsp[0]=(1.0-(fd1.targcond*fd1.dt/(2.0*fd1.targperm*eonan)))
/(1.0+(fd1.targcond*fd1.dt/(2.0*fd1.targperm*eonan)));
enmulspx[0]= fd1.dt/(1.*fd1.targperm*eonan*(1.0+fd1.targcond*fd1.dt/(2.*fd1.targperm*eonan)))*dxi;
enmulspy[0]= fd1.dt/(1.*fd1.targperm*eonan*(1.0+fd1.targcond*fd1.dt/(2.*fd1.targperm*eonan)))*dyi;
enmulspz[0]= fd1.dt/(1.*fd1.targperm*eonan*(1.0+fd1.targcond*fd1.dt/(2.*fd1.targperm*eonan)))*dzi;
eoldmulsp[1]=(1.0-(fd1.zcond*fd1.dt/(2.0*fd1.zperm*eonan)))/(1.0+(fd1.zcond*fd1.dt/(2.0*fd1.zperm*eonan)));
enmulspx[1]= fd1.dt/(1.*fd1.zperm*eonan*(1.0+fd1.zcond*fd1.dt/(2.*fd1.zperm*eonan)))*dxi;
enmulspy[1]= fd1.dt/(1.*fd1.zperm*eonan*(1.0+fd1.zcond*fd1.dt/(2.*fd1.zperm*eonan)))*dyi;
enmulspz[1]= fd1.dt/(1.*fd1.zperm*eonan*(1.0+fd1.zcond*fd1.dt/(2.*fd1.zperm*eonan)))*dzi;
eoldmulsp[2]=(1.0-((fd1.targcond+fd1.zcond)/2.*fd1.dt/(2.0*(fd1.targperm+fd1.zperm)/2.*eonan)))
/(1.0+((fd1.targcond+fd1.zcond)/2.*fd1.dt/(2.0*(fd1.targperm+fd1.zperm)/2.*eonan)));
enmulspx[2]= fd1.dt/(1.*(fd1.targperm+fd1.zperm)/2.*eonan*(1.0+(fd1.targcond+fd1.zcond)/2.
*fd1.dt/(2.*(fd1.targperm+fd1.zperm)/2.*eonan)))*dxi;
enmulspy[2]= fd1.dt/(1.*(fd1.targperm+fd1.zperm)/2.*eonan*(1.0+(fd1.targcond+fd1.zcond)/2.
*fd1.dt/(2.*(fd1.targperm+fd1.zperm)/2.*eonan)))*dyi;
enmulspz[2]= fd1.dt/(1.*(fd1.targperm+fd1.zperm)/2.*eonan*(1.0+(fd1.targcond+fd1.zcond)/2.
*fd1.dt/(2.*(fd1.targperm+fd1.zperm)/2.*eonan)))*dzi;
/* INTERIOR OF COAX */
if(fd1.coaxert<0.001) {
fprintf(fparms,"PERMITTIVITY OF TRANSMIT COAX INTERIOR TOO LOW (fd1.coaxert) - EXITING\n");
fclose(fparms);
exit();
}
eoldmulc=(1.0-(fd1.coaxst*fd1.dt/(2.0*fd1.coaxert*eonan)))/(1.0+(fd1.coaxst*fd1.dt/(2.0*fd1.coaxert*eonan)));
enmulc= fd1.dt/(fd1.coaxert*eonan*(1.0+fd1.coaxst*fd1.dt/(2.*fd1.coaxert*eonan)))*dxi;
fmuloc= (0.3*fd1.dt/pow(fd1.coaxert*fd1.coaxurt,0.5)-fd1.dx)/(0.3*fd1.dt/pow(fd1.coaxert*fd1.coaxurt,0.5)+fd1.dx);
hmulc=fd1.dt*0.00079577471546/(fd1.dz*fd1.coaxurt);
/* bottom OF transmit COAX */
/*
coaxcond=0.265;
coaxperm=1.0;
eoldmulcb=(1.0-(coaxcond*fd1.dt/(2.0*coaxperm*eonan)))/(1.0+(coaxcond*fd1.dt/(2.0*coaxperm*eonan)));
enmulcb= fd1.dt/(coaxperm*eonan*(1.0+coaxcond*fd1.dt/(2.*coaxperm*eonan)))*dxi;
*/
/* INTERIOR OF RECEIVE COAX */
if(fd1.coaxerr<0.001) {
fprintf(fparms,"PERMITTIVITY OF TRANSMIT COAX INTERIOR TOO LOW (fd1.coaxerr) - EXITING\n");
fclose(fparms);
exit();
}
reoldmulc=(1.0-(fd1.coaxsr*fd1.dt/(2.0*fd1.coaxerr*eonan)))/(1.0+(fd1.coaxsr*fd1.dt/(2.0*fd1.coaxerr*eonan)));
renmulc= fd1.dt/(fd1.coaxerr*eonan*(1.0+fd1.coaxsr*fd1.dt/(2.*fd1.coaxerr*eonan)))*dxi;
rfmuloc= (0.3*fd1.dt/pow(fd1.coaxerr*fd1.coaxurr,0.5)-fd1.dx)/(0.3*fd1.dt/pow(fd1.coaxerr*fd1.coaxurr,0.5)+fd1.dx);
rhmulc=fd1.dt*0.00079577471546/(fd1.dz*fd1.coaxurr);
/* bottom OF receive COAX - tangential E is continuous */
/*
coaxcond=0.0;
coaxperm=1.0;
reoldmulcb=(1.0-(coaxcond*fd1.dt/(2.0*coaxperm*eonan)))/(1.0+(coaxcond*fd1.dt/(2.0*coaxperm*eonan)));
renmulcb= fd1.dt/(coaxperm*eonan*(1.0+coaxcond*fd1.dt/(2.*coaxperm*eonan)))*dxi;
*/
/* ------------------ OSU ABSORBER ELECTRICAL PROPERTIES ----------------- */
if(fd1.anttype>=25) {
permabs[0]=6.23;condabs[0]=0.057;permabs[1]=6.23;condabs[1]=0.057;
permabs[2]=12.0;condabs[2]=0.09392;permabs[3]=13.3;condabs[3]=0.110;
permabs[4]=13.5;condabs[4]=0.113;permabs[5]=13.3;condabs[5]=0.1105;
permabs[6]=12.0;condabs[6]=0.09392;permabs[7]=6.54;condabs[7]=0.059;
permabs[8]=3.25;condabs[8]=0.02615;permabs[9]=1.42;condabs[9]=0.0;
for(z=0;z<osudimz;z++) {
if (fd1.absfreq==125) {
eoldmosu[z]=(1.0-(condabs[z]*fd1.dt/(2.0*permabs[z]*eonan)))/(1.0+(condabs[z]*fd1.dt/(2.0*permabs[z]*eonan)));
enmulosu[z]= fd1.dt/(permabs[z]*eonan*(1.0+condabs[z]*fd1.dt/(2.*permabs[z]*eonan)))*dxi;
}
else {
condabs[z]=0.0;
permabs[z]=1.0;
eoldmosu[z]=(1.0-(condabs[z]*fd1.dt/(2.0*permabs[z]*eonan)))/(1.0+(condabs[z]*fd1.dt/(2.0*permabs[z]*eonan)));
enmulosu[z]= fd1.dt/(permabs[z]*eonan*(1.0+condabs[z]*fd1.dt/(2.*permabs[z]*eonan)))*dxi;
}
}
}
if(exitflag==1) {
fclose(fparms);
exit();
}
fprintf(fparms,"CONTENTS IN OUTPUT FILES:\n");
fprintf(fparms,"%s -> Ey[xcere][ycere+1][zcere] -> for rec1flag==(-1)\n",filoutr);
fprintf(fparms,"%s -> Ey[xcere][ycere+1][zcere-5] -> for tra1flag+rec1flag==2\n",filoutr);
fprintf(fparms,"%s -> Ey[xcere][ycere+1][zcere] -> for tra1flag+rec1flag==1\n",filoutr);
fprintf(fparms,"%s -> Eyc[1][10]\n",filoutt);
fprintf(fparms,"%s -> v \n",filoutrx);
fprintf(fparms,"%s -> Iyt\n",filoutE);
fprintf(fparms,"\n DATA IN COLUMNS BELOW: ");
if(tra1flag+rec1flag==2) fprintf(fparms,"t,Eyc1[1][10],Ey[xcere][ycere][prpt],Ey[xcere][ycere+1][zcere-5]\n");
else if(tra1flag+tra2flag==2)fprintf(fparms,"t,Eyc1[1][10],Ey[xc1][yc1+1][prpt],Ey[xcere][ycere+1][zcere-5]\n");
else if(tra1flag+rec1flag==1) fprintf(fparms,"t,Eyc1[1][10],Ey[xc1][yc1][prpt],Iyt,v\n");
else if(tra1flag==0) fprintf(fparms,"t,Ey[xc1][yc1][zcent],Ey[xc1][yc1][prpt],Iyt,v\n");
else if((rec1flag==(-1))&&(rec2flag==0)) fprintf(fparms,"t,Eyc1[1][10],Ey[xcere][ycere][prpt],Ey[xcere][ycere+1][zcere]\n");
else if((rec1flag==(-1))&&(rec2flag==(-1)))fprintf(fparms,"t,Eyc1[1][10],Ey[xcere][ycere][prpt],Ey[xcere][ycere+1][zcere],Ex[xcere+1][ycere][zcere]\n");
/* =========================================================================
=========================================================================
START OF OUTERMOST LOOP
=========================================================================
========================================================================= */
for(loop=0;loop<fd1.numsteps;loop++) {
/* =========================================================================
INITIALIZING ELECTRIC AND MAGNETIC FIELD VALUES THROUGHOUT THE GRID
========================================================================= */
tmcnt=1;
/* =========================================================================
INITIALIZE BURIED OBJECT PARAMETERS
========================================================================= */
if(fd1.obj>0) {
rad=fd1.rad/fd1.dz;
if(fd1.obj==1) {
fprintf(fparms,"SPHERE TARGET OPTION ACTIVATED\n");
xo=(fd1.xpos+fd1.xinc*loop)/fd1.dx-rad-3;
yo=(fd1.ypos+fd1.yinc*loop)/fd1.dy-rad-3;
zo=interfac+(fd1.zpos+fd1.zinc*loop)/fd1.dz-3;
}
else if(fd1.obj==2) {
cyllen=fd1.objlen/fd1.dz;
xo=(fd1.xpos+fd1.xinc*loop)/fd1.dx-SPHDIM/2;
yo=(fd1.ypos+fd1.yinc*loop)/fd1.dy-SPHDIM/2;
zo=interfac+(fd1.zpos+fd1.zinc*loop)/fd1.dz-(SPHDIM/2-rad);
}
else if(fd1.obj==3) {
sidlen=fd1.objlen/fd1.dz;
xo=(fd1.xpos+fd1.xinc*loop)/fd1.dx-sidlen/2;
yo=(fd1.ypos+fd1.yinc*loop)/fd1.dy-sidlen/2;
zo=interfac+(fd1.zpos+fd1.zinc*loop)/fd1.dz;
fprintf(fparms,"LENGTH OF SIDE OF CUBE IN GRID CELLS = %d\n",sidlen);
}
else if(fd1.obj==4) {
sidlen=fd1.objlen/fd1.dz;
xo=(fd1.xpos+fd1.xinc*loop)/fd1.dx-sidlen/2;
yo=(fd1.ypos+fd1.yinc*loop)/fd1.dy-sidlen/2;
zo=interfac+(fd1.zpos+fd1.zinc*loop)/fd1.dz;
fprintf(fparms,"LENGTH METALLIC SHEET IN GRID CELLS = %d\n",sidlen);
}
if ((fd1.obj==7)||(fd1.obj==8)) {
xo=(fd1.xpos+fd1.xinc*loop)/fd1.dx-pipdimxy/2;
yo=(fd1.ypos+fd1.yinc*loop)/fd1.dy-pipdimxy/2;
zo=interfac+(fd1.zpos+fd1.zinc*loop)/fd1.dz;
fprintf(fparms,"PIPE OPTION ACTIVATED object = %d\n",fd1.obj);
fprintf(fparms,"TARGET CONDUCTIVITY: %f\n",fd1.targcond);
fprintf(fparms,"TARGET PERMITTIVITY: %f\n",fd1.targperm);
}
if (fd1.obj==9) {
rad=fd1.rad/fd1.dz;
xo=(fd1.xpos+fd1.xinc*loop)/fd1.dx-pipdimxy/2;
yo=(fd1.ypos+fd1.yinc*loop)/fd1.dy-pipdimxy/2;
zo=interfac+(fd1.zpos+fd1.zinc*loop)/fd1.dz+rad/2;
fprintf(fparms,"THIN LAYER OPTION ACTIVATED \n");
fprintf(fparms,"LAYER CONDUCTIVITY: %f\n",fd1.targcond);
fprintf(fparms,"LAYER PERMITTIVITY: %f\n",fd1.targperm);
}
fprintf(fparms,"xo = %d\n",xo);
fprintf(fparms,"yo = %d\n",yo);
fprintf(fparms,"zo = %d\n",zo);
fprintf(fparms,"rad = %d\n",rad);
if((xo>xm)||(yo>ym)||(zo>zm)||(xo<0)||(yo<0)||(zo<0)) {
fprintf(fparms,"PROBLEMS WITH TARGET LOCATION - EXITING \n");
fclose(fparms);
exit();
}
}
/* =========================================================================
SIMULATING POINT DIPOLE
========================================================================= */
if(fd1.pdflag==1) {
xpd=xcent;
ypd=ycent;
zpd=zcent;
fprintf(fparms,"POINT DIPOLE FLAG ACTIVATED\n");
fprintf(fparms,"LOCATION: (x,y,z) = (%d,%d,%d)\n",xpd,ypd,zpd);
}
/* ========================================================================
****************** START OF TIME LOOP ***********************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -