xref: /phasta/phSolver/common/tmrc.c (revision 86f7e41893f9e72557b1c1024fcfc3627a7414e3)
159599516SKenneth E. Jansen #include <FCMangle.h>
259599516SKenneth E. Jansen #define TMRC FortranCInterface_GLOBAL_(tmrc, TMRC)
359599516SKenneth E. Jansen 
459599516SKenneth E. Jansen #include <stdio.h>
559599516SKenneth E. Jansen #include <sys/types.h>
659599516SKenneth E. Jansen #include <time.h>
759599516SKenneth E. Jansen 
859599516SKenneth E. Jansen #include <sys/time.h>
959599516SKenneth E. Jansen #include <sys/resource.h>
1059599516SKenneth E. Jansen #include <unistd.h>
1159599516SKenneth E. Jansen 
1259599516SKenneth E. Jansen #ifdef __bgq__
1359599516SKenneth E. Jansen #include "hwi/include/bqc/A2_inlines.h"
1459599516SKenneth E. Jansen #endif
1559599516SKenneth E. Jansen 
1659599516SKenneth E. Jansen double TMRC (void)
1759599516SKenneth E. Jansen {
1859599516SKenneth E. Jansen 
1959599516SKenneth E. Jansen #ifdef __bgq__
2059599516SKenneth E. Jansen 
21*86f7e418SCameron Smith    /* use the GetTimeBase function available on BGQ */
2259599516SKenneth E. Jansen    uint64_t TB  = GetTimeBase();
23*86f7e418SCameron Smith    double t1 = 6.25e-10*TB; /* = 1/1.6e9 */
2459599516SKenneth E. Jansen 
2559599516SKenneth E. Jansen #else
2659599516SKenneth E. Jansen 
27*86f7e418SCameron Smith   /* use the gettimeofday function available on any Linux platform */
2859599516SKenneth E. Jansen 
2959599516SKenneth E. Jansen   int rc;
3059599516SKenneth E. Jansen   struct timeval tv;
31*86f7e418SCameron Smith   double t1 = 0;
3259599516SKenneth E. Jansen 
3359599516SKenneth E. Jansen   rc = gettimeofday (&tv, NULL);
3459599516SKenneth E. Jansen   if (rc == -1) {
3559599516SKenneth E. Jansen     fprintf(stderr,"tmrc: gettimeofday\n");
3659599516SKenneth E. Jansen     return 0.;
3759599516SKenneth E. Jansen   }
38*86f7e418SCameron Smith   t1 =  ((double) tv.tv_sec) + 1.e-6 * ((double) tv.tv_usec);
3959599516SKenneth E. Jansen 
4059599516SKenneth E. Jansen #endif
4159599516SKenneth E. Jansen 
4259599516SKenneth E. Jansen   return t1;
4359599516SKenneth E. Jansen }
4459599516SKenneth E. Jansen 
4559599516SKenneth E. Jansen 
4659599516SKenneth E. Jansen 
4759599516SKenneth E. Jansen 
48