+ program main
+ include 'mpif.h'
+
+ integer ierr
+ integer rank, pstates
+ integer i
+ double precision p, t, e
+
+ call MPI_Init(ierr)
+ call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
+
+ pstates = smpi_get_host_nb_pstates()
+
+ t = MPI_Wtime()
+
+ print *, '[', t, '] [rank ', rank, ']',
+ & pstates, 'pstates available'
+
+ do i = 0, pstates - 1
+ p = smpi_get_host_power_peak_at(i)
+ print *, '[', t, '] [rank ', rank, '] Power: ', p
+ end do
+
+ do i = 0, pstates - 1
+ call smpi_set_host_power_peak_at(i)
+ t = MPI_Wtime()
+ p = smpi_get_host_current_power_peak()
+ print *, '[', t, '] [rank ', rank, '] Current pstate: ', i,
+ & '; Current power: ', p
+
+ e = 1e9
+ call smpi_execute_flops(e)
+
+ t = MPI_Wtime()
+ e = smpi_get_host_consumed_energy()
+ print *, '[', t, '] [rank ', rank, ']',
+ & 'Energy consumed (Joules): ', e
+ end do
+
+ call MPI_Finalize(ierr)
+
+ end program main