Blob Blame History Raw
#include "fpapi_test.h"
      
      program zero

      integer*8 values(10)
      integer es, event
      integer*8 uso, usn, cyco, cycn
      integer domain, granularity
      character*(PAPI_MAX_STR_LEN) domainstr, grnstr
      character*(PAPI_MAX_STR_LEN) name
      integer retval

      Integer last_char, n
      External last_char
      integer tests_quiet, get_quiet
      external get_quiet

      tests_quiet = get_quiet()
      es = PAPI_NULL

      retval = PAPI_VER_CURRENT
      call PAPIf_library_init(retval)
      if ( retval.NE.PAPI_VER_CURRENT) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPI_library_init', retval)
      end if

      call PAPIf_query_event(PAPI_FP_INS, retval)
      if (retval .NE. PAPI_OK) then
        event = PAPI_TOT_INS
      else
        event = PAPI_FP_INS
      end if

      call PAPIf_create_eventset(es, retval)
      if ( retval.NE.PAPI_OK) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPIf_create_eventset', 
     *       retval)
      end if

      call PAPIf_add_event( es, event, retval )
      if ( retval .NE. PAPI_OK ) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPIf_add_event', retval)
      end if
      
      call PAPIf_add_event( es, PAPI_TOT_CYC, retval )
      if ( retval .NE. PAPI_OK ) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPIf_add_event', retval)
      end if

      call PAPIf_get_real_usec(uso)
      call PAPIf_get_real_cyc(cyco)

      call PAPIf_start(es, retval)
      if ( retval .NE. PAPI_OK ) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPIf_start', retval)
      end if

      call fdo_flops(NUM_FLOPS)

      call PAPIf_stop(es, values(1), retval)
      if ( retval .NE. PAPI_OK ) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPIf_stop', retval)
      end if

      call PAPIf_get_real_usec(usn)
      call PAPIf_get_real_cyc(cycn)

      if (tests_quiet .EQ. 0) then
        print *, "Test case 0: start, stop."
        print *, "-----------------------------------------------",
     *       "--------------------------"
      end if

      call PAPIf_get_domain(es, domain, PAPI_DEFDOM, retval)
      if ( retval .NE. PAPI_OK ) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPIf_get_domain', retval)
      end if

      call stringify_domain(domain, domainstr)
      if (tests_quiet .EQ. 0) then
        write (*,800) "Default domain is     :", domain, domainstr
      end if

      call PAPIf_get_granularity(es, granularity, PAPI_DEFGRN, 
     *     retval)
      if ( retval .NE. PAPI_OK ) then
        call ftest_fail(__FILE__, __LINE__,
     .       'PAPIf_get_granularity',
     *       retval)
      end if

      call stringify_granularity(granularity, grnstr)
      if (tests_quiet .EQ. 0) then
        call PAPIf_event_code_to_name (event, name, retval)
        if ( retval.NE.PAPI_OK) then
          call ftest_fail(__FILE__, __LINE__, 
     *         'PAPIf_event_code_to_name', retval)
        end if
        n=last_char(name)
        write (*,800) "Default granularity is:", granularity, grnstr
 800    format(a25, i3, " ", a70)
        write (*,810) "Using", NUM_FLOPS,
     $       " iterations of c = c + a * b"
 810    format(a7, i9, a)

        print *, "-----------------------------------------------",
     *       "--------------------------"
        
        write (*,100) "Test type", 1
        write (*,100) name(1:n), values(1)
        write (*,100) "PAPI_TOT_CYC", values(2)
        write (*,100) "Real usec", usn-uso
        write (*,100) "Real cycles", cycn-cyco
 100    format(a13, ":", i12)
        print *, "-----------------------------------------------",
     *       "--------------------------"
        
        print *, "Verification: none"
      endif
      
      call ftests_pass(__FILE__)
      end