MODULE profile #if defined ARPVAMPIR # include "VT.inc" #endif #if defined ARPCRAYPAT INCLUDE 'pat_apif.h' #endif INTEGER :: iprofStat INTEGER, PARAMETER :: ARPIO = 1 CHARACTER(LEN=*), PARAMETER :: ARPIO_NM = "IO" INTEGER, PARAMETER :: ARPINIT = 2 CHARACTER(LEN=*), PARAMETER :: ARPINIT_NM = "Init" INTEGER, PARAMETER :: ARPFINAL = 3 CHARACTER(LEN=*), PARAMETER :: ARP_NM = "Final" INTEGER, PARAMETER :: ARPSTEP = 4 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPUPDATE = 5 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPOCEAN = 6 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPTRACER = 7 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNAMICS = 8 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDIAGCOMP = 9 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPCNTRL = 10 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDIAGOUT = 11 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNADV = 12 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNVOR = 13 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNLAT = 14 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNHPG = 15 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNVDIFF = 16 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNSPGBOUND = 17 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPCOMMS = 18 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDYNSPG = 19 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPUPDATE3DT = 20 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPUPDATESAL = 21 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPLISTCOMMS = 22 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPUPDATEVEL = 23 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPUPDATEICE = 24 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPUPDATEFLUX = 25 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPRSTOPEN = 26 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPDIACOMP = 27 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPICELBC = 28 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPICERST = 29 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPICEDYN = 30 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPICETRANS= 31 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPICERHG = 32 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPTRAADV = 33 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPSOLVER = 34 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPEXCHS_GENERIC = 35 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPEXCHS_LIST = 36 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPNORTHCOMMS2D = 37 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: ARPNORTHLISTCOMMS = 38 ! CHARACTER(LEN=*), PARAMETER :: ARP_NM = "IO" INTEGER, PARAMETER :: NORTHLISTGATHER = 39 ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" INTEGER, PARAMETER :: NORTHLISTSCATTER = 40 ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" INTEGER, PARAMETER :: ARPNORTHAPPLYSYMM = 41 ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" INTEGER, PARAMETER :: NORTH3DGATHER = 42 ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" INTEGER, PARAMETER :: NORTH3DSCATTER = 43 ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" INTEGER, PARAMETER :: NORTH3DAPPSYMM = 44 ! CHARACTER(LEN=*), PARAMETER :: _NM = "IO" CONTAINS !----------------------------------------- SUBROUTINE prof_init() IMPLICIT none #if defined ARPVAMPIR CALL VTSYMDEF( ARPIO, 'IO', 'Data output', arp_ierr) CALL VTSYMDEF( ARPSTEP, 'Time step', 'Complete time step', arp_ierr) CALL VTSYMDEF( ARPRSTOPEN, 'Rst open', 'Rst open', arp_ierr) CALL VTSYMDEF( ARPUPDATE, 'Update', 'Update data etc.', arp_ierr) CALL VTSYMDEF( ARPUPDATEICE, 'ARPUPDATEICE', 'ARPUPDATEICE', arp_ierr) CALL VTSYMDEF( ARPUPDATEFLUX, 'ARPUPDATEFLUX', 'ARPUPDATEFLUX', arp_ierr) CALL VTSYMDEF( ARPCOMMS, 'Comms', 'Comms', arp_ierr) CALL VTSYMDEF( ARPLISTCOMMS, 'ListComms', 'ListComms', arp_ierr) CALL VTSYMDEF( ARPEXCHS_GENERIC, 'exchs_generic', 'exchs_generic', & arp_ierr) CALL VTSYMDEF( ARPEXCHS_LIST, 'exchs_generic_list','exchs_generic_list',& arp_ierr) CALL VTSYMDEF( ARPNORTHCOMMS2D, 'northfold2d','northfold2d', & arp_ierr) CALL VTSYMDEF( ARPNORTHLISTCOMMS,'northfoldlist','northfoldlist',& arp_ierr) CALL VTSYMDEF( NORTHLISTGATHER, 'northlistgather','northlistgather',& arp_ierr) CALL VTSYMDEF( NORTHLISTSCATTER, 'northlistscatter','northlistscatter',& arp_ierr) CALL VTSYMDEF( ARPNORTHAPPLYSYMM,'northapplysymm','northapplysymm',& arp_ierr) CALL VTSYMDEF( NORTH3DGATHER, 'north3dgather','north3dgather',& arp_ierr) CALL VTSYMDEF( NORTH3DSCATTER, 'north3dscatter','north3dscatter',& arp_ierr) CALL VTSYMDEF( NORTH3DAPPSYMM, 'north3dapplysymm','north3dapplysymm',& arp_ierr) CALL VTSYMDEF( ARPOCEAN, 'Ocean', 'Ocean physics', arp_ierr) CALL VTSYMDEF( ARPTRACER, 'Tracer', 'Active tracers', arp_ierr) CALL VTSYMDEF( ARPTRAADV, 'Tracer Adv.', 'Tracer Adv.', arp_ierr) CALL VTSYMDEF( ARPDYNAMICS, 'Dynamics', 'Dynamics', arp_ierr) CALL VTSYMDEF( ARPCNTRL, 'Control', 'Control and restarts', arp_ierr) CALL VTSYMDEF( ARPDIACOMP, 'Diag comp', 'Diagnostics comp.', arp_ierr) CALL VTSYMDEF( ARPDIAGOUT, 'Diag out', 'Diagnostics and outputs', arp_ierr) CALL VTSYMDEF( ARPDYNLAT, 'Dyn Lat', 'Dyn Lateral Mixing', arp_ierr) CALL VTSYMDEF( ARPDYNSPG, 'Dyn SPG', 'Dyn Surf. Press. Grad.', arp_ierr) !CALL VTSYMDEF( ARPICELBC, 'Ice LBCs', 'Ice LBCs', arp_ierr) !CALL VTSYMDEF( ARPICEDYN, 'Ice Dyn', 'Ice Dyn', arp_ierr) !CALL VTSYMDEF( ARPICETRANS, 'Ice Trans', 'Ice Trans', arp_ierr) CALL VTSYMDEF( ARPICERHG, 'Ice RHG', 'Ice Rheology', arp_ierr) CALL VTSYMDEF( ARPSOLVER, 'Elliptic solver', 'Elliptic solver', arp_ierr) #endif ! Turn tracing off initially to keep output files small(er) CALL prof_tracing_off() END SUBROUTINE prof_init !----------------------------------------- SUBROUTINE prof_tracing_on() IMPLICIT none #if defined ARPVAMPIR CALL VTTRACEON() #endif #if defined ARPCRAYPAT ! CALL pat_tracing_state( PAT_STATE_ON, iprofStat ) CALL pat_record( PAT_STATE_ON, iprofStat ) #endif END SUBROUTINE prof_tracing_on !----------------------------------------- SUBROUTINE prof_tracing_off() IMPLICIT none #if defined ARPVAMPIR CALL VTTRACEOFF() #endif #if defined ARPCRAYPAT ! CALL pat_tracing_state( PAT_STATE_OFF, iprofStat ) CALL pat_record( PAT_STATE_OFF, iprofStat ) #endif END SUBROUTINE prof_tracing_off !----------------------------------------- SUBROUTINE prof_region_begin(itag, name, istatus) IMPLICIT none INTEGER, INTENT(in) :: itag INTEGER, INTENT(out) :: istatus CHARACTER (LEN=*), INTENT(in) :: name #if defined ARPVAMPIR CALL VTBEGIN(itag, istatus) #endif #if defined ARPCRAYPAT CALL pat_region_begin(itag, TRIM(name), istatus ) #endif END SUBROUTINE prof_region_begin !----------------------------------------- SUBROUTINE prof_region_end(itag, istatus) IMPLICIT none INTEGER, INTENT(in) :: itag INTEGER, INTENT(out):: istatus #if defined ARPVAMPIR CALL VTEND(itag, istatus) #endif #if defined ARPCRAYPAT CALL pat_region_end(itag, istatus ) #endif END SUBROUTINE prof_region_end !----------------------------------------- END MODULE profile