level 3
int
main(int argc, char **argv)
{
/* if verbose, print parameters */
if (verbose) {
warn("nx = %d",nx);
warn("dx = %g",dx);
warn("nz = %d",nz);
warn("dz = %g",dz);
warn("nt = %d",nt);
warn("dt = %g",dt);
warn("tmax = %g",tmax);
warn("fmax = %g",fmax);
warn("fpeak = %g",fpeak);
warn("vmin = %g",vmin);
warn("vmax = %g",vmax);
warn("mt = %d",mt);
warn("pml_max = %g",pml_max);
warn("pml_half = %d",pml_thick);
warn("pml_thickness = %d",pml_thickness);
if (dmin==dmax) {
warn("constant density");
} else {
warn("dfile=%s",dfile);
warn("dmin = %g",dmin);
warn("dmax = %g",dmax);
}
}
if (pml_thick != 0)
pml_init (nx, nz, dx, dz, dt, dvv, od, verbose);
/* loop ver time steps */
for (it=0,t=0.0; it<nt; ++it,t+=dt) {
/* if verbose, print time step */
if (verbose>1) warn("it=%d t=%g",it,t);
/* update source function */
if (ns==1)
ptsrc(xs[0],zs[0],nx,dx,fx,nz,dz,fz,dt,t,
fmax,fpeak,tdelay,s);
else
exsrc(ns,xs,zs,nx,dx,fx,nz,dz,fz,dt,t,fmax,s);
/* do one time step */
tstep2(nx,dx,nz,dz,dt,dvv,od,s,pm,p,pp,abs);
2014年03月19日 01点03分