diff options
-rw-r--r-- | src/include/cctk_Groups.h | 13 | ||||
-rw-r--r-- | src/main/Groups.c | 174 |
2 files changed, 177 insertions, 10 deletions
diff --git a/src/include/cctk_Groups.h b/src/include/cctk_Groups.h index 4f2002ef..6def107c 100644 --- a/src/include/cctk_Groups.h +++ b/src/include/cctk_Groups.h @@ -65,9 +65,20 @@ const char *CCTK_ImpFromVarI(int var); int CCTK_MaxDim(void); int CCTK_NumGroups(void); -int CCTK_NumTimeLevels(const char *group); + +/* DEPRECATED BETA 13 */ int CCTK_NumTimeLevelsFromVar(const char *var); int CCTK_NumTimeLevelsFromVarI(int var); +int CCTK_NumTimeLevels(const char *group); +int CCTK_NumTimeLevelsI(int group); + +int CCTK_MaxTimeLevels(const char *group); +int CCTK_MaxTimeLevelsVN(const char *var); +int CCTK_MaxTimeLevelsVI(int var); +int CCTK_MaxTimeLevelsGN(const char *group); +int CCTK_MaxTimeLevelsGI(int group); + + int CCTK_NumVars(void); int CCTK_NumVarsInGroup(const char *group); int CCTK_NumVarsInGroupI(int group); diff --git a/src/main/Groups.c b/src/main/Groups.c index 1b2dd2f9..86daebac 100644 --- a/src/main/Groups.c +++ b/src/main/Groups.c @@ -73,14 +73,6 @@ void CCTK_FCALL CCTK_FNAME (CCTK_NumVarsInGroup) (int *num, ONE_FORTSTRING_ARG); void CCTK_FCALL CCTK_FNAME (CCTK_VarTypeI) (int *type, const int *var); -void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsFromVarI) - (int *num, const int *var); -void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsFromVar) - (int *num, ONE_FORTSTRING_ARG); -void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsI) - (int *num, const int *var); -void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevels) - (int *num, ONE_FORTSTRING_ARG); void CCTK_FCALL CCTK_FNAME (CCTK_PrintGroup) (const int *group); void CCTK_FCALL CCTK_FNAME (CCTK_PrintVar) @@ -89,6 +81,26 @@ void CCTK_FCALL CCTK_FNAME (CCTK_GroupDimI) (int *dim, const int *group); void CCTK_FCALL CCTK_FNAME (CCTK_GroupDimFromVarI) (int *dim, const int *vi); +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsVI) + (int *num, const int *var); +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsVN) + (int *num, ONE_FORTSTRING_ARG); +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsGI) + (int *num, const int *group); +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsGN) + (int *num, ONE_FORTSTRING_ARG); +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevels) + (int *num, ONE_FORTSTRING_ARG); + +/* DEPRECATED IN BETA 13 */ +void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsFromVarI) + (int *num, const int *var); +void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsFromVar) + (int *num, ONE_FORTSTRING_ARG); +void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsI) + (int *num, const int *var); +void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevels) + (int *num, ONE_FORTSTRING_ARG); /* prototype for CCTKi_VarDataPtr() doesn't appear in a header file because it is only used in the variable bindings (see grdoc for CCTKi_VarDataPtr()) */ @@ -1362,11 +1374,147 @@ void CCTK_FCALL CCTK_FNAME (CCTK_VarTypeI) /*@@ + @routine CCTK_MaxTimeLevelsGI + @date July 16 2003 + @author Gabrielle Allen + @desc + Given a group index return the maximum number of timelevels + @enddesc + + @returntype int + @returndesc + the number of timelevels of variables in the group, or + -1 if given group index is invalid + @endreturndesc +@@*/ +int CCTK_MaxTimeLevelsGI (int group) +{ + return ((0 <= group && group < n_groups) ? + groups[group].n_timelevels : -1); +} + +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsGI) + (int *num, const int *group) +{ + *num = CCTK_MaxTimeLevelsGI (*group); +} + + + /*@@ + @routine CCTK_MaxTimeLevelsVI + @date 3 July 1999 + @author Gabrielle Allen + @desc + Given a variable index return the maximum number of timelevels + @enddesc + + @returntype int + @returndesc + the number of timelevels of the given variable, or + -1 if given variable index is invalid + @endreturndesc +@@*/ +int CCTK_MaxTimeLevelsVI (int var) +{ + return ((0 <= var && var < total_variables) ? + groups[group_of_variable[var]].n_timelevels : -1); +} + +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsVI) + (int *num, const int *var) +{ + *num = CCTK_MaxTimeLevelsVI (*var); +} + + + /*@@ + @routine CCTK_MaxTimeLevels + @date 8 June 2003 + @author Gabrielle Allen + @desc + Given a group name return the maximum number of timelevels + @enddesc + + @returntype int + @returndesc + return code of @seeroutine CCTK_MaxTimeLevelsI + @endreturndesc +@@*/ +int CCTK_MaxTimeLevels (const char *group) +{ + return CCTK_MaxTimeLevelsGI (CCTK_GroupIndex (group)); +} + +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevels) + (int *num, ONE_FORTSTRING_ARG) +{ + ONE_FORTSTRING_CREATE (group) + *num = CCTK_MaxTimeLevels (group); + free (group); +} + + /*@@ + @routine CCTK_MaxTimeLevelsGN + @date 8 June 2003 + @author Gabrielle Allen + @desc + Given a group name return the number of timelevels + @enddesc + + @returntype int + @returndesc + return code of @seeroutine CCTK_MaxTimeLevelsGI + @endreturndesc +@@*/ +int CCTK_MaxTimeLevelsGN (const char *group) +{ + return CCTK_MaxTimeLevelsGI (CCTK_GroupIndex (group)); +} + +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsGN) + (int *num, ONE_FORTSTRING_ARG) +{ + ONE_FORTSTRING_CREATE (group) + *num = CCTK_MaxTimeLevelsGN (group); + free (group); +} + + /*@@ + @routine CCTK_MaxTimeLevelsVN + @date 3 July 1999 + @author Gabrielle Allen + @desc + Given a variable name return the maximum number of timelevels + @enddesc + + @returntype int + @returndesc + return code of @seeroutine CCTK_MaxTimeLevelsVI + @endreturndesc +@@*/ +int CCTK_MaxTimeLevelsVN (const char *var) +{ + return CCTK_MaxTimeLevelsVI (CCTK_VarIndex (var)); +} + +void CCTK_FCALL CCTK_FNAME (CCTK_MaxTimeLevelsVN) + (int *num, ONE_FORTSTRING_ARG) +{ + ONE_FORTSTRING_CREATE (var) + *num = CCTK_MaxTimeLevelsVN (var); + free (var); +} + + + + + /*@@ @routine CCTK_NumTimeLevelsI @date 3 July 1999 @author Gabrielle Allen @desc - Given a group index return the number of timelevels + DEPRECATED BETA 13 + Given a group index return the number of timelevels @enddesc @returntype int @@ -1393,6 +1541,7 @@ void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsI) @date 3 July 1999 @author Gabrielle Allen @desc + DEPRECATED BETA 13 Given a variable index return the number of timelevels @enddesc @@ -1420,6 +1569,7 @@ void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsFromVarI) @date 8 June 2003 @author Gabrielle Allen @desc + DEPRECATED BETA 13 Given a group name return the number of timelevels @enddesc @@ -1446,6 +1596,7 @@ void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevels) @date 3 July 1999 @author Gabrielle Allen @desc + DEPRECATED BETA 13 Given a variable name return the number of timelevels @enddesc @@ -1468,6 +1619,11 @@ void CCTK_FCALL CCTK_FNAME (CCTK_NumTimeLevelsFromVar) } + + + + + /*@@ @routine CCTK_PrintGroup @date 3 July 1999 |