Next: sep_reed parameters
Up: Clapp & Crawley: Fortran90:
Previous: Header
One of the most attractive features of SEP77
was its straight forward I/O capabilities through sreed and
srite. With the advent of SEP90 and irregular data capabilities
I/O suddenly became much more complex. Figure
4 shows an example
of what needs to be done to read in a CMP gather from a SEP90 dataset.
Even by following this procedure you will have lost the overall
grid structure and are storing both real and integer header values in
a common array, a far from ideal situation.
With our structure the procedure is much simpler and powerful.
Our sep_reed and sep_rite can be used to read in any type
and portion of SEP dataset (data and/or header and/or grid). In addition
the data can be read into any portion of one of SEP data-sets.
We take full advantage of Fortran90's optionals to make the reading
as simple or as complex as necessary.
flow2
Figure 4 Flow chart of the procedure to read
in a CMP gather.
To read in a trace from a SEP77 dataset into sep_1d
type, the call remains as straight forward as the traditional sreed:
sep_reed("in",data1d,"real")
With the additional benefits that the o,d, n, and label are also
retained in the sep structure.
To read in the 2-D CMP gather shown earlier becomes just a slightly
more complex exercise:
sep_reed("in",data2d, "real",fout=/pos1.pos2/)
A significant improvement over the C or Fortran 77 approach. In addition
the overlying grid is preserved and the
data and the headers can be accessed using a call very similar to the
way uniform arrays are reference in Fortran 77.
Next: sep_reed parameters
Up: Clapp & Crawley: Fortran90:
Previous: Header
Stanford Exploration Project
11/12/1997