Fortran SFF API to data I/O streams in C++

◆ sff_wtracei__()

int sff_wtracei__ ( integer lu,
char *  wid2line,
integer nsamp,
real fdata,
integer idata,
logical last,
char *  cs,
real c1,
real c2,
real c3,
integer nstack,
integer ierr,
ftnlen  wid2line_len,
ftnlen  cs_len 
)

Write one trace of data with INFO line.

Description from stuff.f:

c----------------------------------------------------------------------
subroutine sff_WTraceI(lu,
& wid2line, nsamp, fdata, idata, last,
& cs, c1, c2, c3, nstack, ierr)
c
c Write one data block starting with DAST line.
c Write also INFO line.
c The File will be closed after writing the last trace.
c
c input
c lu logical file unit
c wid2line valid WID2 line
c nsamp number of samples
c fdata data array
c last must be true is the trace to be written is the
c last one in this file
c cs coordinate system
c c1, c2, c3 receiver coordinates
c nstack number of stacks
c ouput:
c ierr error status (ok: ierr=0)
c
c workspace:
c idata fdata will be converted to idata using sff_f2i
c (both array may be in same memory space - see
c comments on sff_f2i)
c
c----------------------------------------------------------------------

Definition at line 81 of file fapid_sff_wtracei.cc.

References fapidxx::OFileUnits::close(), fapidxx::ostreammanager, and fapidxx::WID2container::wid2.

85 {
86  int retval=0;
87  *ierr=0;
88  try {
89  datrw::oanystream &os=ostreammanager(static_cast<int>(*lu));
90  WID2container wid2c(wid2line, wid2line_len);
91  unsigned int nsamples=static_cast<unsigned int>(*nsamp);
92  os << wid2c.wid2;
93  if (os.handlesinfo())
94  {
95  sff::INFO info;
96  info.cs=sff::coosysID(*cs);
97  info.cx=static_cast<double>(*c1);
98  info.cy=static_cast<double>(*c2);
99  info.cz=static_cast<double>(*c3);
100  info.nstacks=static_cast<int>(*nstack);
101  os << info;
102  }
103  aff::LinearShape shape(0, nsamples-1, 0);
104  datrw::Tfseries series(shape, aff::SharedHeap<real>(fdata, *nsamp));
105  os << series;
106  if (*last) ostreammanager.close(static_cast<int>(*lu));
107  }
108  catch (...) {
109  *ierr=1;
110  }
111  return(retval);
112 } // int sff_wtracei__
This struct is used to pass WID2 line data within libfapidxx.
Definition: wid2container.h:62
::fapidxx::OFileUnits ostreammanager
the global ostream manager
Definition: fileunit.cc:51
void close(const int &unit)
close the file associated with this file unit
Definition: fileunit.cc:162
Here is the call graph for this function: