Blame src/ftests/highlevel.F

Packit 577717
#include "fpapi_test.h"
Packit 577717
Packit 577717
      program highlevel
Packit 577717
      implicit integer (p)
Packit 577717
Packit 577717
      integer*8 values(10)
Packit 577717
      integer events(2)
Packit 577717
      integer eventnum
Packit 577717
      integer availcounters
Packit 577717
      integer retval
Packit 577717
      integer tests_quiet, get_quiet
Packit 577717
      external get_quiet
Packit 577717
      character*PAPI_MAX_STR_LEN name
Packit 577717
      integer last_char, n
Packit 577717
      external last_char
Packit 577717
Packit 577717
      tests_quiet = get_quiet()
Packit 577717
Packit 577717
      eventnum = 2
Packit 577717
      call PAPIf_num_counters(availcounters)
Packit 577717
      if (eventnum .GT. availcounters) then
Packit 577717
         print *, "Not enough hardware counters!"
Packit 577717
         stop
Packit 577717
      end if
Packit 577717
Packit 577717
      retval = PAPI_VER_CURRENT
Packit 577717
      call PAPIf_library_init(retval)
Packit 577717
      if ( retval.NE.PAPI_VER_CURRENT) then
Packit 577717
        call ftest_fail(__FILE__, __LINE__,
Packit 577717
     . 'PAPI_library_init', retval)
Packit 577717
      end if
Packit 577717
Packit 577717
      call PAPIf_query_event(PAPI_FP_INS, retval)
Packit 577717
      if (retval .NE. PAPI_OK) then
Packit 577717
        events(1)=PAPI_TOT_INS
Packit 577717
      else
Packit 577717
        events(1)=PAPI_FP_INS
Packit 577717
      end if
Packit 577717
      events(2)=PAPI_TOT_CYC
Packit 577717
Packit 577717
      call PAPIf_start_counters(events, eventnum, retval)
Packit 577717
      if ( retval .NE. PAPI_OK ) then
Packit 577717
        call ftest_fail(__FILE__, __LINE__,
Packit 577717
     . 'PAPIf_start_counters', 
Packit 577717
     *retval)
Packit 577717
      end if
Packit 577717
Packit 577717
      call fdo_flops(NUM_FLOPS)
Packit 577717
Packit 577717
      call PAPIf_read_counters(values(1), eventnum, retval)
Packit 577717
      if ( retval .NE. PAPI_OK ) then
Packit 577717
        call ftest_fail(__FILE__, __LINE__,
Packit 577717
     . 'PAPIf_read_counters', 
Packit 577717
     *retval)
Packit 577717
      end if
Packit 577717
Packit 577717
      call fdo_flops(NUM_FLOPS)
Packit 577717
Packit 577717
      call PAPIf_stop_counters(values(3), eventnum, retval)
Packit 577717
      if ( retval .NE. PAPI_OK ) then
Packit 577717
        call ftest_fail(__FILE__, __LINE__,
Packit 577717
     . 'PAPIf_stop_counters', 
Packit 577717
     *retval)
Packit 577717
      end if
Packit 577717
      
Packit 577717
      if (tests_quiet .EQ. 0) then
Packit 577717
        call PAPIf_event_code_to_name (events(1), name, retval)
Packit 577717
        if ( retval.NE.PAPI_OK) then
Packit 577717
          call ftest_fail(__FILE__, __LINE__, 
Packit 577717
     * 'PAPIf_event_code_to_name', retval)
Packit 577717
        end if
Packit 577717
        n=last_char(name)
Packit 577717
        print *, "Test case highlevel: Test of high-level APIs."
Packit 577717
        print *, "---------------------------------------------",
Packit 577717
     *    "---------------------"
Packit 577717
        write (*,100) "Test type", 1, 2
Packit 577717
        write (*,100) name(1:n), values(1), values(3)
Packit 577717
        write (*,100) "PAPI_TOT_CYC", values(2), values(4)
Packit 577717
 100    format(a15, ":", i12, i12)
Packit 577717
        print *, "---------------------------------------------",
Packit 577717
     * "---------------------"
Packit 577717
      end if
Packit 577717
Packit 577717
      call ftests_pass(__FILE__)
Packit 577717
      End