35 #define TF_FAPID_SFF_RTRACEFI_CC_VERSION \ 36 "TF_FAPID_SFF_RTRACEFI_CC V1.0 " 109 datrw::Tfseries iseries;
112 "sff_rtracefi__: too many samples");
113 int nsamples=iseries.size();
114 aff::LinearShape shape(0, nsamples-1, 0);
115 datrw::Tfseries series(shape, aff::SharedHeap<real>(fdata, *nsamp));
116 series.copyin(iseries);
117 *last = is.last() ? 1 : 0;
119 std::string ocode(
"");
120 if (is.hasfree()) { ocode.append(
"F"); }
121 if (is.hasinfo()) { ocode.append(
"I"); }
122 if (!is.last()) { ocode.append(
"D"); }
123 if (is.hasinfo()) { is >> info; }
126 *dt=
static_cast<real>(wid2.dt);
128 *nsamp=series.size();
129 char thecs=sff::coosysID(info.cs);
131 *c1=
static_cast<real>(info.cx);
132 *c2=
static_cast<real>(info.cy);
133 *c3=
static_cast<real>(info.cz);
134 *nstack=info.nstacks;
136 if (is.hasfree()) { is >> free; }
137 freeblock(free, nline, lines, lindim, lenmax, lines_len);
This is the interface usually expected by Fortran programs linking to libsff.a (prototypes) ...
sff::FREE freeblock(integer *nline, char *lines, ftnlen lines_len)
create C++ FREE block from Fortran FREE lines
long int integer
Fortran integer type.
int sff_rtracefi__(integer *lu, real *tanf, real *dt, char *wid2line, integer *nsamp, real *fdata, integer *idata, char *code, logical *last, integer *nline, char *lines, integer *lindim, integer *lenmax, char *cs, real *c1, real *c2, real *c3, integer *nstack, integer *ierr, ftnlen wid2line_len, ftnlen code_len, ftnlen lines_len, ftnlen cs_len)
Read one trace of data and return FREE block and INFO line additionally.
void fillfstring(const std::string &s, char *fstring, ftnlen slen)
fill a Fortran string with a C++ string
exceptions and error handling macros (prototypes)
#define FAPIDXX_fuassert(C, U, M)
Check an assertion and report by throwing an exception.
float real
Fortran real type (single precision)
long int logical
Fortran logical type.
long int ftnlen
Fortran string size type.
a file unit interface to libdatrwxx (prototypes)
float maketanf(const libtime::TAbsoluteTime &time)
create the tanf value
::fapidxx::IFileUnits istreammanager
the global istream manager
some helper functions (prototypes)