blob: c6c355c9b6973c1ed76d7c4aee4c983f50b2521f (
plain)
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
/*@@
@file Overloadables.c
@author Gabrielle Allen
@date 2000/06/22
@desc
PUGH routines which overload CCTK routines in the flesh
@enddesc
@version $Id$
@@*/
#include <stdlib.h>
#include "cctk.h"
#include "pugh.h"
#include "pugh_Comm.h"
static const char *rcsid = "$Header$";
CCTK_FILEVERSION(CactusPUGH_PUGH_Overloadables_c);
int PUGHi_NumTimeLevelsArray(const pGH *pughGH, int var, int timelevels);
/*@@
@routine PUGH_GroupDynamicData
@author Gabrielle Allen
@date 2000/06/22
@desc
Returns the driver's internal data for a given group
@enddesc
@calls CCTK_GroupTypeI
CCTK_FirstVarIndexI
@var GH
@vdesc Pointer to CCTK GH
@vtype const cGH *
@vio in
@endvar
@var group
@vdesc index of group
@vtype int
@vio in
@endvar
@var data
@vdesc Pointer to caller-supplied data structure to store group data
@vtype cGroupDynamicData *
@vio out
@endvar
@returntype int
@returndesc
0 for success <BR>
-1 if given pointer to data structure is NULL <BR>
-3 if given GH pointer is invalid
-77 if group has zero variables
@endreturndesc
@@*/
int PUGH_GroupDynamicData (const cGH *GH, int group, cGroupDynamicData *data)
{
int var;
pGH *pughGH;
pGExtras *extras;
int retval;
if (data)
{
/* Get the first variable in the group */
var = CCTK_FirstVarIndexI (group);
if (var<0)
{
retval = -77;
return retval;
}
pughGH = PUGH_pGH (GH);
if (pughGH)
{
extras = ((pGA ***) pughGH->variables)[var][0]->extras;
data->dim = extras->dim;
data->lsh = extras->lnsize;
data->ash = extras->lnsize;
data->gsh = extras->nsize;
data->lbnd = extras->lb[pughGH->myproc];
data->ubnd = extras->ub[pughGH->myproc];
data->nghostzones = extras->nghostzones;
data->bbox = extras->bbox;
data->activetimelevels
= PUGHi_NumTimeLevelsArray (pughGH, var, CCTK_MaxTimeLevelsGI (group));
retval = 0;
}
else
{
retval = -3;
}
}
else
{
retval = -1;
}
return (retval);
}
|