#include <sys/times.h>
#include <sys/types.h>
#include <sys/resource.h>
  
double mytime(void) {

     struct rusage resources;
     int who = RUSAGE_SELF;   

     int ierr;       
/*     int i;*/

     double utime;   
     double stime;   

     ierr = getrusage (who, &resources);

/* -------------------------------------- */
/* In case of error, return garbage value */
/* -------------------------------------- */

     if (ierr != 0) 
      {
         utime = -1.0;
         stime = -1.0;
         return (utime + stime);
      }

/* ------------------------------------------------ */
/* Otherwise, unpack structure for return of values */
/* ------------------------------------------------ */

      utime = (double) (resources.ru_utime.tv_sec*1000000) +
     (double) resources.ru_utime.tv_usec;

      stime = (double) (resources.ru_stime.tv_sec*1000000) +
     (double) resources.ru_stime.tv_usec;

      return (utime + stime);
}