Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Update copyright headers.
[simgrid.git] / examples / smpi / energy / f90 / sef90.f90
index f1db81a..639ddd4 100644 (file)
@@ -1,4 +1,4 @@
-! Copyright (c) 2013-2014. The SimGrid Team.
+! Copyright (c) 2013-2018. The SimGrid Team.
 ! All rights reserved.
 
 ! This program is free software; you can redistribute it and/or modify it
@@ -13,32 +13,52 @@ program main
   double precision p, t, e
 
   call MPI_Init(ierr)
+  if (ierr .ne. MPI_SUCCESS) then
+     print *, 'MPI_Init failed:', ierr
+     stop 1
+  endif
   call MPI_Comm_rank(MPI_COMM_WORLD, rank, ierr)
+  if (ierr .ne. MPI_SUCCESS) then
+     print *, 'MPI_Comm_rank failed:', ierr
+     call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+     stop 1
+  endif
 
   pstates = smpi_get_host_nb_pstates()
 
   t = MPI_Wtime()
 
-  print *, '[', t, '] [rank ', rank, ']', pstates, 'pstates available'
+  print '(1a,F15.8,1a,i2,1a,i2,1a)', '[', 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
+     print '(1a,F15.8,1a,i2,1a,F15.4)', '[', t, '] [rank ', rank, &
+    '] Power: ', p
   end do
 
   do i = 0, pstates - 1
-     call smpi_set_host_power_peak_at(i)
+     call smpi_set_host_pstate(i)
      t = MPI_Wtime()
      p = smpi_get_host_current_power_peak()
-     print *, '[', t, '] [rank ', rank, '] Current pstate: ', i, '; Current power: ', p
+     print '(1a,F15.8,1a,i2,1a,i2,1a,F15.4)', '[', 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
+     print '(1a,F15.8,1a,i2,1a,F15.4)', '[', t, '] [rank ', &
+    rank, '] Energy consumed (Joules): ', e
   end do
 
+  flush(6)
+
   call MPI_Finalize(ierr)
+  if (ierr .ne. MPI_SUCCESS) then
+     print *, 'MPI_Finalize failed:', ierr
+     call MPI_Abort(MPI_COMM_WORLD, 1, ierr)
+     stop 1
+  endif
 
 end program main