fddx_in - open a DDS dataset for input


SYNOPSIS

#include <fdds.h> (fixed-format sources)
#include <f90dds.h> (free-format sources)

integer function fddx_in(alias, value, title)

character(*) alias
character(*) value
character(*) title

DESCRIPTION

Routine, "fddx_in", opens an input dataset. Any input headers will be dropped leaving the "Samples" starting at the first value of each trace; the "Samples" will be host-dependent complex if input data is complex, otherwise they will be host-dependent float. The dataset is open with "r+" so that is can be modified.

After opening a file for input the input buffer Dictionary will be left open for scanning (with the fdds_scan routines). The open process will look for "alias" for the dictionary (or usp, segy or su binary on input), "alias_data" for overriding the binary, and "alias_format" for overriding the format. The input parameter, "value", is the default value (eg. "stdin:") used for a fallback in cases where "alias" is not specified by the user. The input parameter, "title", should be a brief one line description of the application program. Each of these open routines will return a binary tag associated with the internal binary upon successful opening, a value of -2 if the dataset is not specified and no default value is given, otherwise a value of -1 to signify an open failure.

The opening of output files with "fddx_out" or "fddx_outhdr" actually internally delays the finally creation until the "bin_tag" is used to write or seek. This allows the developer to make any modifications to the dictionary prior to using it. It is reccommended that a call like "fdds_lseek(bin_tag, 0, 0, SEEK_SET);" be used to finish the opening process instead of waiting until an actual seek or write needs to be performed. Afterward, (if old_tag >= 0) a call to "fdds_map" can be made which will map all the headers (not "Samples") from the old_tag to the output bin_tag buffer.

The specified "sprime" and "hprime" types can be any prime type defined for "fdds_index".

EXAMPLES

	integer :: in_bin, n1, ier
	real, allocatable :: trace(:)
	
	in_bin = fddx_in('in', 'stdin:', title);
	
	ier = fdds_scanf('size.axis(1)', '%d\0', n1)
	
	allocate(trace(n1))
	ier = fddx_read(in_bin, trace, 1)
      

AUTHOR

Jerry Ehlers, BP America (May 2003)