diff options
author | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2001-02-24 14:30:11 +0000 |
---|---|---|
committer | allen <allen@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2001-02-24 14:30:11 +0000 |
commit | 9d229e556c2d00dd0fa862b9eeb8915918f0be83 (patch) | |
tree | 59a527832f60ee33a782a007ab8c37d8515e70c9 /src/main/WarnLevel.c | |
parent | 3a83eb41f3ad7f424969206a7ae38ad12f8e5da0 (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.c | 399 |
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",¶m_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",¶m_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",¶m_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 |