aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Interpolate.c23
-rw-r--r--src/Operator.c71
-rw-r--r--src/Startup.c86
-rw-r--r--src/pughInterpGH.h44
4 files changed, 111 insertions, 113 deletions
diff --git a/src/Interpolate.c b/src/Interpolate.c
index dc6bc5a..b387b19 100644
--- a/src/Interpolate.c
+++ b/src/Interpolate.c
@@ -18,13 +18,14 @@
@@*/
#include <stdlib.h>
+#include <string.h>
#include "cctk.h"
#include "cctk_Parameters.h"
#include "pughInterpGH.h"
/* the rcs ID and its dummy function to use it */
-static const char *rcsid = "$Id$";
+static const char *rcsid = "$Header$";
CCTK_FILEVERSION(CactusPUGH_PUGHInterp_Interpolate_c)
@@ -39,7 +40,7 @@ CCTK_FILEVERSION(CactusPUGH_PUGHInterp_Interpolate_c)
order, point, dims, n, coeff) \
{ \
int ii, jj, kk; \
- cctk_type *fi; \
+ const cctk_type *fi; \
/* for some reason (probably loop unrolling & pipelining) the compiler \
produces faster code if arrays are used instead of scalars */ \
cctk_subtype interp_result, fj[1], fk[1]; \
@@ -54,7 +55,7 @@ CCTK_FILEVERSION(CactusPUGH_PUGHInterp_Interpolate_c)
for (jj = 0; jj <= order; jj++) \
{ \
/* NOTE: for >3D arrays adapt the index calculation here */ \
- fi = (cctk_type *) in_array + \
+ fi = (const cctk_type *) in_array + \
point[0] + dims[0]*(point[1]+jj + dims[1]*(point[2]+kk)); \
fj[0] = 0; \
for (ii = 0; ii <= order; ii++) \
@@ -164,14 +165,14 @@ int PUGHInterp_Interpolate (int order,
int num_points,
int num_dims,
int num_arrays,
- int dims[ /* num_dims */ ],
- CCTK_REAL coord[ /* num_dims * num_points */ ],
- CCTK_REAL origin[ /* num_dims */ ],
- CCTK_REAL delta[ /* num_dims */ ],
- int in_types[ /* num_arrays */ ],
- void *in_arrays[ /* num_arrays */ ],
- int out_types[ /* num_arrays */ ],
- void *out_arrays[ /* num_arrays */ ])
+ const int dims[],
+ const CCTK_REAL coord[],
+ const CCTK_REAL origin[],
+ const CCTK_REAL delta[],
+ const int in_types[],
+ const void *const in_arrays[],
+ const int out_types[],
+ void *const out_arrays[])
{
int retval;
int i, a, n, out_of_bounds, shift;
diff --git a/src/Operator.c b/src/Operator.c
index 51da9dc..58e8c74 100644
--- a/src/Operator.c
+++ b/src/Operator.c
@@ -73,13 +73,13 @@ static int PUGHInterp_CheckArguments (cGH *GH,
int num_points,
int num_in_arrays,
int num_out_arrays,
- int interp_coord_array_types[]);
+ const int interp_coord_array_types[]);
#ifdef CCTK_MPI
static int GetLocalCoords (cGH *GH,
int num_points,
const char *coord_system,
- pGExtras *extras,
- CCTK_REAL *coords[],
+ const pGExtras *extras,
+ const CCTK_REAL *coords[],
int *num_local_points,
CCTK_REAL **local_coords);
#endif
@@ -134,7 +134,7 @@ static int GetLocalCoords (cGH *GH,
@endvar
@var interp_coord_arrays
@vdesc coordinates of points to interpolate at
- @vtype void *[num_dims]
+ @vtype void *const [num_dims]
@vio in
@endvar
@var interp_coord_array_types
@@ -154,7 +154,7 @@ static int GetLocalCoords (cGH *GH,
@endvar
@var out_arrays
@vdesc list of output arrays to interpolate to
- @vtype void *[num_out_arrays]
+ @vtype void *const [num_out_arrays]
@vio out
@endvar
@var out_array_types
@@ -175,13 +175,14 @@ int PUGHInterp_InterpGV (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
- CCTK_REAL **data, *interp_local_coords;
+ const CCTK_REAL **data;
+ CCTK_REAL *interp_local_coords;
CCTK_REAL *origin, *delta;
int nprocs;
int timelevel;
@@ -189,7 +190,7 @@ int PUGHInterp_InterpGV (cGH *GH,
int array;
int point;
int retval;
- void **in_arrays;
+ const void **in_arrays;
pGH *pughGH;
pGExtras *extras;
cGroupDynamicData group_data;
@@ -308,7 +309,7 @@ int PUGHInterp_InterpGV (cGH *GH,
/* sort the individual interpolation coordinate arrays into a single one */
interp_local_coords = (CCTK_REAL *) malloc (num_dims * num_points *
sizeof (CCTK_REAL));
- data = (CCTK_REAL **) interp_coord_arrays;
+ data = (const CCTK_REAL **) interp_coord_arrays;
for (point = 0; point < num_points; point++)
{
for (dim = 0; dim < num_dims; dim++)
@@ -426,7 +427,7 @@ int PUGHInterp_InterpGV (cGH *GH,
the number of processor-local points is returned in num_local_points,
their coordinates in interp_local_coords */
retval = GetLocalCoords (GH, num_points, coord_system, extras,
- (CCTK_REAL **) interp_coord_arrays,
+ (const CCTK_REAL **) interp_coord_arrays,
&num_local_points, &interp_local_coords);
if (retval)
{
@@ -737,7 +738,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var coord_arrays
@vdesc list of grid coordinate arrays
- @vtype void *[num_dims]
+ @vtype void *const [num_dims]
@vio in
@endvar
@var coord_array_types
@@ -747,7 +748,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var interp_coord_arrays
@vdesc coordinates of points to interpolate at
- @vtype void *[num_dims]
+ @vtype void *const [num_dims]
@vio in
@endvar
@var interp_coord_array_types
@@ -757,7 +758,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var in_arrays
@vdesc list of input arrays to interpolate on
- @vtype void *[num_in_arrays]
+ @vtype void *const [num_in_arrays]
@vio in
@endvar
@var in_array_types
@@ -767,7 +768,7 @@ int PUGHInterp_InterpGV (cGH *GH,
@endvar
@var out_arrays
@vdesc list of output arrays to interpolate to
- @vtype void *[num_out_arrays]
+ @vtype void *const [num_out_arrays]
@vio out
@endvar
@var out_array_types
@@ -788,21 +789,19 @@ int PUGHInterp_InterpLocal (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
int dim, point, retval;
CCTK_REAL *coords, *origin, *delta;
-/* FIXME: the volatile qualifier is just a workaround for compiler bug
- on the Hitachi SR8000 machine, without it optimized code will crash */
- volatile CCTK_REAL **data;
+ const CCTK_REAL *const *data;
/* check arguments */
@@ -830,7 +829,7 @@ int PUGHInterp_InterpLocal (cGH *GH,
/* get the grid spacings - this assumes a cartesian grid */
origin = (CCTK_REAL *) malloc (2 * num_dims * sizeof (CCTK_REAL));
delta = origin + num_dims;
- data = (volatile CCTK_REAL **) coord_arrays;
+ data = (const CCTK_REAL *const *) coord_arrays;
for (dim = 0; dim < num_dims; dim++)
{
origin[dim] = data[dim][0];
@@ -839,7 +838,7 @@ int PUGHInterp_InterpLocal (cGH *GH,
/* sort the individual interpolation coordinate arrays into a single one */
coords = (CCTK_REAL *) malloc (num_dims * num_points * sizeof (CCTK_REAL));
- data = (volatile CCTK_REAL **) interp_coord_arrays;
+ data = (const CCTK_REAL *const *) interp_coord_arrays;
for (point = 0; point < num_points; point++)
{
for (dim = 0; dim < num_dims; dim++)
@@ -897,7 +896,7 @@ int PUGHInterp_InterpLocal (cGH *GH,
@var GH
@vdesc Pointer to CCTK grid hierarchy
- @vtype cGH
+ @vtype cGH *
@vio in
@endvar
@var num_points
@@ -936,8 +935,8 @@ int PUGHInterp_InterpLocal (cGH *GH,
static int GetLocalCoords (cGH *GH,
int num_points,
const char *coord_system,
- pGExtras *extras,
- CCTK_REAL *coords[],
+ const pGExtras *extras,
+ const CCTK_REAL *coords[],
int *num_local_points,
CCTK_REAL **local_coords)
{
@@ -1259,7 +1258,7 @@ static int PUGHInterp_CheckArguments (cGH *GH,
int num_points,
int num_in_arrays,
int num_out_arrays,
- int interp_coord_array_types[])
+ const int interp_coord_array_types[])
{
int i;
diff --git a/src/Startup.c b/src/Startup.c
index d8eac29..f642715 100644
--- a/src/Startup.c
+++ b/src/Startup.c
@@ -5,8 +5,6 @@
@desc
Startup routines for PUGHInterp
@enddesc
- @history
- @endhistory
@version $Id$
@@*/
@@ -97,11 +95,11 @@ static int PUGHInterp_InterpGV_1stOrder (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpGV (GH, 1, coord_system, num_points,
num_in_array_indices, num_out_arrays,
@@ -115,11 +113,11 @@ static int PUGHInterp_InterpGV_2ndOrder (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpGV (GH, 2, coord_system, num_points,
num_in_array_indices, num_out_arrays,
@@ -133,11 +131,11 @@ static int PUGHInterp_InterpGV_3rdOrder (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[])
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpGV (GH, 3, coord_system, num_points,
num_in_array_indices, num_out_arrays,
@@ -151,15 +149,15 @@ static int PUGHInterp_InterpLocal_1stOrder (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpLocal (GH, 1, num_points, num_dims,
num_in_arrays, num_out_arrays,
@@ -175,15 +173,15 @@ static int PUGHInterp_InterpLocal_2ndOrder (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpLocal (GH, 2, num_points, num_dims,
num_in_arrays, num_out_arrays,
@@ -199,15 +197,15 @@ static int PUGHInterp_InterpLocal_3rdOrder (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[])
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[])
{
return (PUGHInterp_InterpLocal (GH, 3, num_points, num_dims,
num_in_arrays, num_out_arrays,
diff --git a/src/pughInterpGH.h b/src/pughInterpGH.h
index e6eef76..c9187ff 100644
--- a/src/pughInterpGH.h
+++ b/src/pughInterpGH.h
@@ -34,11 +34,11 @@ int PUGHInterp_InterpGV (cGH *GH,
int num_points,
int num_in_array_indices,
int num_out_arrays,
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- int in_array_indices[],
- void *out_arrays[],
- int out_array_types[]);
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const int in_array_indices[],
+ void *const out_arrays[],
+ const int out_array_types[]);
int PUGHInterp_InterpLocal (cGH *GH,
int order,
@@ -46,26 +46,26 @@ int PUGHInterp_InterpLocal (cGH *GH,
int num_dims,
int num_in_arrays,
int num_out_arrays,
- int coord_dims[],
- void *coord_arrays[],
- int coord_array_types[],
- void *interp_coord_arrays[],
- int interp_coord_array_types[],
- void *in_arrays[],
- int in_array_types[],
- void *out_arrays[],
- int out_array_types[]);
+ const int coord_dims[],
+ const void *const coord_arrays[],
+ const int coord_array_types[],
+ const void *const interp_coord_arrays[],
+ const int interp_coord_array_types[],
+ const void *const in_arrays[],
+ const int in_array_types[],
+ void *const out_arrays[],
+ const int out_array_types[]);
/* prototypes of routines used internally */
int PUGHInterp_Interpolate (int order,
int num_points,
int num_dims,
int num_arrays,
- int dims[ /* num_dims */ ],
- CCTK_REAL coord[ /* num_dims * num_points */ ],
- CCTK_REAL origin[ /* num_dims */ ],
- CCTK_REAL delta[ /* num_dims */ ],
- int in_types[ /* num_arrays */ ],
- void *in_arrays[ /* num_arrays */ ],
- int out_types[ /* num_arrays */ ],
- void *out_arrays[ /* num_arrays */ ]);
+ const int dims[ /* num_dims */ ],
+ const CCTK_REAL coord[ /* num_dims*num_points */ ],
+ const CCTK_REAL origin[ /* num_dims */ ],
+ const CCTK_REAL delta[ /* num_dims */ ],
+ const int in_types[ /* num_arrays */ ],
+ const void *const in_arrays[ /* num_arrays */ ],
+ const int out_types[ /* num_arrays */ ],
+ void *const out_arrays[ /* num_arrays */ ]);