|
Packit |
577717 |
#include "fpapi_test.h"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
program accum
|
|
Packit |
577717 |
implicit integer (p)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
integer es1, number, i
|
|
Packit |
577717 |
integer*8 values(10)
|
|
Packit |
577717 |
integer events(2)
|
|
Packit |
577717 |
character*PAPI_MAX_STR_LEN name
|
|
Packit |
577717 |
integer retval
|
|
Packit |
577717 |
integer tests_quiet, get_quiet
|
|
Packit |
577717 |
external get_quiet
|
|
Packit |
577717 |
integer last_char, n
|
|
Packit |
577717 |
external last_char
|
|
Packit |
577717 |
|
|
Packit |
577717 |
tests_quiet = get_quiet()
|
|
Packit |
577717 |
es1 = PAPI_NULL
|
|
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_create_eventset(es1, retval)
|
|
Packit |
577717 |
if ( retval.NE.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_create_eventset',
|
|
Packit |
577717 |
*retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
number=2
|
|
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 |
|
|
Packit |
577717 |
events(2) = PAPI_TOT_CYC
|
|
Packit |
577717 |
call PAPIf_add_events( es1, events, number, retval )
|
|
Packit |
577717 |
if ( retval.LT.PAPI_OK) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_add_events', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
do i=1,10
|
|
Packit |
577717 |
values(i)=0
|
|
Packit |
577717 |
end do
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_start(es1, retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_start', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call fdo_flops(NUM_FLOPS)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_accum(es1, values(7), retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_accum', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
values(1)=values(7)
|
|
Packit |
577717 |
values(2)=values(8)
|
|
Packit |
577717 |
call PAPIf_stop(es1, values(3), retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_stop', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_start(es1, retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_start', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call fdo_flops(NUM_FLOPS)
|
|
Packit |
577717 |
call PAPIf_accum(es1, values(7), retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_accum', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
values(5)=values(7)
|
|
Packit |
577717 |
values(6)=values(8)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call fdo_flops(NUM_FLOPS)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_accum(es1, values(7), retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_accum', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call fdo_flops(NUM_FLOPS)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_stop(es1, values(9), retval)
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_stop', retval)
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call PAPIf_remove_events( es1, events, number, retval )
|
|
Packit |
577717 |
if ( retval .NE. PAPI_OK ) then
|
|
Packit |
577717 |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit |
577717 |
. 'PAPIf_remove_events', 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 accum: Test of PAPI_add_events, ",
|
|
Packit |
577717 |
* "PAPI_remove_events, PAPI_accum"
|
|
Packit |
577717 |
print *, "------------------------------------------",
|
|
Packit |
577717 |
* "------------------------"
|
|
Packit |
577717 |
write (*,100) "Test type", 1, 2, 3, 4, 5
|
|
Packit |
577717 |
write (*,100) name(1:n), values(1), values(3),
|
|
Packit |
577717 |
* values(5), values(7), values(9)
|
|
Packit |
577717 |
write (*,100) "PAPI_TOT_CYC", values(2), values(4),
|
|
Packit |
577717 |
* values(6), values(8), values(10)
|
|
Packit |
577717 |
print *, "------------------------------------------",
|
|
Packit |
577717 |
* "------------------------"
|
|
Packit |
577717 |
100 format(a15, ":", i10, i10, i10, i10, i10)
|
|
Packit |
577717 |
print *
|
|
Packit |
577717 |
print *, "Verification:"
|
|
Packit |
577717 |
print *, "Column 2 approximately equals to 0;"
|
|
Packit |
577717 |
print *, "Column 3 approximately equals 2 * Column 1;"
|
|
Packit |
577717 |
print *, "Column 4 approximately equals 3 * Column 1;"
|
|
Packit |
577717 |
print *, "Column 5 approximately equals Column 1."
|
|
Packit |
577717 |
end if
|
|
Packit |
577717 |
|
|
Packit |
577717 |
call ftests_pass(__FILE__)
|
|
Packit |
577717 |
end
|