[3432] | 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 | |
---|