source: codes/icosagcm/trunk/src/trace.F90 @ 252

Last change on this file since 252 was 186, checked in by ymipsl, 10 years ago

Add new openMP parallelism based on distribution of domains on threads. There is no more limitation of number of threads by MPI process.

YM

File size: 1.8 KB
Line 
1MODULE trace
2
3  INTEGER,SAVE :: markId
4 
5CONTAINS
6
7  SUBROUTINE init_trace
8  IMPLICIT NONE
9#ifdef VTRACE
10#include <vt_user.inc>
11#endif 
12
13#ifdef VTRACE
14     VT_MARKER_DEF("marker", VT_MARKER_TYPE_HINT, markId)
15#endif
16 
17  END SUBROUTINE init_trace
18 
19  SUBROUTINE trace_on
20  IMPLICIT NONE
21#ifdef VTRACE
22#include <vt_user.inc>
23#endif 
24!$OMP MASTER
25#ifdef VTRACE
26     VT_ON()
27#endif
28!$OMP END MASTER
29     
30  END SUBROUTINE trace_on
31 
32  SUBROUTINE trace_off
33  IMPLICIT NONE
34#ifdef VTRACE
35#include <vt_user.inc>
36#endif 
37
38!$OMP MASTER
39#ifdef VTRACE
40   VT_OFF()
41#endif
42!$OMP END MASTER
43     
44  END SUBROUTINE trace_off
45   
46  SUBROUTINE trace_start(name)
47  IMPLICIT NONE
48    CHARACTER(LEN=*),INTENT(IN) :: name 
49#ifdef VTRACE
50#include <vt_user.inc>
51#endif 
52
53!$OMP MASTER
54#ifdef VTRACE
55     VT_USER_START(name)
56#endif
57!$OMP END MASTER
58
59  END SUBROUTINE trace_start   
60
61  SUBROUTINE trace_end(name)
62  IMPLICIT NONE
63#ifdef VTRACE
64#include <vt_user.inc>
65#endif
66
67    CHARACTER(LEN=*),INTENT(IN) :: name
68
69!$OMP MASTER
70#ifdef VTRACE
71     VT_USER_END(name)
72#endif
73!$OMP END MASTER
74
75  END SUBROUTINE trace_end   
76
77  SUBROUTINE trace_start2(name)
78  IMPLICIT NONE
79    CHARACTER(LEN=*),INTENT(IN) :: name 
80#ifdef VTRACE
81#include <vt_user.inc>
82#endif 
83
84!$OMP MASTER
85#ifdef VTRACE
86     VT_USER_START(name)
87#endif
88!$OMP END MASTER
89
90  END SUBROUTINE trace_start2   
91
92  SUBROUTINE trace_end2(name)
93  IMPLICIT NONE
94#ifdef VTRACE
95#include <vt_user.inc>
96#endif
97
98    CHARACTER(LEN=*),INTENT(IN) :: name
99
100!$OMP MASTER
101#ifdef VTRACE
102     VT_USER_END(name)
103#endif
104!$OMP END MASTER
105
106  END SUBROUTINE trace_end2   
107
108
109
110  SUBROUTINE Marker(name)
111  IMPLICIT NONE
112  CHARACTER(LEN=*),INTENT(IN) :: name
113#ifdef VTRACE
114#include <vt_user.inc>
115#endif 
116
117!$OMP MASTER
118#ifdef VTRACE
119     VT_MARKER(markId,name)
120#endif
121!$OMP END MASTER
122
123  END SUBROUTINE Marker
124
125END MODULE trace
Note: See TracBrowser for help on using the repository browser.