@@ -423,11 +423,11 @@ int main(int argc, char* argv[])
423423 if (!sf_histfloat (Fvp ,"d3" ,& dy )) sf_error ("No d3= in input" );/* veloctiy model: dy */
424424 if (!sf_getint ("nb" ,& nb )) nb = 30 ; /* thickness of ABC layer */
425425 if (!sf_getint ("nt" ,& nt )) sf_error ("nt required" );/* number of time steps */
426- if (jsnap > nt ) sf_error ("make sure jsnap<=nt" );
427426 if (!sf_getfloat ("dt" ,& dt )) sf_error ("dt required" );/* time sampling interval */
428427 if (!sf_getfloat ("fm" ,& fm )) fm = 20.0 ; /*dominant freq of Ricker wavelet */
429428 if (!sf_getint ("ft" ,& ft )) ft = 0 ; /* first recorded time */
430429 if (!sf_getint ("jsnap" ,& jsnap )) jsnap = 1 ; /* interval for snapshots */
430+ if (jsnap > nt ) sf_error ("make sure jsnap<=nt" );
431431 if (!sf_getfloat ("ct" ,& ct )) ct = 0.01 ;/*for absorbing boundary*/
432432
433433 if (ifwfd )
@@ -647,24 +647,25 @@ int main(int argc, char* argv[])
647647 uvz[sy+nb-1][sx+nb ][sz+nb+1]-=Mzy*h3/dy/4*wlt[it];*/
648648
649649 /*add moment tensor source on stress*/
650- txx [sy + nb ][sx + nb ][sz + nb ] += h3 * Mxx * wlt [it ];
651- tyy [sy + nb ][sx + nb ][sz + nb ] += h3 * Myy * wlt [it ];
652- tzz [sy + nb ][sx + nb ][sz + nb ] += h3 * Mzz * wlt [it ];
650+ /*positive and negative +- changed on 01/21/2025*/
651+ txx [sy + nb ][sx + nb ][sz + nb ] -= h3 * Mxx * wlt [it ];
652+ tyy [sy + nb ][sx + nb ][sz + nb ] -= h3 * Myy * wlt [it ];
653+ tzz [sy + nb ][sx + nb ][sz + nb ] -= h3 * Mzz * wlt [it ];
653654
654- txy [sy + nb ][sx + nb ][sz + nb ] + =0.25 * h3 * Mxy * wlt [it ];
655- txy [sy + nb ][sx + nb - 1 ][sz + nb ] + =0.25 * h3 * Mxy * wlt [it ];
656- txy [sy + nb - 1 ][sx + nb ][sz + nb ] + =0.25 * h3 * Mxy * wlt [it ];
657- txy [sy + nb - 1 ][sx + nb - 1 ][sz + nb ] + =0.25 * h3 * Mxy * wlt [it ];
655+ txy [sy + nb ][sx + nb ][sz + nb ] - =0.25 * h3 * Mxy * wlt [it ];
656+ txy [sy + nb ][sx + nb - 1 ][sz + nb ] - =0.25 * h3 * Mxy * wlt [it ];
657+ txy [sy + nb - 1 ][sx + nb ][sz + nb ] - =0.25 * h3 * Mxy * wlt [it ];
658+ txy [sy + nb - 1 ][sx + nb - 1 ][sz + nb ] - =0.25 * h3 * Mxy * wlt [it ];
658659
659- tyz [sy + nb ][sx + nb ][sz + nb ] + =0.25 * h3 * Myz * wlt [it ];
660- tyz [sy + nb ][sx + nb ][sz + nb - 1 ]+ =0.25 * h3 * Myz * wlt [it ];
661- tyz [sy + nb - 1 ][sx + nb ][sz + nb ] + =0.25 * h3 * Myz * wlt [it ];
662- tyz [sy + nb - 1 ][sx + nb ][sz + nb - 1 ]+ =0.25 * h3 * Myz * wlt [it ];
660+ tyz [sy + nb ][sx + nb ][sz + nb ] - =0.25 * h3 * Myz * wlt [it ];
661+ tyz [sy + nb ][sx + nb ][sz + nb - 1 ]- =0.25 * h3 * Myz * wlt [it ];
662+ tyz [sy + nb - 1 ][sx + nb ][sz + nb ] - =0.25 * h3 * Myz * wlt [it ];
663+ tyz [sy + nb - 1 ][sx + nb ][sz + nb - 1 ]- =0.25 * h3 * Myz * wlt [it ];
663664
664- txz [sy + nb ][sx + nb ][sz + nb ] + =0.25 * h3 * Mxz * wlt [it ];
665- txz [sy + nb ][sx + nb - 1 ][sz + nb ] + =0.25 * h3 * Mxz * wlt [it ];
666- txz [sy + nb ][sx + nb ][sz + nb - 1 ] + =0.25 * h3 * Mxz * wlt [it ];
667- txz [sy + nb ][sx + nb - 1 ][sz + nb - 1 ] + =0.25 * h3 * Mxz * wlt [it ];
665+ txz [sy + nb ][sx + nb ][sz + nb ] - =0.25 * h3 * Mxz * wlt [it ];
666+ txz [sy + nb ][sx + nb - 1 ][sz + nb ] - =0.25 * h3 * Mxz * wlt [it ];
667+ txz [sy + nb ][sx + nb ][sz + nb - 1 ] - =0.25 * h3 * Mxz * wlt [it ];
668+ txz [sy + nb ][sx + nb - 1 ][sz + nb - 1 ] - =0.25 * h3 * Mxz * wlt [it ];
668669
669670 forward_uvy_uvx_uvz (uvx , uvy , uvz , txx , tyy , tzz , txz , txy , tyz , rho );
670671 forward_txx_tyy_tzz_txz_txy_tyz (uvx , uvy , uvz , txx , tyy , tzz , txz , txy , tyz , vp , vs );
0 commit comments