source: XIOS/trunk/src/interface/fortran/itimer.F90 @ 1849

Last change on this file since 1849 was 1849, checked in by ymipsl, 4 years ago

Export xios timers throw the fortran interface

YM

File size: 1.7 KB
Line 
1#include "xios_fortran_prefix.hpp"
2
3MODULE ITIMER
4   USE, INTRINSIC :: ISO_C_BINDING
5   USE TIMER_INTERFACE
6
7   CONTAINS ! Fonctions disponibles pour les utilisateurs.
8
9   SUBROUTINE xios(timer_resume)(timer_id, trace)
10      IMPLICIT NONE
11      CHARACTER(len = *) , INTENT(IN) :: timer_id
12      LOGICAL, OPTIONAL,INTENT(IN)    :: trace
13      LOGICAL (KIND=C_BOOL)           :: trace_           
14
15      trace_=.TRUE.
16      IF (PRESENT(trace)) trace_ = trace
17      CALL cxios_timer_resume(timer_id, len(timer_id),trace_)           
18
19   END SUBROUTINE xios(timer_resume)
20
21   SUBROUTINE xios(timer_suspend)(timer_id, trace)
22      IMPLICIT NONE
23      CHARACTER(len = *) , INTENT(IN) :: timer_id
24      LOGICAL, OPTIONAL,INTENT(IN)    :: trace
25      LOGICAL (KIND=C_BOOL)           :: trace_               
26
27      trace_=.TRUE.
28      IF (PRESENT(trace)) trace_ = trace
29      CALL cxios_timer_suspend(timer_id, len(timer_id),trace_)           
30
31   END SUBROUTINE xios(timer_suspend)
32
33   SUBROUTINE xios(timer_reset)(timer_id)
34      IMPLICIT NONE
35      CHARACTER(len = *) , INTENT(IN) :: timer_id
36
37      CALL cxios_timer_reset(timer_id, len(timer_id))           
38
39   END SUBROUTINE xios(timer_reset)
40
41   FUNCTION xios(timer_get_time)(timer_id) RESULT(time)
42      IMPLICIT NONE
43      CHARACTER(len = *) , OPTIONAL, INTENT(IN) :: timer_id
44      REAL                                      :: time
45      REAL(KIND=C_DOUBLE)                         :: time_
46     
47      IF (PRESENT(timer_id)) THEN
48         CALL cxios_timer_get_cumulated_time(timer_id, len(timer_id),time_) 
49      ELSE
50         CALL cxios_timer_get_time(time_)
51      ENDIF     
52      time=time_
53   END FUNCTION xios(timer_get_time)
54 
55END MODULE ITIMER
Note: See TracBrowser for help on using the repository browser.