diff options
author | pollney <pollney@a491c6a4-70bf-4b89-8b36-d6c0cb1f094e> | 2002-12-11 15:20:07 +0000 |
---|---|---|
committer | pollney <pollney@a491c6a4-70bf-4b89-8b36-d6c0cb1f094e> | 2002-12-11 15:20:07 +0000 |
commit | 07bb3085a50ffcc9b6f9e605781eb54d27d310ca (patch) | |
tree | 32fa0b466d4af69405336a72afc9afae1b49d1b1 | |
parent | 66fe3398c860c4ee61ecbe3074f01a2b80005937 (diff) |
Switch mask to CCTK_INT rather than CCTK_INT8, as some fortran compilers
have problems with the latter.
git-svn-id: http://svn.cactuscode.org/arrangements/CactusNumerical/SpaceMask/trunk@19 a491c6a4-70bf-4b89-8b36-d6c0cb1f094e
-rw-r--r-- | doc/documentation.tex | 40 | ||||
-rw-r--r-- | interface.ccl | 2 | ||||
-rw-r--r-- | src/MaskUtils.c | 58 | ||||
-rw-r--r-- | src/SpaceMask.h | 12 |
4 files changed, 57 insertions, 55 deletions
diff --git a/doc/documentation.tex b/doc/documentation.tex index df64445..dc34f34 100644 --- a/doc/documentation.tex +++ b/doc/documentation.tex @@ -28,10 +28,12 @@ for quickly setting and checking the mask states. The mask is a grid function which can be used to assign a state to each point on the grid. It is used as a bit field, with different bits, or combinations of bits, assigned to represent various states. -The mask is currently implemented as a CCTK\_INT8 grid function, -providing 64 bits per point. Appropriate numbers of bits within -the mask can be allocated to represent individual states of -a given type. +The mask is currently implemented as a CCTK\_INT grid function, +providing 32 bits per point.\footnote{The original implementation of +these functions used a CCTK\_INT8 for 64 bits, however this data type +is not supported by some Fortran compilers.} Appropriate numbers of +bits within the mask can be allocated to represent individual states +of a given type. For instance, a programmer wants to record whether each point of the grid has \emph{state} ``interior'', ``excised'' or ``boundary''. The @@ -115,7 +117,7 @@ The state of the mask at a given point is set using the function: \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ -void SpaceMask\_SetState(CCTK\_INT8* \emph{mask}, int \emph{point}, +void SpaceMask\_SetState(CCTK\_INT* \emph{mask}, int \emph{point}, char* \emph{type\_name}, char* \emph{state}) } \hspace*{10mm}\parbox{\linewidth}{ @@ -132,7 +134,7 @@ The state of the mask at a given point can be checked using: \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ -int SpaceMask\_CheckState(CCTK\_INT8* \emph{mask}, int \emph{point}, +int SpaceMask\_CheckState(CCTK\_INT* \emph{mask}, int \emph{point}, char* \emph{type\_name}, char* \emph{state}) } \hspace*{10mm}\parbox{\linewidth}{ @@ -159,7 +161,7 @@ states need to be obtained using the following functions: \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ -CCTK\_INT8 SpaceMask\_GetTypeBits(char* \emph{type\_name}) +CCTK\_INT SpaceMask\_GetTypeBits(char* \emph{type\_name}) }\\ \hspace*{10mm}\parbox{\linewidth}{ \begin{description} @@ -170,7 +172,7 @@ CCTK\_INT8 SpaceMask\_GetTypeBits(char* \emph{type\_name}) \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ -CCTK\_INT8 SpaceMask\_GetStateBits(char* \emph{type\_name}, +CCTK\_INT SpaceMask\_GetStateBits(char* \emph{type\_name}, char* \emph{state\_name}) } \hspace*{10mm}\parbox{\linewidth}{ @@ -192,8 +194,8 @@ of the mask by direct bitwise operations: \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ -void SpaceMask\_SetStateBits(CCTK\_INT8* \emph{mask}, int \emph{point}, - CCTK\_INT8 \emph{type\_bits},\\\hspace*{10mm} CCTK\_INT8 \emph{state\_bits}) +void SpaceMask\_SetStateBits(CCTK\_INT* \emph{mask}, int \emph{point}, + CCTK\_INT \emph{type\_bits},\\\hspace*{10mm} CCTK\_INT \emph{state\_bits}) }\\ \hspace*{10mm}\parbox{\linewidth}{ \begin{description} @@ -209,8 +211,8 @@ void SpaceMask\_SetStateBits(CCTK\_INT8* \emph{mask}, int \emph{point}, \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ -int SpaceMask\_CheckStateBits(CCTK\_INT8* \emph{mask}, int \emph{point}, - CCTK\_INT8 \emph{type\_bits},\\\hspace*{10mm} CCTK\_INT8 \emph{state\_bits}) +int SpaceMask\_CheckStateBits(CCTK\_INT* \emph{mask}, int \emph{point}, + CCTK\_INT \emph{type\_bits},\\\hspace*{10mm} CCTK\_INT \emph{state\_bits}) }\\ \hspace*{10mm}\parbox{\linewidth}{ \begin{description} @@ -249,7 +251,7 @@ The mask states can be manipulated using the following functions: \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ - SpaceMask\_SetState(CCTK\_INT8 \emph{mask(,,)}, int \emph{point}, + SpaceMask\_SetState(CCTK\_INT \emph{mask(,,)}, int \emph{point}, character \emph{type\_name},\\\hspace*{10mm} character \emph{state\_name}) }\\ \hspace*{10mm}\parbox{\linewidth}{ @@ -268,7 +270,7 @@ the specified state at the point. \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ - SpaceMask\_CheckState(CCTK\_INT \emph{check}, CCTK\_INT8 \emph{mask(,,)}, + SpaceMask\_CheckState(CCTK\_INT \emph{check}, CCTK\_INT \emph{mask(,,)}, int \emph{point},\\\hspace*{10mm} character \emph{type\_name}, character \emph{state\_name}) }\\ @@ -294,7 +296,7 @@ in question must first be obtained using the following functions: \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ - SpaceMask\_GetTypeBits(CCTK\_INT8 \emph{type\_bits}, + SpaceMask\_GetTypeBits(CCTK\_INT \emph{type\_bits}, character \emph{type\_name}) } \hspace*{10mm}\parbox{\linewidth}{ @@ -307,7 +309,7 @@ in question must first be obtained using the following functions: \indent\parbox{\linewidth}{ \vspace{\baselineskip}\noindent\texttt{ - SpaceMask\_GetStateBits(CCTK\_INT8 \emph{state\_bits}, + SpaceMask\_GetStateBits(CCTK\_INT \emph{state\_bits}, character \emph{type\_name},\\\hspace*{10mm} character \emph{state\_name}) }\\ \hspace*{10mm}\parbox{\linewidth}{ @@ -425,8 +427,8 @@ void Eg_CheckMaskStates (CCTK_ARGUMENTS) int i, j, k, ijk; - CCTK_INT8 excision_mask; - CCTK_INT8 boundary_mask; + CCTK_INT excision_mask; + CCTK_INT boundary_mask; excision_mask = SpaceMask_GetTypeBits("excision"); boundary_mask = SpaceMask_GetStateBits("boundary"); @@ -505,7 +507,7 @@ subroutine Eg_SetExcisedRegionByBitmask(CCTK_ARGUMENTS) integer ni, nj, nk integer i, j, k, ijk - CCTK_INT8 type_bits, excised + CCTK_INT type_bits, excised ni = cctk_lsh(1) nj = cctk_lsh(2) diff --git a/interface.ccl b/interface.ccl index 70433bd..68d00da 100644 --- a/interface.ccl +++ b/interface.ccl @@ -8,7 +8,7 @@ USES INCLUDE: Symmetry.h public: -CCTK_INT8 space_mask_group type=GF +CCTK_INT space_mask_group type=GF { space_mask } diff --git a/src/MaskUtils.c b/src/MaskUtils.c index f8c5a75..5815eee 100644 --- a/src/MaskUtils.c +++ b/src/MaskUtils.c @@ -57,11 +57,11 @@ SpaceMask_get_bit_nbr(int nstates) @enddesc @@*/ -CCTK_INT8 +CCTK_INT SpaceMask_get_free_bits(int nbits) { - CCTK_INT8 used_bits; - CCTK_INT8 new_bits; + CCTK_INT used_bits; + CCTK_INT new_bits; int i; int j; int n; @@ -76,7 +76,7 @@ SpaceMask_get_free_bits(int nbits) n=1; new_bits = 0; j = 0; - for (i=0; i<sizeof(CCTK_INT8)*8 & j<nbits; ++i) + for (i=0; i<sizeof(CCTK_INT)*8 & j<nbits; ++i) { if (!(n & used_bits)) { @@ -105,17 +105,17 @@ SpaceMask_get_free_bits(int nbits) @enddesc @@*/ -CCTK_INT8* -SpaceMask_determine_state_mask(CCTK_INT8 allocated_bits, int nstates) +CCTK_INT* +SpaceMask_determine_state_mask(CCTK_INT allocated_bits, int nstates) { - CCTK_INT8* state_mask; + CCTK_INT* state_mask; int n; int bit; int i; int j; state_mask = - (CCTK_INT8*) malloc (nstates*sizeof(CCTK_INT8)); + (CCTK_INT*) malloc (nstates*sizeof(CCTK_INT)); for (j=0; j<nstates; ++j) state_mask[j] = 0; @@ -123,7 +123,7 @@ SpaceMask_determine_state_mask(CCTK_INT8 allocated_bits, int nstates) n=1; bit=1; - for (i=0; i<sizeof(CCTK_INT8)*8; ++i) + for (i=0; i<sizeof(CCTK_INT)*8; ++i) { if (n & allocated_bits) { @@ -151,7 +151,7 @@ SpaceMask_determine_state_mask(CCTK_INT8 allocated_bits, int nstates) @@*/ SpaceMask_State* -SpaceMask_setup_new_state(CCTK_INT8 state_mask, char* name) +SpaceMask_setup_new_state(CCTK_INT state_mask, char* name) { SpaceMask_State* new_state; @@ -175,9 +175,9 @@ SpaceMask_setup_new_state(CCTK_INT8 state_mask, char* name) @@*/ SpaceMask_Type* -SpaceMask_setup_new_type(CCTK_INT8 new_bits, char* type_name, +SpaceMask_setup_new_type(CCTK_INT new_bits, char* type_name, int nstates, char** state_list, - CCTK_INT8* state_mask) + CCTK_INT* state_mask) { SpaceMask_Type* new_type; int j; @@ -248,8 +248,8 @@ int SpaceMask_RegisterType(char* type_name, int nstates, char** state_list) { SpaceMask_Type* new_type; - CCTK_INT8 new_bits; - CCTK_INT8* state_mask; + CCTK_INT new_bits; + CCTK_INT* state_mask; int bit_nbr; bit_nbr = SpaceMask_get_bit_nbr(nstates); @@ -279,9 +279,9 @@ SpaceMask_RegisterType(char* type_name, int nstates, char** state_list) int SpaceMask_AppendStatesToType(char* type_name, int nstates, char** state_list) { - CCTK_INT8 new_bits; - CCTK_INT8 allocated_bits; - CCTK_INT8* state_mask; + CCTK_INT new_bits; + CCTK_INT allocated_bits; + CCTK_INT* state_mask; SpaceMask_Type* old_type; SpaceMask_Type* new_type; char** new_state_list; @@ -345,7 +345,7 @@ SpaceMask_AppendStatesToType(char* type_name, int nstates, char** state_list) @enddesc @@*/ -CCTK_INT8 +CCTK_INT SpaceMask_GetTypeBits(char* type_name) { int i; @@ -371,7 +371,7 @@ SpaceMask_GetTypeBits(char* type_name) @enddesc @@*/ -CCTK_INT8 +CCTK_INT SpaceMask_GetStateBits(char* type_name, char* state_name) { SpaceMask_Type* type; @@ -407,10 +407,10 @@ SpaceMask_GetStateBits(char* type_name, char* state_name) @@*/ void -SpaceMask_SetState(CCTK_INT8* mask, int point, char* type_name, char* state) +SpaceMask_SetState(CCTK_INT* mask, int point, char* type_name, char* state) { - CCTK_INT8 type_bits; - CCTK_INT8 state_bits; + CCTK_INT type_bits; + CCTK_INT state_bits; type_bits = SpaceMask_GetTypeBits(type_name); state_bits = SpaceMask_GetStateBits(type_name, state); @@ -429,10 +429,10 @@ SpaceMask_SetState(CCTK_INT8* mask, int point, char* type_name, char* state) @@*/ int -SpaceMask_CheckState(CCTK_INT8* mask, int point, char* type_name, char* state) +SpaceMask_CheckState(CCTK_INT* mask, int point, char* type_name, char* state) { - CCTK_INT8 type_bits; - CCTK_INT8 state_bits; + CCTK_INT type_bits; + CCTK_INT state_bits; type_bits = SpaceMask_GetTypeBits(type_name); state_bits = SpaceMask_GetStateBits(type_name, state); @@ -455,7 +455,7 @@ CCTK_FCALL CCTK_FNAME(SpaceMask_RegisterType)(int* ierr, char* type_name, */ void -CCTK_FCALL CCTK_FNAME(SpaceMask_GetTypeBits)(CCTK_INT8* type_bits, +CCTK_FCALL CCTK_FNAME(SpaceMask_GetTypeBits)(CCTK_INT* type_bits, ONE_FORTSTRING_ARG) { ONE_FORTSTRING_CREATE(type_name) @@ -466,7 +466,7 @@ CCTK_FCALL CCTK_FNAME(SpaceMask_GetTypeBits)(CCTK_INT8* type_bits, } void -CCTK_FCALL CCTK_FNAME(SpaceMask_GetStateBits)(CCTK_INT8* state_bits, +CCTK_FCALL CCTK_FNAME(SpaceMask_GetStateBits)(CCTK_INT* state_bits, TWO_FORTSTRING_ARG) { @@ -476,7 +476,7 @@ CCTK_FCALL CCTK_FNAME(SpaceMask_GetStateBits)(CCTK_INT8* state_bits, } void -CCTK_FCALL CCTK_FNAME(SpaceMask_SetState)(CCTK_INT8* mask, +CCTK_FCALL CCTK_FNAME(SpaceMask_SetState)(CCTK_INT* mask, CCTK_INT* point, TWO_FORTSTRING_ARG) { TWO_FORTSTRING_CREATE(type_name, state) @@ -486,7 +486,7 @@ CCTK_FCALL CCTK_FNAME(SpaceMask_SetState)(CCTK_INT8* mask, void CCTK_FCALL CCTK_FNAME(SpaceMask_CheckState)(int* retval, - CCTK_INT8* mask, + CCTK_INT* mask, CCTK_INT* point, TWO_FORTSTRING_ARG) { diff --git a/src/SpaceMask.h b/src/SpaceMask.h index bbcecdf..143574a 100644 --- a/src/SpaceMask.h +++ b/src/SpaceMask.h @@ -25,10 +25,10 @@ extern "C" int SpaceMask_RegisterType(char*, int, char**); int SpaceMask_AppendStatesToType(char*, int, char**); -void SpaceMask_SetState(CCTK_INT8*, int, char*, char*); -int SpaceMask_CheckState(CCTK_INT8*, int, char*, char*); -CCTK_INT8 SpaceMask_GetTypeBits(char*); -CCTK_INT8 SpaceMask_GetStateBits(char*, char*); +void SpaceMask_SetState(CCTK_INT*, int, char*, char*); +int SpaceMask_CheckState(CCTK_INT*, int, char*, char*); +CCTK_INT SpaceMask_GetTypeBits(char*); +CCTK_INT SpaceMask_GetStateBits(char*, char*); #ifdef __cplusplus } @@ -45,14 +45,14 @@ CCTK_INT8 SpaceMask_GetStateBits(char*, char*); typedef struct { char* name; - CCTK_INT8 bitmask; + CCTK_INT bitmask; } SpaceMask_State; typedef struct { char* name; int nstates; - CCTK_INT8 bitmask; + CCTK_INT bitmask; SpaceMask_State** state_list; } SpaceMask_Type; |