<p><b>dwj07@fsu.edu</b> 2011-10-03 11:04:59 -0600 (Mon, 03 Oct 2011)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Setting up basic timers. Need to add specific ones later.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -99,8 +99,6 @@
if(.not.eosOn) return
- call timer_start("ocn_equation_of_state_rho")
-
tracers => s % tracers % array
indexT = s % index_temperature
indexS = s % index_salinity
@@ -122,8 +120,6 @@
endif
- call timer_stop("ocn_equation_of_state_rho")
-
end subroutine ocn_equation_of_state_rho!}}}
!***********************************************************************
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state_jm.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state_jm.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state_jm.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -194,8 +194,6 @@
err = 0
- call timer_start("equation_of_state_jm")
-
nCells = grid % nCells
maxLevelCell => grid % maxLevelCell % array
nVertLevels = grid % nVertLevels
@@ -309,8 +307,6 @@
deallocate(pRefEOS,p,p2)
- call timer_stop("equation_of_state_jm")
-
end subroutine ocn_equation_of_state_jm_rho!}}}
!***********************************************************************
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state_linear.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -87,8 +87,6 @@
integer :: nCells, iCell, k
type (dm_info) :: dminfo
- call timer_start("ocn_equation_of_state_linear")
-
maxLevelCell => grid % maxLevelCell % array
nCells = grid % nCells
@@ -103,8 +101,6 @@
end do
end do
- call timer_stop("ocn_equation_of_state_linear")
-
end subroutine ocn_equation_of_state_linear_rho!}}}
!***********************************************************************
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_mpas_core.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_mpas_core.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -293,9 +293,9 @@
call MPAS_getTime(curr_time=currTime, dateTimeString=timeStamp, ierr=ierr)
write(0,*) 'Doing timestep ', timeStamp
- call timer_start("time integration")
+ call timer_start("mpas_timestep")
call mpas_timestep(domain, itimestep, dt, timeStamp)
- call timer_stop("time integration")
+ call timer_stop("mpas_timestep")
! Move time level 2 fields back into time level 1 for next time step
call shift_time_levels_state(domain % blocklist % state)
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tendency.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tendency.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -131,8 +131,6 @@
real (kind=RKIND), allocatable, dimension(:,:) :: delsq_u
real (kind=RKIND), allocatable, dimension(:,:) :: delsq_circulation, delsq_vorticity
- call timer_start("ocn_tend_h")
-
h => s % h % array
u => s % u % array
v => s % v % array
@@ -192,22 +190,13 @@
!
! for z-level, only compute height tendency for top layer.
- call timer_start("ocn_tend_h-horiz adv")
-
call ocn_thick_hadv_tend(grid, u, h_edge, tend_h, err)
- call timer_stop("ocn_tend_h-horiz adv")
-
!
! height tendency: vertical advection term -d/dz(hw)
!
! Vertical advection computed for top layer of a z grid only.
- call timer_start("ocn_tend_h-vert adv")
-
call ocn_thick_vadv_tend(grid, wtop, tend_h, err)
-
- call timer_stop("ocn_tend_h-vert adv")
- call timer_stop("ocn_tend_h")
end subroutine ocn_tend_h!}}}
@@ -274,8 +263,6 @@
real (kind=RKIND), dimension(:,:), pointer :: u_src
real (kind=RKIND), parameter :: rho_ref = 1000.0
- call timer_start("ocn_tend_u")
-
h => s % h % array
u => s % u % array
v => s % v % array
@@ -338,68 +325,43 @@
! velocity tendency: nonlinear Coriolis term and grad of kinetic energy
!
- call timer_start("ocn_tend_u-coriolis")
-
call ocn_vel_coriolis_tend(grid, pv_edge, h_edge, u, ke, tend_u, err)
- call timer_stop("ocn_tend_u-coriolis")
-
!
! velocity tendency: vertical advection term -w du/dz
!
- call timer_start("ocn_tend_u-vert adv")
-
call ocn_vel_vadv_tend(grid, u, wtop, tend_u, err)
- call timer_stop("ocn_tend_u-vert adv")
-
!
! velocity tendency: pressure gradient
!
- call timer_start("ocn_tend_u-pressure grad")
-
if (config_vert_grid_type.eq.'isopycnal') then
call ocn_vel_pressure_grad_tend(grid, MontPot, tend_u, err)
elseif (config_vert_grid_type.eq.'zlevel') then
call ocn_vel_pressure_grad_tend(grid, pressure, tend_u, err)
end if
- call timer_stop("ocn_tend_u-pressure grad")
-
!
! velocity tendency: del2 dissipation, </font>
<font color="black">u_2 </font>
<font color="black">abla^2 u
! computed as </font>
<font color="black">u( </font>
<font color="black">abla divergence + k \times </font>
<font color="gray">abla vorticity )
! strictly only valid for config_h_mom_eddy_visc2 == constant
!
- call timer_start("ocn_tend_u-horiz mix")
-
call ocn_vel_hmix_tend(grid, divergence, vorticity, tend_u, err)
- call timer_stop("ocn_tend_u-horiz mix")
-
!
! velocity tendency: forcing and bottom drag
!
! mrp 101115 note: in order to include flux boundary conditions, we will need to
! know the bottom edge with nonzero velocity and place the drag there.
- call timer_start("ocn_tend_u-forcings")
-
call ocn_vel_forcing_tend(grid, u, u_src, ke_edge, h_edge, tend_u, err)
- call timer_stop("ocn_tend_u-forcings")
-
!
! velocity tendency: vertical mixing d/dz( nu_v du/dz))
!
if (.not.config_implicit_vertical_mix) then
- call timer_start("ocn_tend_u-explicit vert mix")
-
call ocn_vel_vmix_tend_explicit(grid, u, h_edge, vertvisctopofedge, tend_u, err)
-
- call timer_stop("ocn_tend_u-explicit vert mix")
endif
- call timer_stop("ocn_tend_u")
end subroutine ocn_tend_u!}}}
@@ -465,8 +427,6 @@
integer :: index_temperature, index_salinity, rrr
real (kind=RKIND), dimension(:), pointer :: temperatureRestore, salinityRestore
- call timer_start("ocn_tend_scalar")
-
u => s % u % array
h => s % h % array
boundaryCell=> grid % boundaryCell % array
@@ -515,32 +475,19 @@
! and then change maxLevelEdgeTop to maxLevelEdgeBot in the following section.
! tracer_edge at the boundary will also need to be defined for flux boundaries.
- call timer_start("ocn_tend_scalar-horiz adv")
-
call ocn_tracer_hadv_tend(grid, u, h_edge, tracers, tend_tr, err)
- call timer_stop("ocn_tend_scalar-horiz adv")
-
-
!
! tracer tendency: vertical advection term -d/dz( h \phi w)
!
- call timer_start("ocn_tend_scalar-vert adv")
-
call ocn_tracer_vadv_tend(grid, wtop, tracers, tend_tr, err)
- call timer_stop("ocn_tend_scalar-vert adv")
-
!
! tracer tendency: del2 horizontal tracer diffusion, div(h \kappa_2 </font>
<font color="gray">abla \phi)
!
- call timer_start("ocn_tend_scalar-horiz diff")
-
call ocn_tracer_hmix_tend(grid, h_edge, tracers, tend_tr, err)
- call timer_stop("ocn_tend_scalar-horiz diff")
-
! mrp 110516 printing
!print *, 'tend_tr 1',minval(tend_tr(3,1,1:nCells)),&
! maxval(tend_tr(3,1,1:nCells))
@@ -552,11 +499,7 @@
! tracer tendency: vertical diffusion h d/dz( \kappa_v d\phi/dz)
!
if (.not.config_implicit_vertical_mix) then
- call timer_start("ocn_tend_scalar-explicit vert diff")
-
call ocn_tracer_vmix_tend_explicit(grid, h, vertdifftopofcell, tracers, tend_tr, err)
-
- call timer_stop("ocn_tend_scalar-explicit vert diff")
endif
! mrp 110516 printing
@@ -567,14 +510,9 @@
!
! add restoring to T and S in top model layer
!
- call timer_start("ocn_tend_scalar-restoring")
-
call ocn_restoring_tend(grid, h, s%index_temperature, s%index_salinity, tracers, tend_tr, err)
- call timer_stop("ocn_tend_scalar-restoring")
-
10 format(2i8,10e20.10)
- call timer_stop("ocn_tend_scalar")
end subroutine ocn_tend_scalar!}}}
@@ -637,8 +575,6 @@
real (kind=RKIND) :: coef_3rd_order
real (kind=RKIND) :: r, h1, h2
- call timer_start("ocn_diagnostic_solve")
-
h => s % h % array
u => s % u % array
v => s % v % array
@@ -702,16 +638,11 @@
! mrp 110516 efficiency note: For z-level, only do this on level 1. h_edge for all
! lower levels is defined by hZlevel.
-
- call timer_start("ocn_diagnostic_solve-hEdge")
-
coef_3rd_order = 0.
if (config_thickness_adv_order == 3) coef_3rd_order = 1.0
if (config_thickness_adv_order == 3 .and. config_monotonic) coef_3rd_order = 0.25
if (config_thickness_adv_order == 2) then
- call timer_start("ocn_diagnostic_solve-hEdge 2")
-
do iEdge=1,nEdges
cell1 = cellsOnEdge(1,iEdge)
cell2 = cellsOnEdge(2,iEdge)
@@ -719,11 +650,7 @@
h_edge(k,iEdge) = 0.5 * (h(k,cell1) + h(k,cell2))
end do
end do
- call timer_stop("ocn_diagnostic_solve-hEdge 2")
-
else if (config_thickness_adv_order == 3) then
- call timer_start("ocn_diagnostic_solve-hEdge 3")
-
do iEdge=1,nEdges
cell1 = cellsOnEdge(1,iEdge)
cell2 = cellsOnEdge(2,iEdge)
@@ -769,11 +696,7 @@
end do ! do k
end do ! do iEdge
-
- call timer_stop("ocn_diagnostic_solve-hEdge 3")
else if (config_thickness_adv_order == 4) then
- call timer_start("ocn_diagnostic_solve-hEdge 4")
-
do iEdge=1,nEdges
cell1 = cellsOnEdge(1,iEdge)
cell2 = cellsOnEdge(2,iEdge)
@@ -809,10 +732,7 @@
end do ! do k
end do ! do iEdge
-
- call timer_stop("ocn_diagnostic_solve-hEdge 4")
endif ! if(config_thickness_adv_order == 2)
- call timer_stop("ocn_diagnostic_solve-hEdge")
!
! set the velocity and height at dummy address
@@ -1070,8 +990,6 @@
call ocn_wtop(s,grid)
- call timer_stop("ocn_diagnostic_solve")
-
end subroutine ocn_diagnostic_solve!}}}
!***********************************************************************
@@ -1121,8 +1039,6 @@
maxLevelCell, maxLevelEdgeTop, maxLevelEdgeBot, &
maxLevelVertexBot, maxLevelVertexTop
- call timer_start("wTop")
-
u => s % u % array
wTop => s % wTop % array
@@ -1176,8 +1092,6 @@
endif
- call timer_stop("wTop")
-
end subroutine ocn_wtop!}}}
!***********************************************************************
@@ -1241,8 +1155,6 @@
real (kind=RKIND), dimension(:,:), pointer :: u_src
real (kind=RKIND), parameter :: rho_ref = 1000.0
- call timer_start("ocn_fuperp")
-
h => s % h % array
u => s % u % array
uBcl => s % uBcl % array
@@ -1305,8 +1217,6 @@
end do
end do
- call timer_stop("ocn_fuperp")
-
end subroutine ocn_fuperp!}}}
!***********************************************************************
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -112,6 +112,8 @@
integer, intent(out) :: err
+ err = 0
+
rk4On = .false.
splitOn = .false.
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_rk4.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_rk4.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -93,7 +93,10 @@
real (kind=RKIND), dimension(:), allocatable:: A,C,uTemp
real (kind=RKIND), dimension(:,:), allocatable:: tracersTemp
+ call timer_start("rk4 timestep")
+ call timer_start("rk4 initialize")
+
block => domain % blocklist
call allocate_state(provis, &
block % mesh % nCells, block % mesh % nEdges, block % mesh % maxEdges, block % mesh % maxEdges2, &
@@ -133,14 +136,17 @@
rk_substep_weights(4) = 0.
- call timer_start("RK4-main loop")
+ call timer_stop("rk4 initialize")
+
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! BEGIN RK loop
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ call timer_start("rk4 main loop")
do rk_step = 1, 4
! --- update halos for diagnostic variables
- call timer_start("RK4-diagnostic halo update")
+ call timer_start("rk4 diag halo update")
block => domain % blocklist
do while (associated(block))
call dmpar_exch_halo_field2dReal(domain % dminfo, provis % pv_edge % array(:,:), &
@@ -158,18 +164,25 @@
block => block % next
end do
- call timer_stop("RK4-diagnostic halo update")
+ call timer_stop("rk4 diag halo update")
! --- compute tendencies
- call timer_start("RK4-tendency computations")
+ call timer_start("rk4 tendencies")
block => domain % blocklist
do while (associated(block))
if (.not.config_implicit_vertical_mix) then
+ call timer_start("explicit vmix coefs")
call ocn_vmix_coefs(block % mesh, provis, block % diagnostics, err)
+ call timer_stop("explicit vmix coefs")
end if
+ call timer_start("rk4 h tend")
call ocn_tend_h(block % tend, provis, block % diagnostics, block % mesh)
+ call timer_stop("rk4 h tend")
+
+ call timer_start("rk4 u tend")
call ocn_tend_u(block % tend, provis, block % diagnostics, block % mesh)
+ call timer_stop("rk4 u tend")
! mrp 110718 filter btr mode out of u_tend
! still got h perturbations with just this alone. Try to set uBtr=0 after full u computation
@@ -177,15 +190,20 @@
call filter_btr_mode_tend_u(block % tend, provis, block % diagnostics, block % mesh)
endif
+ call timer_start("rk4 tracer tend")
call ocn_tend_scalar(block % tend, provis, block % diagnostics, block % mesh)
+ call timer_stop("rk4 tracer tend")
+
+ call timer_start("rk4 bdry edge")
call enforce_boundaryEdge(block % tend, block % mesh)
+ call timer_stop("rk4 bdry edge")
block => block % next
end do
- call timer_stop("RK4-tendency computations")
+ call timer_stop("rk4 tendencies")
! --- update halos for prognostic variables
- call timer_start("RK4-pronostic halo update")
+ call timer_start("rk4 prog halo update")
block => domain % blocklist
do while (associated(block))
call dmpar_exch_halo_field2dReal(domain % dminfo, block % tend % u % array(:,:), &
@@ -199,12 +217,12 @@
block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
block => block % next
end do
- call timer_stop("RK4-pronostic halo update")
+ call timer_stop("rk4 prog halo update")
! --- compute next substep state
- call timer_start("RK4-update diagnostic variables")
if (rk_step < 4) then
+ call timer_start("rk4 next substep")
block => domain % blocklist
do while (associated(block))
@@ -227,18 +245,18 @@
provis % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
end if
+ call timer_start("rk4 diag update")
call ocn_diagnostic_solve(dt, provis, block % mesh)
+ call timer_stop("rk4 diag update")
block => block % next
end do
+ call timer_stop("rk4 next substep")
end if
- call timer_stop("RK4-update diagnostic variables")
-
-
!--- accumulate update (for RK4)
- call timer_start("RK4-RK4 accumulate update")
+ call timer_start("rk4 accumulate")
block => domain % blocklist
do while (associated(block))
block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(2) % state % u % array(:,:) &
@@ -257,18 +275,18 @@
block => block % next
end do
- call timer_stop("RK4-RK4 accumulate update")
+ call timer_stop("rk4 accumulate")
end do
+ call timer_stop("rk4 main loop")
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! END RK loop
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- call timer_stop("RK4-main loop")
!
! A little clean up at the end: decouple new scalar fields and compute diagnostics for new state
!
- call timer_start("RK4-cleaup phase")
+ call timer_start("rk4 finalize")
block => domain % blocklist
do while (associated(block))
@@ -294,16 +312,20 @@
end do
if (config_implicit_vertical_mix) then
- call timer_start("RK4-implicit vert mix")
+ call timer_start("implicit vmix")
allocate(A(nVertLevels),C(nVertLevels),uTemp(nVertLevels), &
tracersTemp(num_tracers,nVertLevels))
+ call timer_start("implicit vmix - coefs")
call ocn_vmix_coefs(block % mesh, block % state % time_levs(2) % state, block % diagnostics, err)
+ call timer_stop("implicit vmix - coefs")
!
! Implicit vertical solve for momentum
!
+ call timer_start("implicit vmix - vel")
call ocn_vel_vmix_tend_implicit(block % mesh, dt, ke_edge, vertvisctopofedge, h, h_edge, u, err)
+ call timer_stop("implicit vmix - vel")
! mrp 110718 filter btr mode out of u
if (config_rk_filter_btr_mode) then
@@ -315,12 +337,13 @@
! Implicit vertical solve for tracers
!
+ call timer_start("implicit vmix - tracers")
call ocn_tracer_vmix_tend_implicit(block % mesh, dt, vertdifftopofcell, h, tracers, err)
+ call timer_stop("implicit vmix - tracers")
end if
! mrp 110725 momentum decay term
if (config_mom_decay) then
- call timer_start("RK4-momentum decay")
!
! Implicit solve for momentum decay
@@ -337,7 +360,6 @@
end do
end do
- call timer_stop("RK4-momentum decay")
end if
@@ -345,16 +367,21 @@
block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
end if
+ call timer_start("implicit vmix - diag solve")
call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
+ call timer_stop("implicit vmix - diag solve")
call reconstruct(block % state % time_levs(2) % state, block % mesh)
block => block % next
+ call timer_stop("implicit vmix")
end do
- call timer_stop("RK4-cleaup phase")
call deallocate_state(provis)
+ call timer_stop("rk4 finalize")
+ call timer_stop("rk4 timestep")
+
end subroutine ocn_time_integrator_rk4!}}}
subroutine filter_btr_mode_tend_u(tend, s, d, grid)!{{{
@@ -406,7 +433,6 @@
real (kind=RKIND), dimension(:,:), pointer :: u_src
real (kind=RKIND), parameter :: rho_ref = 1000.0
- call timer_start("filter_btr_mode_tend_u")
h => s % h % array
u => s % u % array
@@ -478,8 +504,6 @@
enddo ! iEdge
- call timer_stop("filter_btr_mode_tend_u")
-
end subroutine filter_btr_mode_tend_u!}}}
subroutine filter_btr_mode_u(s, grid)!{{{
@@ -529,7 +553,6 @@
real (kind=RKIND), dimension(:,:), pointer :: u_src
real (kind=RKIND), parameter :: rho_ref = 1000.0
- call timer_start("filter_btr_mode_u")
h => s % h % array
u => s % u % array
@@ -597,8 +620,6 @@
enddo ! iEdge
- call timer_stop("filter_btr_mode_u")
-
end subroutine filter_btr_mode_u!}}}
subroutine enforce_boundaryEdge(tend, grid)!{{{
@@ -621,7 +642,6 @@
integer :: nCells, nEdges, nVertices, nVertLevels
integer :: iEdge, k
- call timer_start("enforce_boundaryEdge")
nCells = grid % nCells
nEdges = grid % nEdges
@@ -642,7 +662,6 @@
enddo
enddo
- call timer_stop("enforce_boundaryEdge")
end subroutine enforce_boundaryEdge!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_split.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_split.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -99,8 +99,6 @@
real (kind=RKIND), dimension(:), allocatable:: A,C,uTemp, hNew
real (kind=RKIND), dimension(:,:), allocatable:: tracersTemp
- call timer_start("split_explicit_timestep")
-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!
! Prep variables before first iteration
@@ -1141,8 +1139,6 @@
block => block % next
end do
- call timer_stop("split_explicit_timestep")
-
end subroutine ocn_time_integrator_split!}}}
subroutine filter_btr_mode_tend_u(tend, s, d, grid)!{{{
@@ -1194,8 +1190,6 @@
real (kind=RKIND), dimension(:,:), pointer :: u_src
real (kind=RKIND), parameter :: rho_ref = 1000.0
- call timer_start("filter_btr_mode_tend_u")
-
h => s % h % array
u => s % u % array
v => s % v % array
@@ -1266,8 +1260,6 @@
enddo ! iEdge
- call timer_stop("filter_btr_mode_tend_u")
-
end subroutine filter_btr_mode_tend_u!}}}
subroutine filter_btr_mode_u(s, grid)!{{{
@@ -1317,8 +1309,6 @@
real (kind=RKIND), dimension(:,:), pointer :: u_src
real (kind=RKIND), parameter :: rho_ref = 1000.0
- call timer_start("filter_btr_mode_u")
-
h => s % h % array
u => s % u % array
v => s % v % array
@@ -1385,8 +1375,6 @@
enddo ! iEdge
- call timer_stop("filter_btr_mode_u")
-
end subroutine filter_btr_mode_u!}}}
subroutine enforce_boundaryEdge(tend, grid)!{{{
@@ -1409,8 +1397,6 @@
integer :: nCells, nEdges, nVertices, nVertLevels
integer :: iEdge, k
- call timer_start("enforce_boundaryEdge")
-
nCells = grid % nCells
nEdges = grid % nEdges
nVertices = grid % nVertices
@@ -1430,7 +1416,6 @@
enddo
enddo
- call timer_stop("enforce_boundaryEdge")
end subroutine enforce_boundaryEdge!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv2.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv2.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -127,8 +127,6 @@
if(.not.hadv2On) return
- call timer_start("compute_scalar_tend-horiz adv 2")
-
nEdges = grid % nEdges
maxLevelEdgeTop => grid % maxLevelEdgeTop % array
cellsOnEdge => grid % cellsOnEdge % array
@@ -149,7 +147,6 @@
end do
end do
- call timer_stop("compute_scalar_tend-horiz adv 2")
!--------------------------------------------------------------------
end subroutine ocn_tracer_hadv2_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv3.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv3.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv3.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -142,7 +142,6 @@
areaCell => grid % areaCell % array
deriv_two => grid % deriv_two % array
- call timer_start("compute_scalar_tend-horiz adv 3")
do iEdge=1,nEdges
cell1 = cellsOnEdge(1,iEdge)
cell2 = cellsOnEdge(2,iEdge)
@@ -194,7 +193,6 @@
enddo
end do
end do
- call timer_stop("compute_scalar_tend-horiz adv 3")
!--------------------------------------------------------------------
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv4.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv4.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -139,8 +139,6 @@
areaCell => grid % areaCell % array
deriv_two => grid % deriv_two % array
- call timer_start("compute_scalar_tend-horiz adv 4")
-
do iEdge=1,nEdges
cell1 = cellsOnEdge(1,iEdge)
cell2 = cellsOnEdge(2,iEdge)
@@ -182,7 +180,6 @@
enddo
end do
end do
- call timer_stop("compute_scalar_tend-horiz adv 4")
!--------------------------------------------------------------------
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -134,8 +134,6 @@
if (.not.del2On) return
- call timer_start("compute_scalar_tend-horiz diff 2")
-
nEdges = grid % nEdges
nVertLevels = grid % nVertLevels
num_tracers = size(tracers, dim=1)
@@ -179,7 +177,6 @@
end do
deallocate(boundaryMask)
- call timer_stop("compute_scalar_tend-horiz diff 2")
!--------------------------------------------------------------------
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -135,8 +135,6 @@
if (.not.Del4On) return
- call timer_start("compute_scalar_tend-horiz diff 4")
-
nEdges = grid % nEdges
nCells = grid % nCells
num_tracers = size(tracers, dim=1)
@@ -212,7 +210,6 @@
end do
deallocate(delsq_tracer)
- call timer_stop("compute_scalar_tend-horiz diff 4")
!--------------------------------------------------------------------
end subroutine ocn_tracer_hmix_del4_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -125,8 +125,6 @@
if(.not.spline2On) return
! Compute tracerTop using linear interpolation.
- call timer_start("compute_scalar_tend-vert adv spline 2")
-
nCells = grid % nCells
nCellsSolve = grid % nCellsSolve
nVertLevels = grid % nVertLevels
@@ -161,8 +159,6 @@
end do
deallocate(tracerTop)
-
- call timer_stop("compute_scalar_tend-vert adv spline 2")
!--------------------------------------------------------------------
end subroutine ocn_tracer_vadv_spline2_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -129,8 +129,6 @@
if(.not.spline3On) return
! Compute tracerTop using linear interpolation.
- call timer_start("compute_scalar_tend-vert adv spline 3")
-
nCells = grid % nCells
nCellsSolve = grid % nCellsSolve
nVertLevels = grid % nVertLevels
@@ -190,8 +188,6 @@
deallocate(tracer2ndDer)
deallocate(tracersIn,tracersOut, posZMidZLevel, posZTopZLevel)
deallocate(tracerTop)
-
- call timer_stop("compute_scalar_tend-vert adv spline 3")
!--------------------------------------------------------------------
end subroutine ocn_tracer_vadv_spline3_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -124,9 +124,6 @@
if(.not. stencil2On) return
-
- call timer_start("compute_scalar_tend-vert adv stencil 2")
-
nCells = grid % nCells
nCellsSolve = grid % nCellsSolve
num_tracers = size(tracers, 1)
@@ -158,8 +155,6 @@
end do
deallocate(tracerTop)
- call timer_stop("compute_scalar_tend-vert adv stencil 2")
-
!--------------------------------------------------------------------
end subroutine ocn_tracer_vadv_stencil2_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -134,8 +134,6 @@
hRatioZLevelK => grid % hRatioZLevelK % array
hRatioZLevelKm1 => grid % hRatioZLevelKm1 % array
- call timer_start("compute_scalar_tend-vert adv stencil 3")
-
allocate(tracerTop(num_tracers,nVertLevels+1,nCells))
! Compute tracerTop using 3rd order stencil. This is the same
@@ -181,8 +179,6 @@
end do
deallocate(tracerTop)
- call timer_stop("compute_scalar_tend-vert adv stencil 3")
-
!--------------------------------------------------------------------
end subroutine ocn_tracer_vadv_stencil3_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -126,8 +126,6 @@
if(.not. Stencil4On) return
- call timer_start("compute_scalar_tend-vert adv stencil 4")
-
nCells = grid % nCells
nCellsSolve = grid % nCellsSolve
num_tracers = size(tracers, 1)
@@ -176,8 +174,6 @@
end do
deallocate(tracerTop)
- call timer_stop("compute_scalar_tend-vert adv stencil 4")
-
!--------------------------------------------------------------------
end subroutine ocn_tracer_vadv_stencil4_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -131,8 +131,6 @@
err = 0
if(.not.hmixDel2On) return
-
- call timer_start("compute_tend_u-horiz mix-del2")
nEdgesSolve = grid % nEdgesSolve
maxLevelEdgeTop => grid % maxLevelEdgeTop % array
@@ -165,8 +163,6 @@
end do
end do
- call timer_stop("compute_tend_u-horiz mix-del2")
-
!--------------------------------------------------------------------
end subroutine ocn_vel_hmix_del2_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -134,8 +134,6 @@
if(.not.hmixDel4On) return
- call timer_start("compute_tend-horiz mix-del4")
-
nCells = grid % nCells
nEdges = grid % nEdges
nVertices = grid % nVertices
@@ -242,9 +240,6 @@
deallocate(delsq_u)
deallocate(delsq_circulation)
deallocate(delsq_vorticity)
-
- call timer_stop("compute_tend-horiz mix-del4")
-
!--------------------------------------------------------------------
end subroutine ocn_vel_hmix_del4_tend!}}}
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -199,8 +199,6 @@
if(implicitOn) return
- call timer_start("compute_tend_u-explicit vert mix")
-
nEdgessolve = grid % nEdgesSolve
nVertLevels = grid % nVertLevels
maxLevelEdgeTop => grid % maxLevelEdgeTop % array
@@ -224,8 +222,6 @@
end do
deallocate(fluxVertTop)
- call timer_stop("compute_tend_u-explicit vert mix")
-
!--------------------------------------------------------------------
end subroutine ocn_vel_vmix_tend_explicit!}}}
@@ -418,8 +414,6 @@
if(implicitOn) return
- call timer_start("compute_scalar_tend-explicit vert diff")
-
nCellsSolve = grid % nCellsSolve
nVertLevels = grid % nVertLevels
num_tracers = size(tracers, dim=1)
@@ -455,8 +449,6 @@
enddo ! iCell loop
deallocate(fluxVertTop)
- call timer_stop("compute_scalar_tend-explicit vert diff")
-
!--------------------------------------------------------------------
end subroutine ocn_tracer_vmix_tend_explicit!}}}
@@ -637,8 +629,6 @@
real (KIND=RKIND) :: m
integer i
- call timer_start("tridiagonal_solve")
-
! Use work variables for b and r
bTemp(1) = b(1)
rTemp(1) = r(1)
@@ -656,8 +646,6 @@
x(i) = (rTemp(i) - c(i)*x(i+1))/bTemp(i)
end do
- call timer_stop("tridiagonal_solve")
-
end subroutine tridiagonal_solve!}}}
subroutine tridiagonal_solve_mult(a,b,c,r,x,n,nDim,nSystems)!{{{
@@ -684,8 +672,6 @@
real (KIND=RKIND) :: m
integer i,j
- call timer_start("tridiagonal_solve_mult")
-
! Use work variables for b and r
bTemp(1) = b(1)
do j = 1,nSystems
@@ -711,8 +697,6 @@
end do
end do
- call timer_stop("tridiagonal_solve_mult")
-
end subroutine tridiagonal_solve_mult!}}}
!***********************************************************************
Modified: branches/ocean_projects/performance/src/driver/module_mpas_subdriver.F
===================================================================
--- branches/ocean_projects/performance/src/driver/module_mpas_subdriver.F        2011-09-30 23:01:16 UTC (rev 1051)
+++ branches/ocean_projects/performance/src/driver/module_mpas_subdriver.F        2011-10-03 17:04:59 UTC (rev 1052)
@@ -22,24 +22,19 @@
call timer_start("total time")
call timer_start("initialize")
-
!
! Initialize infrastructure
!
call mpas_framework_init(dminfo, domain)
-
call input_state_for_domain(domain)
-
!
! Initialize core
!
call mpas_core_init(domain, timeStamp)
- call timer_stop("initialize")
-
!
! Set up output streams to be written to by the MPAS core
!
@@ -51,15 +46,17 @@
call output_state_init(output_obj, domain, "OUTPUT")
end if
-
+ call timer_stop("initialize")
end subroutine mpas_init
subroutine mpas_run()
implicit none
+ call timer_start("run")
call mpas_core_run(domain, output_obj, output_frame)
+ call timer_stop("run")
end subroutine mpas_run
@@ -68,6 +65,8 @@
implicit none
+ call timer_start("finalize")
+
!
! Finalize output streams
!
@@ -79,6 +78,7 @@
!
call mpas_core_finalize(domain)
+ call timer_stop("finalize")
call timer_stop("total time")
call timer_write()
</font>
</pre>