previous up next print clean
Next: sep_reed parameters Up: Clapp & Crawley: Fortran90: Previous: Header

DATA I/O

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
flow2
Figure 4
Flow chart of the procedure to read in a CMP gather.
view

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.



 
previous up next print clean
Next: sep_reed parameters Up: Clapp & Crawley: Fortran90: Previous: Header
Stanford Exploration Project
11/12/1997