<p><b>dwj07@fsu.edu</b> 2012-08-23 09:11:23 -0600 (Thu, 23 Aug 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Adding timers to block version of sw core.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/omp_blocks/openmp_test/src/core_sw_blocks/mpas_sw_time_integration.F
===================================================================
--- branches/omp_blocks/openmp_test/src/core_sw_blocks/mpas_sw_time_integration.F        2012-08-22 21:53:27 UTC (rev 2114)
+++ branches/omp_blocks/openmp_test/src/core_sw_blocks/mpas_sw_time_integration.F        2012-08-23 15:11:23 UTC (rev 2115)
@@ -5,6 +5,7 @@
use mpas_configure
use mpas_constants
use mpas_dmpar
+ use mpas_timer
contains
@@ -71,6 +72,7 @@
real (kind=RKIND), dimension(4) :: rk_weights, rk_substep_weights
+ call mpas_timer_start('computations')
call mpas_setup_provis_states(domain % blocklist)
!$OMP PARALLEL DEFAULT(SHARED)
@@ -114,6 +116,7 @@
rk_substep_weights(3) = dt
rk_substep_weights(4) = 0.
+ call mpas_timer_stop('computations')
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! BEGIN RK loop
@@ -122,15 +125,18 @@
! --- update halos for diagnostic variables
+ call mpas_timer_start('communications')
call mpas_dmpar_exch_halo_field(domain % blocklist % provis % pv_edge)
if (config_h_mom_eddy_visc4 > 0.0) then
call mpas_dmpar_exch_halo_field(domain % blocklist % provis % divergence)
call mpas_dmpar_exch_halo_field(domain % blocklist % provis % vorticity)
end if
+ call mpas_timer_stop('communications')
! --- compute tendencies
+ call mpas_timer_start('computations')
block => domain % blocklist
do while (associated(block))
block_d = block
@@ -142,12 +148,16 @@
block => block % next
end do
!$OMP TASKWAIT
+ call mpas_timer_stop('computations')
! --- update halos for prognostic variables
+ call mpas_timer_start('communications')
call mpas_dmpar_exch_halo_field(domain % blocklist % tend % u)
call mpas_dmpar_exch_halo_field(domain % blocklist % tend % h)
call mpas_dmpar_exch_halo_field(domain % blocklist % tend % tracers)
+ call mpas_timer_stop('communications')
+ call mpas_timer_start('computations')
! --- compute next substep state
@@ -196,6 +206,7 @@
end do
end do
!$OMP END TASK
+ call mpas_timer_stop('computations')
block => block % next
end do
!$OMP TASKWAIT
@@ -209,6 +220,7 @@
!
! A little clean up at the end: decouple new scalar fields and compute diagnostics for new state
!
+ call mpas_timer_start('computations')
block => domain % blocklist
do while (associated(block))
block_d = block
@@ -239,6 +251,7 @@
block => block % next
end do
!$OMP TASKWAIT
+ call mpas_timer_stop('computations')
!$OMP END SINGLE
</font>
</pre>