The operator domain is defined in the intermediate output space. This intermediate output space is centered around the input traces, and is usually the most convenient to define the operator itself. The coordinates of the intermediate traces in the intermediate space are stored in the inp_cent_coord array. The operator aperture is defined by the shape of the array inp_cent_coord.
When the mapping between the intermediate space and the real output space is time-invariant, the midpoint coordinates of the intermediate traces in the real output space are stored in the out_geom%irr structure. When this mapping is time-variant, the midpoint coordinates in the real output space, of each sample in the intermediate traces, are stored in the out_coord array. The information on the ouput mapping is used by the spatial interpolator within Genkir3D.
integer :: stat
logical, intent(in) :: inv_map,inv_amp
type (seis3d_geom_type), intent(in) :: inp_geom
type (seis3d_geom_type), intent(inout) :: out_geom
real, pointer, dimension (:,:,:) :: inp_cent_coord
real, pointer, dimension (:,:,:) :: out_coord
function oper_domain (inv_map,inv_amp,inp_geom,out_geom, &
inp_cent_coord, out_coord) result (stat)
2|c|Scalar arguments | |
---|---|
Name | Description |
stat | Status of the call. Set to 0 if successful |
inv_map | Compute mapping of inverse operator |
inv_amp | Compute amplitude of inverse operator |
2|c|Derived-type arguments | |
---|---|
Name | Description |
inp_geom | Geometry of input traces |
out_geom | Geometry of output traces |
3|c|Array arguments | ||
---|---|---|
Name | Description | Shape |
inp_cent_coord | Input centered coordinates | (-nh_z1:nh_z1,-nh_z2:nh_z2,2) |
out_coord | Map from intermediate | (n_tz_out, |
samples to output samples | (2*nh_z1+1)*(2*nh_z2+1),2) |