1 | MODULE profile |
---|
2 | |
---|
3 | #if defined ARPVAMPIR |
---|
4 | # include "VT.inc" |
---|
5 | #endif |
---|
6 | #if defined ARPCRAYPAT |
---|
7 | INCLUDE 'pat_apif.h' |
---|
8 | #endif |
---|
9 | |
---|
10 | INTEGER :: iprofStat |
---|
11 | |
---|
12 | INTEGER, PARAMETER :: ARPIO = 1 |
---|
13 | CHARACTER(LEN=*), PARAMETER :: ARPIO_NM = "IO" |
---|
14 | INTEGER, PARAMETER :: ARPINIT = 2 |
---|
15 | CHARACTER(LEN=*), PARAMETER :: ARPINIT_NM = "Init" |
---|
16 | INTEGER, PARAMETER :: ARPFINAL = 3 |
---|
17 | CHARACTER(LEN=*), PARAMETER :: ARP_NM = "Final" |
---|
18 | INTEGER, PARAMETER :: ARPSTEP = 4 |
---|
19 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
20 | INTEGER, PARAMETER :: ARPUPDATE = 5 |
---|
21 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
22 | INTEGER, PARAMETER :: ARPOCEAN = 6 |
---|
23 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
24 | INTEGER, PARAMETER :: ARPTRACER = 7 |
---|
25 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
26 | INTEGER, PARAMETER :: ARPDYNAMICS = 8 |
---|
27 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
28 | INTEGER, PARAMETER :: ARPDIAGCOMP = 9 |
---|
29 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
30 | INTEGER, PARAMETER :: ARPCNTRL = 10 |
---|
31 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
32 | INTEGER, PARAMETER :: ARPDIAGOUT = 11 |
---|
33 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
34 | INTEGER, PARAMETER :: ARPDYNADV = 12 |
---|
35 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
36 | INTEGER, PARAMETER :: ARPDYNVOR = 13 |
---|
37 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
38 | INTEGER, PARAMETER :: ARPDYNLAT = 14 |
---|
39 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
40 | INTEGER, PARAMETER :: ARPDYNHPG = 15 |
---|
41 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
42 | INTEGER, PARAMETER :: ARPDYNVDIFF = 16 |
---|
43 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
44 | INTEGER, PARAMETER :: ARPDYNSPGBOUND = 17 |
---|
45 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
46 | INTEGER, PARAMETER :: ARPCOMMS = 18 |
---|
47 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
48 | INTEGER, PARAMETER :: ARPDYNSPG = 19 |
---|
49 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
50 | INTEGER, PARAMETER :: ARPUPDATE3DT = 20 |
---|
51 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
52 | INTEGER, PARAMETER :: ARPUPDATESAL = 21 |
---|
53 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
54 | INTEGER, PARAMETER :: ARPLISTCOMMS = 22 |
---|
55 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
56 | INTEGER, PARAMETER :: ARPUPDATEVEL = 23 |
---|
57 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
58 | INTEGER, PARAMETER :: ARPUPDATEICE = 24 |
---|
59 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
60 | INTEGER, PARAMETER :: ARPUPDATEFLUX = 25 |
---|
61 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
62 | INTEGER, PARAMETER :: ARPRSTOPEN = 26 |
---|
63 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
64 | INTEGER, PARAMETER :: ARPDIACOMP = 27 |
---|
65 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
66 | INTEGER, PARAMETER :: ARPICELBC = 28 |
---|
67 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
68 | INTEGER, PARAMETER :: ARPICERST = 29 |
---|
69 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
70 | INTEGER, PARAMETER :: ARPICEDYN = 30 |
---|
71 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
72 | INTEGER, PARAMETER :: ARPICETRANS= 31 |
---|
73 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
74 | INTEGER, PARAMETER :: ARPICERHG = 32 |
---|
75 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
76 | INTEGER, PARAMETER :: ARPTRAADV = 33 |
---|
77 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
78 | INTEGER, PARAMETER :: ARPSOLVER = 34 |
---|
79 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
80 | INTEGER, PARAMETER :: ARPEXCHS_GENERIC = 35 |
---|
81 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
82 | INTEGER, PARAMETER :: ARPEXCHS_LIST = 36 |
---|
83 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
84 | INTEGER, PARAMETER :: ARPNORTHCOMMS2D = 37 |
---|
85 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
86 | INTEGER, PARAMETER :: ARPNORTHLISTCOMMS = 38 |
---|
87 | ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" |
---|
88 | INTEGER, PARAMETER :: NORTHLISTGATHER = 39 |
---|
89 | ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" |
---|
90 | INTEGER, PARAMETER :: NORTHLISTSCATTER = 40 |
---|
91 | ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" |
---|
92 | INTEGER, PARAMETER :: ARPNORTHAPPLYSYMM = 41 |
---|
93 | ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" |
---|
94 | INTEGER, PARAMETER :: NORTH3DGATHER = 42 |
---|
95 | ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" |
---|
96 | INTEGER, PARAMETER :: NORTH3DSCATTER = 43 |
---|
97 | ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" |
---|
98 | INTEGER, PARAMETER :: NORTH3DAPPSYMM = 44 |
---|
99 | ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" |
---|
100 | |
---|
101 | CONTAINS |
---|
102 | |
---|
103 | !----------------------------------------- |
---|
104 | |
---|
105 | SUBROUTINE prof_init() |
---|
106 | IMPLICIT none |
---|
107 | |
---|
108 | #if defined ARPVAMPIR |
---|
109 | CALL VTSYMDEF( ARPIO, 'IO', 'Data output', arp_ierr) |
---|
110 | CALL VTSYMDEF( ARPSTEP, 'Time step', 'Complete time step', arp_ierr) |
---|
111 | CALL VTSYMDEF( ARPRSTOPEN, 'Rst open', 'Rst open', arp_ierr) |
---|
112 | CALL VTSYMDEF( ARPUPDATE, 'Update', 'Update data etc.', arp_ierr) |
---|
113 | CALL VTSYMDEF( ARPUPDATEICE, 'ARPUPDATEICE', 'ARPUPDATEICE', arp_ierr) |
---|
114 | CALL VTSYMDEF( ARPUPDATEFLUX, 'ARPUPDATEFLUX', 'ARPUPDATEFLUX', arp_ierr) |
---|
115 | CALL VTSYMDEF( ARPCOMMS, 'Comms', 'Comms', arp_ierr) |
---|
116 | CALL VTSYMDEF( ARPLISTCOMMS, 'ListComms', 'ListComms', arp_ierr) |
---|
117 | CALL VTSYMDEF( ARPEXCHS_GENERIC, 'exchs_generic', 'exchs_generic', & |
---|
118 | arp_ierr) |
---|
119 | CALL VTSYMDEF( ARPEXCHS_LIST, 'exchs_generic_list','exchs_generic_list',& |
---|
120 | arp_ierr) |
---|
121 | CALL VTSYMDEF( ARPNORTHCOMMS2D, 'northfold2d','northfold2d', & |
---|
122 | arp_ierr) |
---|
123 | CALL VTSYMDEF( ARPNORTHLISTCOMMS,'northfoldlist','northfoldlist',& |
---|
124 | arp_ierr) |
---|
125 | CALL VTSYMDEF( NORTHLISTGATHER, 'northlistgather','northlistgather',& |
---|
126 | arp_ierr) |
---|
127 | CALL VTSYMDEF( NORTHLISTSCATTER, 'northlistscatter','northlistscatter',& |
---|
128 | arp_ierr) |
---|
129 | CALL VTSYMDEF( ARPNORTHAPPLYSYMM,'northapplysymm','northapplysymm',& |
---|
130 | arp_ierr) |
---|
131 | CALL VTSYMDEF( NORTH3DGATHER, 'north3dgather','north3dgather',& |
---|
132 | arp_ierr) |
---|
133 | CALL VTSYMDEF( NORTH3DSCATTER, 'north3dscatter','north3dscatter',& |
---|
134 | arp_ierr) |
---|
135 | CALL VTSYMDEF( NORTH3DAPPSYMM, 'north3dapplysymm','north3dapplysymm',& |
---|
136 | arp_ierr) |
---|
137 | |
---|
138 | CALL VTSYMDEF( ARPOCEAN, 'Ocean', 'Ocean physics', arp_ierr) |
---|
139 | CALL VTSYMDEF( ARPTRACER, 'Tracer', 'Active tracers', arp_ierr) |
---|
140 | CALL VTSYMDEF( ARPTRAADV, 'Tracer Adv.', 'Tracer Adv.', arp_ierr) |
---|
141 | CALL VTSYMDEF( ARPDYNAMICS, 'Dynamics', 'Dynamics', arp_ierr) |
---|
142 | CALL VTSYMDEF( ARPCNTRL, 'Control', 'Control and restarts', arp_ierr) |
---|
143 | CALL VTSYMDEF( ARPDIACOMP, 'Diag comp', 'Diagnostics comp.', arp_ierr) |
---|
144 | CALL VTSYMDEF( ARPDIAGOUT, 'Diag out', 'Diagnostics and outputs', arp_ierr) |
---|
145 | CALL VTSYMDEF( ARPDYNLAT, 'Dyn Lat', 'Dyn Lateral Mixing', arp_ierr) |
---|
146 | CALL VTSYMDEF( ARPDYNSPG, 'Dyn SPG', 'Dyn Surf. Press. Grad.', arp_ierr) |
---|
147 | !CALL VTSYMDEF( ARPICELBC, 'Ice LBCs', 'Ice LBCs', arp_ierr) |
---|
148 | !CALL VTSYMDEF( ARPICEDYN, 'Ice Dyn', 'Ice Dyn', arp_ierr) |
---|
149 | !CALL VTSYMDEF( ARPICETRANS, 'Ice Trans', 'Ice Trans', arp_ierr) |
---|
150 | CALL VTSYMDEF( ARPICERHG, 'Ice RHG', 'Ice Rheology', arp_ierr) |
---|
151 | CALL VTSYMDEF( ARPSOLVER, 'Elliptic solver', 'Elliptic solver', arp_ierr) |
---|
152 | |
---|
153 | #endif |
---|
154 | |
---|
155 | ! Turn tracing off initially to keep output files small(er) |
---|
156 | CALL prof_tracing_off() |
---|
157 | |
---|
158 | END SUBROUTINE prof_init |
---|
159 | |
---|
160 | !----------------------------------------- |
---|
161 | |
---|
162 | SUBROUTINE prof_tracing_on() |
---|
163 | IMPLICIT none |
---|
164 | |
---|
165 | #if defined ARPVAMPIR |
---|
166 | CALL VTTRACEON() |
---|
167 | #endif |
---|
168 | #if defined ARPCRAYPAT |
---|
169 | ! CALL pat_tracing_state( PAT_STATE_ON, iprofStat ) |
---|
170 | CALL pat_record( PAT_STATE_ON, iprofStat ) |
---|
171 | #endif |
---|
172 | |
---|
173 | END SUBROUTINE prof_tracing_on |
---|
174 | |
---|
175 | !----------------------------------------- |
---|
176 | |
---|
177 | SUBROUTINE prof_tracing_off() |
---|
178 | IMPLICIT none |
---|
179 | |
---|
180 | #if defined ARPVAMPIR |
---|
181 | CALL VTTRACEOFF() |
---|
182 | #endif |
---|
183 | #if defined ARPCRAYPAT |
---|
184 | ! CALL pat_tracing_state( PAT_STATE_OFF, iprofStat ) |
---|
185 | CALL pat_record( PAT_STATE_OFF, iprofStat ) |
---|
186 | #endif |
---|
187 | |
---|
188 | END SUBROUTINE prof_tracing_off |
---|
189 | |
---|
190 | !----------------------------------------- |
---|
191 | |
---|
192 | SUBROUTINE prof_region_begin(itag, name, istatus) |
---|
193 | IMPLICIT none |
---|
194 | INTEGER, INTENT(in) :: itag |
---|
195 | INTEGER, INTENT(out) :: istatus |
---|
196 | CHARACTER (LEN=*), INTENT(in) :: name |
---|
197 | |
---|
198 | #if defined ARPVAMPIR |
---|
199 | CALL VTBEGIN(itag, istatus) |
---|
200 | #endif |
---|
201 | #if defined ARPCRAYPAT |
---|
202 | CALL pat_region_begin(itag, TRIM(name), istatus ) |
---|
203 | #endif |
---|
204 | END SUBROUTINE prof_region_begin |
---|
205 | |
---|
206 | !----------------------------------------- |
---|
207 | |
---|
208 | SUBROUTINE prof_region_end(itag, istatus) |
---|
209 | IMPLICIT none |
---|
210 | INTEGER, INTENT(in) :: itag |
---|
211 | INTEGER, INTENT(out):: istatus |
---|
212 | |
---|
213 | #if defined ARPVAMPIR |
---|
214 | CALL VTEND(itag, istatus) |
---|
215 | #endif |
---|
216 | #if defined ARPCRAYPAT |
---|
217 | CALL pat_region_end(itag, istatus ) |
---|
218 | #endif |
---|
219 | |
---|
220 | END SUBROUTINE prof_region_end |
---|
221 | |
---|
222 | !----------------------------------------- |
---|
223 | |
---|
224 | END MODULE profile |
---|
225 | |
---|