AiresWrapper.cc
Go to the documentation of this file.
1 /***************************************************************************
2  AiresWrapper.cpp - description
3  -------------------
4  begin : Thu Mar 7 2002
5  author : Troy Porter
6  email : tporter@lsu.edu
7  ***************************************************************************/
8 
9 
10 #include <io/AiresWrapper.h>
11 
12 #include <utl/ErrorLogger.h>
13 
14 #include <cassert>
15 #include <cstddef>
16 #include <iostream>
17 #include <sstream>
18 using namespace std;
19 
20 // Mapping to Aires Fortran77 functions
21 
22 namespace AiresF77Mapping {
23 
24  // Note this is only tested for gcc at the moment. I think other compilers
25  // (icc, etc.) may have different name decoration schemes when mixing
26  // fortran and C.
27 
28  extern "C" {
29 
30  void ciorinit_(int *inilevel, int *codsys, int *vrb, int *irc);
31  void ciorshutdown_();
32  void cioclose_();
33  void cioclose1_(int *channel);
34  int crofieldindexc(int *channel, int *rectype, char *fieldname,
35  int *vrb, int *datype, int *irc);
36  void crofileinfo_(int *channel, int *ouflag, int *vrb, int *irc);
37  int crofileversion_(int *channel);
38  bool crogotorec_(int *channel, int *recnumber, int *vrb, int *irc);
39  void croheader1info_(int *ouflag);
40  void croheaderinfo_(int *ouflag, int *vrb, int *irc);
41  void croinputdata0_(int *intdata, // array
42  double *realdata, // array
43  int *shprimcode, // array
44  double *shprimwt); // array
45  void crooldata_(int *vrb, int *nobslev,
46  double *olzv, // array
47  double *oldepth, // array
48  int *irc);
49  void croreccount_(int *channel, int *vrb, int *nrtype,
50  int *nrec, // array
51  int *irc);
52  bool crorecfind_(int *channel, int *intype, int *vrb,
53  int *infield1, int *rectype);
54  void crorecninfo_(int *channel, int *poskey, int *ouflag,
55  int *vrb, int *irc);
56  int crorecnumber_(int *channel, int *vrb, int *irc);
57  void crorewind_(int *channel, int *vrb, int *irc);
58  bool crospcode_(int *pcode, int *splabel);
59  void crotaskidc(char *taskname, int *namelen, int *taskversion,
60  char *startdate);
61  void fitghf_(int *bodata0, int *eodata0,
62  double *depths, // array
63  double *nallch, // array
64  double *weights, // array
65  int *ws, double *minnmax, double *nminratio,
66  int *bodataeff, int *eodataeff, double *nmax,
67  double *xmax, double *x0, double *lambda,
68  double *sqsum, int *irc);
69  bool getcrorecord_(int *channel,
70  int *intfields, // array
71  double *realfields, // array
72  bool *altrec,
73  int *vrb, int *irc);
74  bool getcrorectype_(int *channel, int *vrb, int *infield1,
75  int *rectype);
76  int getinpintc(char *dirname);
77  double getinprealc(char *dirname);
78  void getinpstringc(char *dirname, char *value, int *slen);
79  bool getinpswitchc(char *dirname);
80  double grandom_();
81  int nuclcode_(int *z, int *n, int *irc);
82  void nucldecode_(int *ncode, int *z, int *n, int *a);
83  void olcoord_(int *nobslev,
84  double *olzv, // array
85  double *groundz, double *injz,
86  double *zenith, double *azimuth,
87  double *xaxis, // array
88  double *yaxis, // array
89  double *zaxis, // array
90  double *tshift, // array
91  double *mx, // array
92  double *my, // array
93  int *irc);
94  void olcrossed_(int *olkey, int *updown, int *firstol, int *lastol);
95  void olcrossedu_(int *olkey, double *ux, double *uy, double *uz,
96  int *firstol, int *lastol);
97  bool olsavemarked_(int *obslev, int *vrb, int *irc);
98  void olv2slant_(int *nobslev,
99  double *olxv, // array
100  double *Xv0, int *zendis,
101  double *zen1, double *zen2, double *groundz,
102  double *olxs); // array
103  void opencrofilec(const char *wdir, // lets hope that fortran
104  const char *filename, // doesn't modify these
105  int *header1,
106  int *logbase, int *vrb, int *channel, int *irc);
107  void raninit_(double *seed);
108  bool regetcrorecord_(int *channel,
109  int *intfields, // array
110  double *realfields, // array
111  bool *altrec, int *vrb, int *irc);
112  void sp1stint_(int *csys, double *x1, double *y1, double *z1, int *irc);
113  void spaddnull_(double *pener, double *pwt, int *irc);
114  void spaddp0_(int *pcode, double *pener, int *csys,
115  double *ux, double *uy, double *uz, double *pwt, int *irc);
116  void spaddpn_(int *n,
117  int *pcode, // array
118  double *pener, // array
119  int *csys, int *ldu,
120  double **uxyz, // array of vectors
121  double *pwt, // array
122  int *irc);
123  void speiend_(int *retcode);
124  void speigetmodnamec(char *mn, int *mnlen, char *mnfull, int *mnfullen);
125  void speigetparsc(char *parstring, int *pstrlen);
126  void speimv_(int *mvnew, int *mvold);
127  void spinjpoint_(int *csys, double *x0, double *y0, double *z0,
128  int *tsw, double *t0beta, int *irc);
129  void speistart_(int *showerno, double *primener,
130  double *injpos, // 3 element array
131  double *xvinj,
132  double *zground, double *xvground, double *dgroundinj,
133  double *uprim); // 3 element array
134  void speitaskc(char *taskn, int *tasklen, int *tver);
135  void spnshowers_(int *totsh, int *firstsh, int *lastsh);
136  void sprimname_(char *pname, int *pnamelen);
137  int thisairesversion_();
138  double urandom_();
139  double xslant_(double *Xvert, double *Xv0,
140  double *cozenith, double *zground);
141  };
142 
143 }
144 
145 // Begin class AiresWrapper
146 
147 using namespace io;
148 
149 bool AiresWrapper::fInitialised = false;
150 unsigned int AiresWrapper::fNumberOfOpenFiles = 0;
151 
152 // Most of the code below needs to be modified to take into account the
153 // mapping in the AiresF77Mapping namespace, which may depend upon the
154 // compiler (in the future).
155 
156 void AiresWrapper::ciorinit(int *inilevel, int *codsys, int *vrb, int *irc) {
157 
158  assert(inilevel != 0 && codsys != 0 && vrb != 0 && irc != 0);
159 
160  if (!AiresWrapper::fInitialised) {
161 
162  AiresF77Mapping::ciorinit_(inilevel, codsys, vrb, irc);
163 
164  AiresWrapper::fInitialised = true;
165 
166  }
167 
168 }
169 
170 void AiresWrapper::ciorshutdown() {
171 
172  if (AiresWrapper::fNumberOfOpenFiles == 0)
174 
175 }
176 
177 void AiresWrapper::cioclose() {
178 
180 
181  AiresWrapper::fNumberOfOpenFiles = 0;
182 
183 }
184 
185 void AiresWrapper::cioclose1(int *channel) {
186 
187  assert(channel != 0);
188 
190 
191  if (AiresWrapper::fNumberOfOpenFiles > 0)
192  AiresWrapper::fNumberOfOpenFiles--;
193 
194 }
195 
196 int AiresWrapper::crofieldindex(int *channel, int *rectype, const char* fieldname,
197  int *vrb, int *datype, int *irc) {
198 
199  assert(channel != 0 && rectype != 0 && fieldname != 0 &&
200  vrb != 0 && datype != 0 && irc != 0);
201 
202  return AiresF77Mapping::crofieldindexc(channel, rectype, (char*)fieldname, vrb,
203  datype, irc);
204 
205 }
206 
207 void AiresWrapper::crofileinfo(int *channel, int *ouflag, int *vrb, int *irc) {
208 
209  assert(channel != 0 && ouflag != 0 && vrb != 0 && irc != 0);
210 
211  AiresF77Mapping::crofileinfo_(channel, ouflag, vrb, irc);
212 
213 }
214 
215 int AiresWrapper::crofileversion(int *channel) {
216 
217  assert(channel != 0);
218 
219  return AiresF77Mapping::crofileversion_(channel);
220 
221 }
222 
223 bool AiresWrapper::crogotorec(int *channel, int *recnumber,
224  int *vrb, int *irc) {
225 
226  assert(channel != 0 && recnumber != 0 && vrb != 0 && irc != 0);
227 
228  return AiresF77Mapping::crogotorec_(channel, recnumber, vrb, irc);
229 
230 }
231 
232 void AiresWrapper::croheader1info(int *ouflag) {
233 
234  assert(ouflag != 0);
235 
237 
238 }
239 
240 void AiresWrapper::croheaderinfo(int *ouflag, int *vrb, int *irc) {
241 
242  assert(ouflag != 0 && vrb != 0 && irc != 0);
243 
244  AiresF77Mapping::croheaderinfo_(ouflag, vrb, irc);
245 
246 }
247 
248 void AiresWrapper::croinputdata0(int *intdata, double *realdata,
249  int *shprimcode, double *shprimwt) {
250 
251  assert(intdata != 0 && realdata != 0 &&
252  shprimcode != 0 && shprimwt != 0);
253 
254  AiresF77Mapping::croinputdata0_(intdata, realdata, shprimcode, shprimwt);
255 
256 }
257 
258 void AiresWrapper::crooldata(int *vrb, int *nobslev, double *olzv,
259  double *oldepth, int *irc) {
260 
261  assert(vrb != 0 && nobslev != 0 && olzv != 0 &&
262  oldepth != 0 && irc != 0);
263 
264  AiresF77Mapping::crooldata_(vrb, nobslev, olzv, oldepth, irc);
265 
266 }
267 
268 void AiresWrapper::croreccount(int *channel, int *vrb, int *nrtype,
269  int *nrec, int *irc) {
270 
271  assert(channel != 0 && vrb != 0 && nrtype != 0 &&
272  nrec != 0 && irc != 0);
273 
274  AiresF77Mapping::croreccount_(channel, vrb, nrtype, nrec, irc);
275 
276 }
277 
278 bool AiresWrapper::crorecfind(int *channel, int *intype, int *vrb,
279  int *infield1, int *rectype) {
280 
281  assert(channel != 0 && intype != 0 && vrb != 0 &&
282  infield1 != 0 && rectype != 0);
283 
284  return AiresF77Mapping::crorecfind_(channel, intype, vrb, infield1, rectype);
285 
286 }
287 
288 void AiresWrapper::crorecninfo(int *channel, int *poskey, int *ouflag,
289  int *vrb, int *irc) {
290 
291  assert(channel != 0 && poskey != 0 && ouflag != 0 &&
292  vrb != 0 && irc != 0);
293 
294  AiresF77Mapping::crorecninfo_(channel, poskey, ouflag, vrb, irc);
295 
296 }
297 
298 int AiresWrapper::crorecnumber(int *channel, int *vrb, int *irc) {
299 
300  assert(channel != 0 && vrb != 0 && irc != 0);
301 
302  return AiresF77Mapping::crorecnumber_(channel, vrb, irc);
303 
304 }
305 
306 void AiresWrapper::crorewind(int *channel, int *vrb, int *irc) {
307 
308  assert(channel != 0 && vrb != 0 && irc != 0);
309 
310  AiresF77Mapping::crorewind_(channel, vrb, irc);
311 
312 }
313 
314 bool AiresWrapper::crospcode(int *pcode, int *splabel) {
315 
316  assert(pcode != 0 && splabel != 0);
317 
318  return AiresF77Mapping::crospcode_(pcode, splabel);
319 
320 }
321 
322 void AiresWrapper::crotaskidc(char taskname[999], int *namelen, int *taskversion,
323  char startdate[20]) {
324 
325  assert(taskname != 0 && namelen != 0 && taskversion != 0 &&
326  startdate != 0);
327 
328  AiresF77Mapping::crotaskidc(taskname, namelen, taskversion, startdate);
329 
330 }
331 
332 void AiresWrapper::fitghf(int *bodata0, int *eodata0, double *depths,
333  double *nallch, double *weights, int *ws,
334  double *minnmax, double *nminratio,
335  int *bodataeff, int *eodataeff, double *nmax,
336  double *xmax, double *x0, double *lambda,
337  double *sqsum, int *irc) {
338 
339  assert(bodata0 != 0 && eodata0 != 0 && depths != 0 &&
340  nallch != 0 && weights != 0 && ws != 0 &&
341  minnmax != 0 && nminratio != 0 && bodataeff != 0 &&
342  eodataeff != 0 && nmax != 0 && xmax != 0 &&
343  x0 != 0 && lambda != 0 && sqsum != 0 && irc != 0);
344 
345  AiresF77Mapping::fitghf_(bodata0, eodata0, depths, nallch, weights,
346  ws, minnmax, nminratio, bodataeff, eodataeff,
347  nmax, xmax, x0, lambda, sqsum, irc);
348 
349 }
350 
351 bool AiresWrapper::getcrorecord(int *channel, int *intfields,
352  double *realfields, bool *altrec,
353  int *vrb, int *irc) {
354 
355  assert(channel != 0 && intfields != 0 &&
356  realfields != 0 && altrec != 0 && vrb != 0 && irc != 0);
357 
358  return AiresF77Mapping::getcrorecord_(channel, intfields, realfields,
359  altrec, vrb, irc);
360 
361 }
362 
363 bool AiresWrapper::getcrorectype(int *channel, int *vrb, int *infield1,
364  int *rectype) {
365 
366  assert(channel != 0 && vrb != 0 && infield1 != 0 &&
367  rectype != 0);
368 
369  return AiresF77Mapping::getcrorectype_(channel, vrb, infield1, rectype);
370 
371 }
372 
373 int AiresWrapper::getinpintc(char *dirname) {
374 
375  assert(dirname != 0);
376 
377  return AiresF77Mapping::getinpintc(dirname);
378 
379 }
380 
381 double AiresWrapper::getinprealc(char *dirname) {
382 
383  assert(dirname != 0);
384 
385  return AiresF77Mapping::getinprealc(dirname);
386 
387 }
388 
389 void AiresWrapper::getinpstringc(char *dirname, char *value, int *slen) {
390 
391  assert(dirname != 0 && value != 0 && slen != 0);
392 
393  AiresF77Mapping::getinpstringc(dirname, value, slen);
394 
395 }
396 
397 bool AiresWrapper::getinpswitchc(char *dirname) {
398 
399  assert(dirname != 0);
400 
401  return AiresF77Mapping::getinpswitchc(dirname);
402 
403 }
404 
405 double AiresWrapper::grandom() {
406 
407  return AiresF77Mapping::grandom_();
408 
409 }
410 
411 int AiresWrapper::nuclcode(int *z, int *n, int *irc) {
412 
413  assert(z != 0 && n != 0 && irc != 0);
414 
415  return AiresF77Mapping::nuclcode_(z, n, irc);
416 
417 }
418 
419 void AiresWrapper::nucldecode(int *ncode, int *z, int *n, int *a) {
420 
421  assert(ncode != 0 && z != 0 && n != 0 && a != 0);
422 
423  AiresF77Mapping::nucldecode_(ncode, z, n ,a);
424 
425 }
426 
427 void AiresWrapper::olcoord(int *nobslev, double *olzv, double *groundz,
428  double *injz, double *zenith, double *azimuth,
429  double *xaxis, double *yaxis, double *zaxis,
430  double *tshift, double *mx, double *my, int *irc) {
431 
432  assert(nobslev != 0 && olzv != 0 && groundz != 0 &&
433  injz != 0 && zenith != 0 && azimuth != 0 &&
434  xaxis != 0 && yaxis != 0 && zaxis != 0 &&
435  tshift != 0 && mx != 0 && my != 0 && irc != 0);
436 
437  AiresF77Mapping::olcoord_(nobslev, olzv, groundz, injz, zenith, azimuth,
438  xaxis, yaxis, zaxis, tshift, mx, my, irc);
439 
440 }
441 
442 void AiresWrapper::olcrossed(int *olkey, int *updown,
443  int *firstol, int *lastol) {
444 
445  assert(olkey != 0 && updown != 0 && firstol != 0 && lastol != 0);
446 
447  AiresF77Mapping::olcrossed_(olkey, updown, firstol, lastol);
448 
449 }
450 
451 void AiresWrapper::olcrossedu(int *olkey, double *ux, double *uy, double *uz,
452  int *firstol, int *lastol) {
453 
454  assert(olkey != 0 && ux != 0 && uy != 0 &&
455  uz != 0 && firstol != 0 && lastol != 0);
456 
457  AiresF77Mapping::olcrossedu_(olkey, ux, uy, uz, firstol, lastol);
458 
459 }
460 
461 bool AiresWrapper::olsavemarked(int *obslev, int *vrb, int *irc) {
462 
463  assert(obslev != 0 && vrb != 0 && irc != 0);
464 
465  return AiresF77Mapping::olsavemarked_(obslev, vrb, irc);
466 
467 }
468 
469 void AiresWrapper::olv2slant(int *nobslev, double *olxv, double *Xv0,
470  int *zendis, double *zen1, double *zen2,
471  double *groundz, double *olxs) {
472 
473  assert(nobslev != 0 && olxv != 0 && Xv0 != 0 && zendis != 0 &&
474  zen1 != 0 && zen2 != 0 && groundz != 0 && olxs != 0);
475 
476  AiresF77Mapping::olv2slant_(nobslev, olxv, Xv0, zendis, zen1, zen2,
477  groundz, olxs);
478 
479 }
480 
481 void AiresWrapper::opencrofilec(const char *wdir, const char *filename,
482  int *header1, int *logbase, int *vrb,
483  int *channel, int *irc) {
484 
485  assert(wdir != 0 && filename != 0 && header1 != 0 &&
486  logbase != 0 && vrb != 0 && channel != 0 && irc != 0);
487 
488  AiresF77Mapping::opencrofilec(wdir, filename, header1, logbase,
489  vrb, channel, irc);
490 
491  if (*irc > 1) {
492 
493  ostringstream info;
494 
495  info << "Error in opening AIRES file. Return code " << *irc;
496  ERROR(info.str());
497  return;
498 
499  }
500 
501  AiresWrapper::fNumberOfOpenFiles++;
502 
503 }
504 
505 void AiresWrapper::raninit(double *seed) {
506 
507  assert(seed != 0);
508 
510 
511 }
512 
513 bool AiresWrapper::regetcrorecord(int *channel, int *intfields,
514  double *realfields, bool *altrec,
515  int *vrb, int *irc) {
516 
517  assert(channel != 0 && intfields != 0 && realfields != 0 &&
518  altrec != 0 && vrb != 0 && irc != 0);
519 
520  return AiresF77Mapping::regetcrorecord_(channel, intfields, realfields,
521  altrec, vrb, irc);
522 
523 }
524 
525 void AiresWrapper::sp1stint(int *csys, double *x1, double *y1, double *z1,
526  int *irc) {
527 
528  assert(csys != 0 && x1 != 0 && y1 != 0 && z1 != 0 &&
529  irc != 0);
530 
531  AiresF77Mapping::sp1stint_(csys, x1, y1, z1, irc);
532 
533 }
534 
535 void AiresWrapper::spaddnull(double *pener, double *pwt, int *irc) {
536 
537  assert(pener != 0 && pwt != 0 && irc != 0);
538 
539  AiresF77Mapping::spaddnull_(pener, pwt, irc);
540 
541 }
542 
543 void AiresWrapper::spaddp0(int *pcode, double *pener, int *csys,
544  double *ux, double *uy, double *uz, double *pwt,
545  int *irc) {
546 
547  assert(pcode != 0 && pener != 0 && csys != 0 &&
548  ux != 0 && uy != 0 && uz != 0 && pwt != 0 &&
549  irc != 0);
550 
551  AiresF77Mapping::spaddp0_(pcode, pener, csys, ux, uy, uz, pwt, irc);
552 
553 }
554 
555 void AiresWrapper::spaddpn(int *n, int *pcode, double *pener, int *csys,
556  int *ldu, double **uxyz, double *pwt, int *irc) {
557 
558  assert(n != 0 && pcode != 0 && pener != 0 && csys != 0 &&
559  ldu != 0 && uxyz != 0 && pwt != 0 && irc != 0);
560 
561  AiresF77Mapping::spaddpn_(n, pcode, pener, csys, ldu, uxyz, pwt, irc);
562 
563 }
564 
565 void AiresWrapper::speiend(int *retcode) {
566 
567  assert(retcode != 0);
568 
569  AiresF77Mapping::speiend_(retcode);
570 
571 }
572 
573 void AiresWrapper::speigetmodnamec(char *mn, int *mnlen, char *mnfull,
574  int *mnfullen) {
575 
576  assert(mn != 0 && mnlen != 0 && mnfull != 0 && mnfullen != 0);
577 
578  AiresF77Mapping::speigetmodnamec(mn, mnlen, mnfull, mnfullen);
579 
580 }
581 
582 void AiresWrapper::speigetparsc(char *parstring, int *pstrlen) {
583 
584  assert(parstring != 0 && pstrlen != 0);
585 
586  AiresF77Mapping::speigetparsc(parstring, pstrlen);
587 
588 }
589 
590 void AiresWrapper::speimv(int *mvnew, int *mvold) {
591 
592  assert(mvnew != 0 && mvold != 0);
593 
594  AiresF77Mapping::speimv_(mvnew, mvold);
595 
596 }
597 
598 void AiresWrapper::spinjpoint(int *csys, double *x0, double *y0, double *z0,
599  int *tsw, double *t0beta, int *irc) {
600 
601  assert(csys != 0 && x0 != 0 && y0 != 0 && z0 != 0 &&
602  tsw != 0 && t0beta != 0 && irc != 0);
603 
604  AiresF77Mapping::spinjpoint_(csys, x0, y0, z0, tsw, t0beta, irc);
605 
606 }
607 
608 void AiresWrapper::speistart(int *showerno, double *primener,
609  double *injpos, double *xvinj,
610  double *zground, double *xvground,
611  double *dgroundinj, double *uprim) {
612 
613  assert(showerno != 0 && primener != 0 && injpos != 0 &&
614  xvinj != 0 && zground != 0 && xvground != 0 &&
615  dgroundinj != 0 && uprim != 0);
616 
617  AiresF77Mapping::speistart_(showerno, primener, injpos, xvinj, zground,
618  xvground, dgroundinj, uprim);
619 
620 }
621 
622 void AiresWrapper::speitaskc(char *taskn, int *tasklen, int *tver) {
623 
624  assert(taskn != 0 && tasklen != 0 && tver != 0);
625 
626  AiresF77Mapping::speitaskc(taskn, tasklen, tver);
627 
628 }
629 
630 void AiresWrapper::spnshowers(int *totsh, int *firstsh, int *lastsh) {
631 
632  assert(totsh != 0 && firstsh != 0 && lastsh != 0);
633 
634  AiresF77Mapping::spnshowers_(totsh, firstsh, lastsh);
635 
636 }
637 
638 void AiresWrapper::sprimname(char *pname, int *pnamelen) {
639 
640  assert(pname != 0 && pnamelen != 0);
641 
642  AiresF77Mapping::sprimname_(pname, pnamelen);
643 
644 }
645 
646 int AiresWrapper::thisairesversion() {
647 
649 
650 }
651 
652 double AiresWrapper::urandom() {
653 
654  return AiresF77Mapping::urandom_();
655 
656 }
657 
658 double AiresWrapper::xslant(double *Xvert, double *Xv0,
659  double *cozenith, double *zground) {
660 
661  assert(Xvert != 0 && Xv0 != 0 && cozenith != 0 && zground != 0);
662 
663  return AiresF77Mapping::xslant_(Xvert, Xv0, cozenith, zground);
664 
665 }
666 
int crorecnumber_(int *channel, int *vrb, int *irc)
void spaddnull_(double *pener, double *pwt, int *irc)
void fitghf_(int *bodata0, int *eodata0, double *depths, double *nallch, double *weights, int *ws, double *minnmax, double *nminratio, int *bodataeff, int *eodataeff, double *nmax, double *xmax, double *x0, double *lambda, double *sqsum, int *irc)
void spaddpn_(int *n, int *pcode, double *pener, int *csys, int *ldu, double **uxyz, double *pwt, int *irc)
bool regetcrorecord_(int *channel, int *intfields, double *realfields, bool *altrec, int *vrb, int *irc)
void speiend_(int *retcode)
bool crorecfind_(int *channel, int *intype, int *vrb, int *infield1, int *rectype)
void crotaskidc(char *taskname, int *namelen, int *taskversion, char *startdate)
void croinputdata0_(int *intdata, double *realdata, int *shprimcode, double *shprimwt)
void olcrossed_(int *olkey, int *updown, int *firstol, int *lastol)
bool crospcode_(int *pcode, int *splabel)
void olcoord_(int *nobslev, double *olzv, double *groundz, double *injz, double *zenith, double *azimuth, double *xaxis, double *yaxis, double *zaxis, double *tshift, double *mx, double *my, int *irc)
void spnshowers_(int *totsh, int *firstsh, int *lastsh)
int crofileversion_(int *channel)
void croreccount_(int *channel, int *vrb, int *nrtype, int *nrec, int *irc)
double xslant_(double *Xvert, double *Xv0, double *cozenith, double *zground)
void crooldata_(int *vrb, int *nobslev, double *olzv, double *oldepth, int *irc)
void nucldecode_(int *ncode, int *z, int *n, int *a)
void speitaskc(char *taskn, int *tasklen, int *tver)
void speimv_(int *mvnew, int *mvold)
void crofileinfo_(int *channel, int *ouflag, int *vrb, int *irc)
double urandom_()
bool getcrorecord_(int *channel, int *intfields, double *realfields, bool *altrec, int *vrb, int *irc)
void speigetparsc(char *parstring, int *pstrlen)
void sp1stint_(int *csys, double *x1, double *y1, double *z1, int *irc)
void crorewind_(int *channel, int *vrb, int *irc)
int nuclcode_(int *z, int *n, int *irc)
void olv2slant_(int *nobslev, double *olxv, double *Xv0, int *zendis, double *zen1, double *zen2, double *groundz, double *olxs)
bool getcrorectype_(int *channel, int *vrb, int *infield1, int *rectype)
bool olsavemarked_(int *obslev, int *vrb, int *irc)
void spinjpoint_(int *csys, double *x0, double *y0, double *z0, int *tsw, double *t0beta, int *irc)
void getinpstringc(char *dirname, char *value, int *slen)
double getinprealc(char *dirname)
void crorecninfo_(int *channel, int *poskey, int *ouflag, int *vrb, int *irc)
void speigetmodnamec(char *mn, int *mnlen, char *mnfull, int *mnfullen)
bool crogotorec_(int *channel, int *recnumber, int *vrb, int *irc)
bool getinpswitchc(char *dirname)
void croheader1info_(int *ouflag)
void raninit_(double *seed)
double grandom_()
int getinpintc(char *dirname)
int thisairesversion_()
char * filename
Definition: dump1090.h:266
void opencrofilec(const char *wdir, const char *filename, int *header1, int *logbase, int *vrb, int *channel, int *irc)
void cioclose1_(int *channel)
void ciorshutdown_()
#define ERROR(message)
Macro for logging error messages.
Definition: ErrorLogger.h:165
void croheaderinfo_(int *ouflag, int *vrb, int *irc)
void olcrossedu_(int *olkey, double *ux, double *uy, double *uz, int *firstol, int *lastol)
void ciorinit_(int *inilevel, int *codsys, int *vrb, int *irc)
int crofieldindexc(int *channel, int *rectype, char *fieldname, int *vrb, int *datype, int *irc)
void sprimname_(char *pname, int *pnamelen)
void speistart_(int *showerno, double *primener, double *injpos, double *xvinj, double *zground, double *xvground, double *dgroundinj, double *uprim)
void spaddp0_(int *pcode, double *pener, int *csys, double *ux, double *uy, double *uz, double *pwt, int *irc)

, generated on Tue Sep 26 2023.