File size: 1,603 Bytes
2b6ccf8 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | /*------------------------------------------------------------*/
/** grid memory management routines */
typedef struct gridMem { /* 3D grid data in memory */
GridDesc* pgrid; /* pointer to copy of grid description structure */
void* buffer; /* corresponding buffer (contiguous floats) */
void*** array; /* corresponding array access to buffer */
int grid_read; /* grid read flag = 1 if grid has been read from disk */
int active; /* active flag = 1 if grid is being used in current location */
} GridMemStruct;
/* array of gridMem structure pointers for storing list of grids in memory */
extern GridMemStruct** GridMemList;
extern int GridMemListSize;
extern int GridMemListNumElements;
extern int Num3DGridReadToMemory, MaxNum3DGridMemory;
extern int GridMemListTotalNumElementsAdded;
/* GridLib wrapper functions */
void* NLL_AllocateGrid(GridDesc* pgrid);
void NLL_FreeGrid(GridDesc* pgrid);
void NLL_FreeGridMemory();
void*** NLL_CreateGridArray(GridDesc* pgrid);
void NLL_DestroyGridArray(GridDesc* pgrid);
int NLL_ReadGrid3dBuf(GridDesc* pgrid, FILE* fpio);
GridMemStruct* GridMemList_AddGridDesc(GridDesc* pgrid);
void GridMemList_AddElement(GridMemStruct* pnewGridMemStruct);
void GridMemList_RemoveElementAt(int index);
GridMemStruct* GridMemList_TryToReplaceElementAt(GridMemStruct* pGridMemStruct, GridDesc* pgrid);
GridMemStruct* GridMemList_ElementAt(int index);
int GridMemList_IndexOfGridDesc(int verbose, GridDesc* pgrid);
int GridMemList_NumElements();
/** end of grid memory management routines */
/*------------------------------------------------------------*/
|