These functions perform a spatial interpolation between a regularly sampled data space and an irregularly sampled one. When the parameter adj=.true. the irregular data is sprayed into the regular one. On the contrary, when the parameter adj=.false. the irregular data is reconstructed by interpolating the regular data. The function spat_interp_real is used for real traces, while the function spat_interp_complex is used for complex traces.
These interpolation functions are needed by Genkir3D to regrid the intermediate output space into the real output space, when the spraying mapping is applied.
The mapping from the intermediate space into the real output space is defined either by only the structure out_geom%irr or by both out_geom%irr and out_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.
function spat_interp_complex (adj, irr_geom, reg_geom, irr_data, reg_data, &
out_coord) result (stat)
integer :: stat
logical, intent (in) :: adj
type(irr_trace_geom_type), pointer :: irr_geom
type(reg_trace_geom_type), pointer :: reg_geom
complex, dimension (:,:) :: irr_data
complex, dimension (:,:,:,:,:) :: reg_data
real, pointer, dimension (:,:,:) :: out_coord
function spat_interp_real (adj, irr_geom, reg_geom, irr_data, reg_data, &
out_coord) result (stat)
integer :: stat
logical, intent (in) :: adj
type(irr_trace_geom_type), pointer :: irr_geom
type(reg_trace_geom_type), pointer :: reg_geom
real, dimension (:,:) :: irr_data
real, dimension (:,:,:,:,:) :: reg_data
real, pointer, dimension (:,:,:) :: out_coord
2|c|Scalar arguments | |
---|---|
Name | Description |
stat | Status of the call. Set to 0 if successful |
adj | Pull interpolation from regular to irregular (adj=.false.) |
Push interpolation from irregular to regular (adj=.true.) |
2|c|Derived-type arguments | |
---|---|
Name | Description |
irr_geom | Geometry of irregular data |
reg_geom | Geometry of regular data |
3|c|Array arguments | ||
---|---|---|
Name | Description | Shape |
irr_data | Irregularly sampled traces | (n_t_inp,n_tr_inp) |
reg_data | Regularly sampled traces | (n_tz_out,n_cmpx,n_cmpy,n_aoff,n_azim) if #1 |
(n_tz_out,n_cmpx,n_aoff,n_azim,n_cmpy) if #2 | ||
out_coord | Map from irregular to regular | (n_t_inp,n_tr_inp,2) |