Skip to content
Snippets Groups Projects
verbosepkg.c 1.54 KiB
#include <stdio.h>
#include <stdarg.h>
#include "par.h"
#include <string.h>
#ifdef _CRAYMPP
#include <intrinsics.h>
#endif

/**
*  functions to print out verbose, error and warning messages to stderr.
*
*   AUTHOR:
*           Jan Thorbecke (janth@xs4all.nl)
*           The Netherlands 
**/


void verr(char *fmt, ...)
{
	va_list args;

	if (EOF == fflush(stderr)) {
		fprintf(stderr, "\nverr: fflush failed on stderr");
	}
	fprintf(stderr, "    Error in %s: ", xargv[0]);
#ifdef _CRAYMPP
        fprintf(stderr, "PE %d: ", _my_pe());
#elif defined(SGI)
        fprintf(stderr, "PE %d: ", mp_my_threadnum());
#endif
	va_start(args,fmt);
	vfprintf(stderr, fmt, args);
	va_end(args);
	fprintf(stderr, "\n");

	exit(EXIT_FAILURE);
}

void vwarn(char *fmt, ...)
{
	va_list args;

	if (EOF == fflush(stderr)) {
		fprintf(stderr, "\nvwarn: fflush failed on stderr");
	}
	fprintf(stderr, "    Warning in %s: ", xargv[0]);
#ifdef _CRAYMPP
        fprintf(stderr, "PE %d: ", _my_pe());
#elif defined(SGI)
        fprintf(stderr, "PE %d: ", mp_my_threadnum());
#endif
	va_start(args,fmt);
	vfprintf(stderr, fmt, args);
	va_end(args);
	fprintf(stderr, "\n");
	return;
}

void vmess(char *fmt, ...)
{
	va_list args;

	if (EOF == fflush(stderr)) {
		fprintf(stderr, "\nvmess: fflush failed on stderr");
	}
	fprintf(stderr, "    %s: ", xargv[0]);
#ifdef _CRAYMPP
        fprintf(stderr, "PE %d: ", _my_pe());
#elif defined(SGI)
        fprintf(stderr, "PE %d: ", mp_my_threadnum());
#endif
	va_start(args,fmt);
	vfprintf(stderr, fmt, args);
	va_end(args);
	fprintf(stderr, "\n");
	return;
}