1*59599516SKenneth E. Jansen #include <FCMangle.h> 2*59599516SKenneth E. Jansen #define TMRC FortranCInterface_GLOBAL_(tmrc, TMRC) 3*59599516SKenneth E. Jansen 4*59599516SKenneth E. Jansen #include <stdio.h> 5*59599516SKenneth E. Jansen #include <sys/types.h> 6*59599516SKenneth E. Jansen #include <time.h> 7*59599516SKenneth E. Jansen 8*59599516SKenneth E. Jansen #include <sys/time.h> 9*59599516SKenneth E. Jansen #include <sys/resource.h> 10*59599516SKenneth E. Jansen #include <unistd.h> 11*59599516SKenneth E. Jansen 12*59599516SKenneth E. Jansen #ifdef __bgq__ 13*59599516SKenneth E. Jansen #include "hwi/include/bqc/A2_inlines.h" 14*59599516SKenneth E. Jansen #endif 15*59599516SKenneth E. Jansen TMRC(void)16*59599516SKenneth E. Jansendouble TMRC (void) 17*59599516SKenneth E. Jansen { 18*59599516SKenneth E. Jansen 19*59599516SKenneth E. Jansen #ifdef __bgq__ 20*59599516SKenneth E. Jansen 21*59599516SKenneth E. Jansen // use the GetTimeBase function available on BGQ 22*59599516SKenneth E. Jansen uint64_t TB = GetTimeBase(); 23*59599516SKenneth E. Jansen double t1 = 6.25e-10*TB; // = 1/1.6e9 24*59599516SKenneth E. Jansen 25*59599516SKenneth E. Jansen #else 26*59599516SKenneth E. Jansen 27*59599516SKenneth E. Jansen // use the gettimeofday function available on any Linux plateform 28*59599516SKenneth E. Jansen 29*59599516SKenneth E. Jansen int rc; 30*59599516SKenneth E. Jansen struct timeval tv; 31*59599516SKenneth E. Jansen 32*59599516SKenneth E. Jansen rc = gettimeofday (&tv, NULL); 33*59599516SKenneth E. Jansen if (rc == -1) { 34*59599516SKenneth E. Jansen fprintf(stderr,"tmrc: gettimeofday\n"); 35*59599516SKenneth E. Jansen return 0.; 36*59599516SKenneth E. Jansen } 37*59599516SKenneth E. Jansen double t1 = ((double) tv.tv_sec) + 1.e-6 * ((double) tv.tv_usec); 38*59599516SKenneth E. Jansen 39*59599516SKenneth E. Jansen #endif 40*59599516SKenneth E. Jansen 41*59599516SKenneth E. Jansen return t1; 42*59599516SKenneth E. Jansen 43*59599516SKenneth E. Jansen 44*59599516SKenneth E. Jansen // Old stuff 45*59599516SKenneth E. Jansen /* 46*59599516SKenneth E. Jansen struct rusage cputimePoints; 47*59599516SKenneth E. Jansen getrusage(RUSAGE_SELF,&cputimePoints); 48*59599516SKenneth E. Jansen double t1=((cputimePoints.ru_utime).tv_sec+(cputimePoints.ru_stime).tv_sec); 49*59599516SKenneth E. Jansen t1+=((cputimePoints.ru_utime).tv_usec+(cputimePoints.ru_stime).tv_usec)/1000000.0; 50*59599516SKenneth E. Jansen */ 51*59599516SKenneth E. Jansen 52*59599516SKenneth E. Jansen /* double t1=rts_get_timebase()/( 2500000000.0); */ 53*59599516SKenneth E. Jansen 54*59599516SKenneth E. Jansen /* return time(NULL); */ 55*59599516SKenneth E. Jansen /* return clock()/CLOCKS_PER_SEC; */ 56*59599516SKenneth E. Jansen } 57*59599516SKenneth E. Jansen 58*59599516SKenneth E. Jansen 59*59599516SKenneth E. Jansen 60*59599516SKenneth E. Jansen 61