Index: XIOS/trunk/src/interface/c/ictimer.cpp
===================================================================
--- XIOS/trunk/src/interface/c/ictimer.cpp	(revision 1849)
+++ XIOS/trunk/src/interface/c/ictimer.cpp	(revision 1849)
@@ -0,0 +1,39 @@
+#include "timer.hpp"
+#include <string>
+
+
+using namespace xios;
+
+extern "C"
+{
+  void cxios_timer_resume(const char* timer_id, int len_timer_id, bool trace)
+  {
+    std::string str(timer_id,len_timer_id);
+    CTimer::get(str).resume();
+  }
+
+  void cxios_timer_suspend(const char* timer_id, int len_timer_id, bool trace)
+  {
+    std::string str(timer_id,len_timer_id);
+    CTimer::get(str).suspend();
+  }
+
+  void cxios_timer_reset(const char* timer_id, int len_timer_id)
+  {
+    std::string str(timer_id,len_timer_id);
+    CTimer::get(str).reset();
+  }
+
+  void cxios_timer_get_time(double* time)
+  {
+    *time=CTimer::getTime();
+  }
+
+  void cxios_timer_get_cumulated_time(const char* timer_id, int len_timer_id, double* time)
+  {
+    std::string str(timer_id,len_timer_id);
+    *time=CTimer::get(str).getCumulatedTime();
+  }
+}
+
+
Index: XIOS/trunk/src/interface/fortran/itimer.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/itimer.F90	(revision 1849)
+++ XIOS/trunk/src/interface/fortran/itimer.F90	(revision 1849)
@@ -0,0 +1,55 @@
+#include "xios_fortran_prefix.hpp"
+
+MODULE ITIMER
+   USE, INTRINSIC :: ISO_C_BINDING
+   USE TIMER_INTERFACE
+
+   CONTAINS ! Fonctions disponibles pour les utilisateurs.
+
+   SUBROUTINE xios(timer_resume)(timer_id, trace)
+      IMPLICIT NONE
+      CHARACTER(len = *) , INTENT(IN) :: timer_id
+      LOGICAL, OPTIONAL,INTENT(IN)    :: trace
+      LOGICAL (KIND=C_BOOL)           :: trace_           
+
+      trace_=.TRUE.
+      IF (PRESENT(trace)) trace_ = trace
+      CALL cxios_timer_resume(timer_id, len(timer_id),trace_)            
+
+   END SUBROUTINE xios(timer_resume)
+
+   SUBROUTINE xios(timer_suspend)(timer_id, trace)
+      IMPLICIT NONE
+      CHARACTER(len = *) , INTENT(IN) :: timer_id
+      LOGICAL, OPTIONAL,INTENT(IN)    :: trace
+      LOGICAL (KIND=C_BOOL)           :: trace_               
+
+      trace_=.TRUE.
+      IF (PRESENT(trace)) trace_ = trace
+      CALL cxios_timer_suspend(timer_id, len(timer_id),trace_)            
+
+   END SUBROUTINE xios(timer_suspend)
+
+   SUBROUTINE xios(timer_reset)(timer_id)
+      IMPLICIT NONE
+      CHARACTER(len = *) , INTENT(IN) :: timer_id
+
+      CALL cxios_timer_reset(timer_id, len(timer_id))            
+
+   END SUBROUTINE xios(timer_reset)
+
+   FUNCTION xios(timer_get_time)(timer_id) RESULT(time)
+      IMPLICIT NONE
+      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timer_id
+      REAL                                      :: time
+      REAL(KIND=C_DOUBLE)                         :: time_
+      
+      IF (PRESENT(timer_id)) THEN
+         CALL cxios_timer_get_cumulated_time(timer_id, len(timer_id),time_) 
+      ELSE
+         CALL cxios_timer_get_time(time_)
+      ENDIF      
+      time=time_
+   END FUNCTION xios(timer_get_time)
+ 
+END MODULE ITIMER
Index: XIOS/trunk/src/interface/fortran/ixios.F90
===================================================================
--- XIOS/trunk/src/interface/fortran/ixios.F90	(revision 1843)
+++ XIOS/trunk/src/interface/fortran/ixios.F90	(revision 1849)
@@ -37,4 +37,5 @@
                   OPERATOR(==), OPERATOR(/=), OPERATOR(<), OPERATOR(<=), OPERATOR(>), OPERATOR(>=),            &
                   ASSIGNMENT(=)
+USE itimer, ONLY : xios(timer_resume), xios(timer_suspend), xios(timer_reset), xios(timer_get_time)
 
 USE ifield, ONLY : txios(field), txios(fieldgroup), xios(is_valid_field), xios(is_valid_fieldgroup)
Index: XIOS/trunk/src/interface/fortran/timer_interface.f90
===================================================================
--- XIOS/trunk/src/interface/fortran/timer_interface.f90	(revision 1849)
+++ XIOS/trunk/src/interface/fortran/timer_interface.f90	(revision 1849)
@@ -0,0 +1,42 @@
+MODULE TIMER_INTERFACE
+   USE, INTRINSIC :: ISO_C_BINDING
+       
+   INTERFACE ! Ne pas appeler directement/Interface FORTRAN 2003 <-> C99
+ 
+      SUBROUTINE cxios_timer_resume(timer_id, len_timer_id, trace) BIND(C)
+         USE ISO_C_BINDING
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: timer_id
+         INTEGER(kind = C_INT)       , VALUE        :: len_timer_id
+         LOGICAL  (kind = C_BOOL)    , VALUE        :: trace
+         
+      END SUBROUTINE cxios_timer_resume
+   
+      SUBROUTINE cxios_timer_suspend(timer_id, len_timer_id, trace) BIND(C)
+         USE ISO_C_BINDING
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: timer_id
+         INTEGER(kind = C_INT)       , VALUE        :: len_timer_id
+         LOGICAL  (kind = C_BOOL)    , VALUE        :: trace
+      END SUBROUTINE cxios_timer_suspend
+
+
+      SUBROUTINE cxios_timer_reset(timer_id, len_timer_id) BIND(C)
+         USE ISO_C_BINDING
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: timer_id
+         INTEGER(kind = C_INT)       , VALUE        :: len_timer_id
+      END SUBROUTINE cxios_timer_reset
+
+      SUBROUTINE cxios_timer_get_time(time) BIND(C)
+         USE ISO_C_BINDING
+         REAL  (kind = C_DOUBLE)                   :: time
+      END SUBROUTINE cxios_timer_get_time
+ 
+      SUBROUTINE cxios_timer_get_cumulated_time(timer_id, len_timer_id, time) BIND(C)
+         USE ISO_C_BINDING
+         CHARACTER(kind = C_CHAR)    , DIMENSION(*) :: timer_id
+         INTEGER(kind = C_INT)       , VALUE        :: len_timer_id
+         REAL  (kind = C_DOUBLE)                    :: time
+       END SUBROUTINE cxios_timer_get_cumulated_time
+
+   END INTERFACE
+       
+END MODULE TIMER_INTERFACE
