#ifndef PanelTREEdotH_ #define PanelTREEdotH_ /* First a macro to make a C function callable from Fortran. */ #if defined(__linux__) /* others? */ #define FORTIFY(name) name##_ #elif defined(_AIX) /* others? */ #define FORTIFY(name) name /* Others? */ #endif #include "key.h" #include "keycvt.h" /* panel_t - a panel (source) type, holding the geometry and velocity of a panel. For the parkfield code panels are rectangular patches of constant velocity. Since the Green's function is 'exact' for such sources, we might as well make the aggregate 'multipoles' exactly the same. This means fewer data structures, which may be less confusing, but be careful when the code is extended -- the tree library normally distinguishes between the data structures at terminal nodes of the tree, the data structure at internal nodes, and an intermediate data structure used during the assembly of the internal nodes. */ typedef struct { double xc, zc; double dx, dz; double vel; Key_t key; } panel_t; #define NDIM 2 panel_t *parray; #define _cellDataIntermediate panel_t #define _cellDataFinal panel_t #define _tbody panel_t #endif