6 integer(4),
private ::
col(7) = [ int(z
'0000ff00',4), int(z
'000000ff',4), &
7 & int(z
'00ffff00',4), int(z
'00ff00ff',4), int(z
'0000ffff',4), &
8 & int(z
'00ff0000',4), int(z
'00ffffff',4)]
9 character(kind=c_char,len=256),
private,
target ::
tempname
11 type,
bind(C):: nvtxEventAttributes
12 integer(C_INT16_T):: version=1
13 integer(C_INT16_T):: size=48
14 integer(C_INT):: category=0
15 integer(C_INT):: colortype=1
16 integer(C_INT):: color
17 integer(C_INT):: payloadtype=0
18 integer(C_INT):: reserved0
19 integer(C_INT64_T):: payload
20 integer(C_INT):: messagetype=1
25 interface gpmdrangepush
27 subroutine gpmdrangepusha(name) bind(C, name='nvtxRangePushA')
29 character(kind=C_CHAR,len=*) :: name
30 end subroutine gpmdrangepusha
33 subroutine gpmdrangepushex(event) bind(C, name='nvtxRangePushEx')
37 end subroutine gpmdrangepushex
38 end interface gpmdrangepush
40 interface gpmdrangepop
41 subroutine gpmdrangepop() bind(C, name='nvtxRangePop')
42 end subroutine gpmdrangepop
43 end interface gpmdrangepop
45 public :: gpmdstartrange, gpmdendrange
49 subroutine gpmdstartrange(name,id)
50 character(kind=c_char,len=*) :: name
51 integer,
optional:: id
56 if ( .not.
present(id))
then
59 event%color=
col(mod(id,7)+1)
61 call gpmdrangepushex(event)
63 end subroutine gpmdstartrange
65 subroutine gpmdendrange
67 end subroutine gpmdendrange
character(kind=c_char, len=256), target, private tempname
integer(4), dimension(7), private col