Program sfgenshots | Generate shots for FWI using Enquist absorbing boundary condition
[SYNOPSIS]
sfgenshots < vinit.rsf > shots.rsf time=time.rsf check=check.rsf amp=1000 fm=10 dt= nt= ns= ng= jsx= jsz=0 jgx=1 jgz=0 sxbeg= szbeg= gxbeg= gzbeg= csdgather=n chk=n kt=100
[COMMENTS]

Note: You can try other complex boundary condition but we do not
recommend to do so. The main reason is that FWI is to recover
the low-frequency information of the earth model. Low-freq 
means that exact absorbing is not necessarilly needed. The 
result will be improved with the optimization procedure. 
Furthermore, complex boundary condition (such as sponge ABC or
PML) implies more computational cost, which will degrade the
efficiency of FWI. 

[PARAMETERS]
float   | amp | =1000 |   | 	maximum amplitude of ricker 
file    | check | = |   | 	auxiliary output file name
bool    | chk | =n |  [y/n] | 	check whether GPU-CPU implementation coincide with each other or not 
bool    | csdgather | =n |  [y/n] | 	default, common shot-gather; if n, record at every point
float   | dt | = |   | 	time interval 
float   | fm | =10 |   | 	dominant freq of ricker 
int     | gxbeg | = |   | 	x-begining index of receivers, starting from 0 
int     | gzbeg | = |   | 	z-begining index of receivers, starting from 0 
int     | jgx | =1 |   | 	receiver x-axis jump interval 
int     | jgz | =0 |   | 	receiver z-axis jump interval 
int     | jsx | = |   | 	source x-axis  jump interval  
int     | jsz | =0 |   | 	source z-axis jump interval  
int     | kt | =100 |   | 	check it at it=100 
int     | ng | = |   | 	total receivers in each shot 
int     | ns | = |   | 	total shots 
int     | nt | = |   | 	total modeling time steps 
int     | sxbeg | = |   | 	x-begining index of sources, starting from 0 
int     | szbeg | = |   | 	z-begining index of sources, starting from 0 
file    | time | = |   | 	auxiliary output file name
[DIRECTORY]
user/pyang
