summaryrefslogtreecommitdiff
path: root/src/main/WarnLevel.c
diff options
context:
space:
mode:
authorallen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac>2001-02-24 14:30:11 +0000
committerallen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac>2001-02-24 14:30:11 +0000
commit9d229e556c2d00dd0fa862b9eeb8915918f0be83 (patch)
tree59a527832f60ee33a782a007ab8c37d8515e70c9 /src/main/WarnLevel.c
parent3a83eb41f3ad7f424969206a7ae38ad12f8e5da0 (diff)
Adding CCTK_ParameterLevel to get the current level of parameter checking.
Rearranging file contents git-svn-id: http://svn.cactuscode.org/flesh/trunk@2048 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'src/main/WarnLevel.c')
-rw-r--r--src/main/WarnLevel.c399
1 files changed, 236 insertions, 163 deletions
diff --git a/src/main/WarnLevel.c b/src/main/WarnLevel.c
index 9c2ec491..cdf6206b 100644
--- a/src/main/WarnLevel.c
+++ b/src/main/WarnLevel.c
@@ -46,6 +46,11 @@ int CactusDefaultMyProc(void *GH);
********************* Local Data *****************************
********************************************************************/
+/* Store the parameter checking level */
+
+static int parameter_level = CCTK_PARAMETER_NORMAL;
+
+
/* Store the number of parameter errors */
static int param_errors = 0;
@@ -74,16 +79,12 @@ static pKeyedData *formatlist = NULL;
********************* External Routines **********************
********************************************************************/
-/********************************************************************
- ********************* Local Routines *************************
- ********************************************************************/
-
- /*@@
- @routine CCTKi_SetWarnLevel
- @date Wed Feb 17 00:42:16 1999
+/*@@
+ @routine CCTK_Warn
+ @date Wed Feb 17 00:45:07 1999
@author Tom Goodale
@desc
- Sets the warning level
+ Warn the user of something if the warning level is suitable.
@enddesc
@calls
@calledby
@@ -91,66 +92,96 @@ static pKeyedData *formatlist = NULL;
@endhistory
@var level
- @vdesc level to set
+ @vdesc The warning level
+ @vtype int
+ @vio in
+ @vcomment
+
+ @endvar
+ @var line
+ @vdesc Line number of warning in originating file
@vtype int
@vio in
@vcomment
@endvar
+ @var file
+ @vdesc Name of originating file
+ @vtype const char *
+ @vio in
+ @vcomment
+
+ @endvar
+ @var thorn
+ @vdesc Name of originating thorn
+ @vtype const char *
+ @vio in
+ @vcomment
+
+ @endvar
+ @var message
+ @vdesc Warning message
+ @vtype const char *
+ @vio in
+ @vcomment
+
+ @endvar
@returntype int
@returndesc
- 1 - increased warning level
- 0 - warning level unchanged
- -1 - decreased warning level
+ 0 - success
@endreturndesc
@@*/
-int CCTKi_SetWarnLevel(int level)
+int CCTK_Warn(int level, int line, const char *file, const char *thorn, const char *message)
{
- int retval;
- int old_level;
- char warning_message[1001];
-
- old_level = warning_level;
-
- warning_level = level;
+ int param_type;
+ int cctk_full_warnings;
- if(level > old_level)
- {
- sprintf(warning_message, "Increasing warning level from %d to %d\n", old_level, level);
- CCTK_Warn(1, __LINE__,__FILE__,"Cactus",warning_message);
- retval = 1;
- }
- else if(level == old_level)
- {
- sprintf(warning_message, "Warning level is already %d\n", level);
- CCTK_Warn(1, __LINE__,__FILE__,"Cactus",warning_message);
- retval = 0;
- }
- else
+ if(level <= warning_level)
{
- sprintf(warning_message, "Decreasing warning level from %d to %d\n", old_level, level);
- CCTK_Warn(1,__LINE__,__FILE__,"Cactus", warning_message);
- retval = -1;
+ cctk_full_warnings = *((CCTK_INT *)CCTK_ParameterGet("cctk_full_warnings","Cactus",&param_type));
+
+ if (cctk_full_warnings)
+ {
+ fprintf(stderr, "WARNING level %d in thorn %s \n (line %d of %s): \n",
+ level, thorn, line, file);
+ fprintf(stderr, " -> %s\n",message);
+ fflush(stderr);
+ }
+ else
+ {
+ fprintf(stderr, "WARNING[%d] (%s): %s\n", level, thorn, message);
+ fflush(stderr);
+ }
}
- /* FIXME Is this right? Gab. */
- if(warning_level < error_level)
+ if(level <= error_level)
{
- error_level = warning_level;
- sprintf(warning_message, "Decreasing error level to warning_level\n");
- CCTK_Warn(2, __LINE__,__FILE__,"Cactus",warning_message);
+ CCTK_Abort(NULL,0);
}
- return retval;
+ return 0;
+
+}
+
+void CCTK_FCALL CCTK_FNAME(CCTK_Warn)
+ (int *level, int *line, THREE_FORTSTRINGS_ARGS)
+{
+ THREE_FORTSTRINGS_CREATE(file,thorn,message)
+
+ CCTK_Warn(*level,*line,file,thorn,message);
+ free(thorn);
+ free(message);
+ free(file);
}
+
/*@@
- @routine CCTK_Warn
- @date Wed Feb 17 00:45:07 1999
+ @routine CCTK_VWarn
+ @date Sun Nov 14 00:23:29 1999
@author Tom Goodale
@desc
- Warn the user of something if the warning level is suitable.
+ Warning routine with variable argument list
@enddesc
@calls
@calledby
@@ -185,60 +216,205 @@ int CCTKi_SetWarnLevel(int level)
@vcomment
@endvar
- @var message
- @vdesc Warning message
+ @var format
+ @vdesc Format string for following arguments
@vtype const char *
@vio in
@vcomment
@endvar
+ @var ...
+ @vdesc arguments for format string
+ @vtype multiple arguments
+ @vio in
+ @vcomment
+
+ @endvar
@returntype int
@returndesc
0 - success
@endreturndesc
@@*/
-int CCTK_Warn(int level, int line, const char *file, const char *thorn, const char *message)
+
+int CCTK_VWarn(int level, int line, const char *file, const char *thorn, const char *format, ...)
{
- int param_type;
int cctk_full_warnings;
+ int param_type;
+
+ va_list ap;
if(level <= warning_level)
{
+
+ va_start(ap, format);
+
cctk_full_warnings = *((CCTK_INT *)CCTK_ParameterGet("cctk_full_warnings","Cactus",&param_type));
if (cctk_full_warnings)
{
fprintf(stderr, "WARNING level %d in thorn %s \n (line %d of %s): \n",
level, thorn, line, file);
- fprintf(stderr, " -> %s\n",message);
- fflush(stderr);
+ fprintf(stderr, " -> ");
+ vfprintf(stderr, format, ap);
+ fprintf(stderr, "\n");
+ fflush(stderr);
}
else
{
- fprintf(stderr, "WARNING (%s): %s\n", thorn, message);
+ fprintf(stderr, "WARNING[%d] (%s): ", level, thorn);
+ vfprintf(stderr, format, ap);
+ fprintf(stderr, "\n");
fflush(stderr);
}
+
+ va_end(ap);
}
if(level <= error_level)
{
- CCTK_Abort(NULL,0);
+ CCTK_Abort(NULL,0);
}
return 0;
+}
+
+ /*@@
+ @routine CCTK_ParameterLevel
+ @date Wed Feb 21 2001
+ @author Gabrielle Allen
+ @desc
+ Returns the parameter checking level
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+
+ @endvar
+ @returntype int
+ @returndesc
+ parameter checking level now being used
+ @endreturndesc
+@@*/
+int CCTK_ParameterLevel()
+{
+ return parameter_level;
}
-void CCTK_FCALL CCTK_FNAME(CCTK_Warn)
- (int *level, int *line, THREE_FORTSTRINGS_ARGS)
+/********************************************************************
+ ********************* Local Routines *************************
+ ********************************************************************/
+
+ /*@@
+ @routine CCTKi_SetParameterLevel
+ @date Wed Feb 21 2001
+ @author Gabrielle Allen
+ @desc
+ Sets the parameter checking level
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+ @var level
+ @vdesc level to set
+ @vtype int
+ @vio in
+ @vcomment
+
+ @endvar
+
+ @returntype int
+ @returndesc
+ parameter checking level now being used
+ @endreturndesc
+@@*/
+int CCTKi_SetParameterLevel(int level)
{
- THREE_FORTSTRINGS_CREATE(file,thorn,message)
+ if (level == CCTK_PARAMETER_STRICT || level == CCTK_PARAMETER_NORMAL
+ || level == CCTK_PARAMETER_RELAXED)
+ {
+ parameter_level = level;
+ }
+ else
+ {
+ CCTK_VWarn(1,__LINE__,__FILE__,"Cactus","CCTKi_SetParameterLevel: "
+ "Parameter checking level %d not recognised, level unchanged",
+ level);
+ }
- CCTK_Warn(*level,*line,file,thorn,message);
- free(thorn);
- free(message);
- free(file);
+ return parameter_level;
+}
+
+ /*@@
+ @routine CCTKi_SetWarnLevel
+ @date Wed Feb 17 00:42:16 1999
+ @author Tom Goodale
+ @desc
+ Sets the warning level
+ @enddesc
+ @calls
+ @calledby
+ @history
+
+ @endhistory
+ @var level
+ @vdesc level to set
+ @vtype int
+ @vio in
+ @vcomment
+
+ @endvar
+
+ @returntype int
+ @returndesc
+ 1 - increased warning level
+ 0 - warning level unchanged
+ -1 - decreased warning level
+ @endreturndesc
+@@*/
+int CCTKi_SetWarnLevel(int level)
+{
+ int retval;
+ int old_level;
+ char warning_message[1001];
+
+ old_level = warning_level;
+
+ warning_level = level;
+
+ if(level > old_level)
+ {
+ sprintf(warning_message, "Increasing warning level from %d to %d\n", old_level, level);
+ CCTK_Warn(1, __LINE__,__FILE__,"Cactus",warning_message);
+ retval = 1;
+ }
+ else if(level == old_level)
+ {
+ sprintf(warning_message, "Warning level is already %d\n", level);
+ CCTK_Warn(1, __LINE__,__FILE__,"Cactus",warning_message);
+ retval = 0;
+ }
+ else
+ {
+ sprintf(warning_message, "Decreasing warning level from %d to %d\n", old_level, level);
+ CCTK_Warn(1,__LINE__,__FILE__,"Cactus", warning_message);
+ retval = -1;
+ }
+
+ /* FIXME Is this right? Gab. */
+ if(warning_level < error_level)
+ {
+ error_level = warning_level;
+ sprintf(warning_message, "Decreasing error level to warning_level\n");
+ CCTK_Warn(2, __LINE__,__FILE__,"Cactus",warning_message);
+ }
+
+ return retval;
}
@@ -420,109 +596,6 @@ void CCTK_FCALL CCTK_FNAME(CCTKi_ExpectOK)
}
-/*@@
- @routine CCTK_VWarn
- @date Sun Nov 14 00:23:29 1999
- @author Tom Goodale
- @desc
- Warning routine with variable argument list
- @enddesc
- @calls
- @calledby
- @history
-
- @endhistory
- @var level
- @vdesc The warning level
- @vtype int
- @vio in
- @vcomment
-
- @endvar
- @var line
- @vdesc Line number of warning in originating file
- @vtype int
- @vio in
- @vcomment
-
- @endvar
- @var file
- @vdesc Name of originating file
- @vtype const char *
- @vio in
- @vcomment
-
- @endvar
- @var thorn
- @vdesc Name of originating thorn
- @vtype const char *
- @vio in
- @vcomment
-
- @endvar
- @var format
- @vdesc Format string for following arguments
- @vtype const char *
- @vio in
- @vcomment
-
- @endvar
- @var ...
- @vdesc arguments for format string
- @vtype multiple arguments
- @vio in
- @vcomment
-
- @endvar
-
- @returntype int
- @returndesc
- 0 - success
- @endreturndesc
-@@*/
-
-int CCTK_VWarn(int level, int line, const char *file, const char *thorn, const char *format, ...)
-{
- int cctk_full_warnings;
- int param_type;
-
- va_list ap;
-
- if(level <= warning_level)
- {
-
- va_start(ap, format);
-
- cctk_full_warnings = *((CCTK_INT *)CCTK_ParameterGet("cctk_full_warnings","Cactus",&param_type));
-
- if (cctk_full_warnings)
- {
- fprintf(stderr, "WARNING level %d in thorn %s \n (line %d of %s): \n",
- level, thorn, line, file);
- fprintf(stderr, " -> ");
- vfprintf(stderr, format, ap);
- fprintf(stderr, "\n");
- fflush(stderr);
- }
- else
- {
- fprintf(stderr, "WARNING (%s): ", thorn);
- vfprintf(stderr, format, ap);
- fprintf(stderr, "\n");
- fflush(stderr);
- }
-
- va_end(ap);
- }
-
- if(level <= error_level)
- {
- CCTK_Abort(NULL,0);
- }
-
- return 0;
-}
-
/*@@
@routine CCTK_ParamWarn