New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
profile.F90 in branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC – NEMO

source: branches/2011/DEV_r2739_STFC_dCSE/NEMOGCM/NEMO/OPA_SRC/profile.F90 @ 3432

Last change on this file since 3432 was 3432, checked in by trackstand2, 12 years ago

Merge branch 'ksection_partition'

File size: 8.6 KB
Line 
1MODULE 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
101CONTAINS
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
224END MODULE profile
225
Note: See TracBrowser for help on using the repository browser.