<p><b>dwj07@fsu.edu</b> 2011-11-21 15:56:15 -0700 (Mon, 21 Nov 2011)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Adding timers for split explicit time integrator.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/performance/namelist.input.ocean
===================================================================
--- branches/ocean_projects/performance/namelist.input.ocean        2011-11-18 22:49:06 UTC (rev 1204)
+++ branches/ocean_projects/performance/namelist.input.ocean        2011-11-21 22:56:15 UTC (rev 1205)
@@ -31,9 +31,6 @@
    config_n_btr_cor_iter = 2
    config_u_correction = .true.
    config_filter_btr_mode = .false.
-   config_btr_mom_decay  = .false.
-   config_btr_mom_decay_time =   3600.0
-   config_btr_mom_eddy_visc2 =   0.0
    config_btr_subcycle_loop_factor =  2
    config_SSH_from =  'avg_flux'
    config_new_btr_variables_from = 'btr_avg'

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-11-18 22:49:06 UTC (rev 1204)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_split.F        2011-11-21 22:56:15 UTC (rev 1205)
@@ -47,6 +47,10 @@
 
    public :: ocn_time_integrator_split
 
+   type (timer_node), pointer :: timer_main, timer_prep, timer_bcl_vel, timer_btr_vel, timer_diagnostic_update, timer_implicit_vmix, &amp;
+                                 timer_halo_diagnostic, timer_halo_ubtr, timer_halo_ssh, timer_halo_f, timer_halo_h, &amp; 
+                                 timer_halo_tracers, timer_halo_ubcl
+
    contains
 
 !|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
@@ -99,13 +103,14 @@
       real (kind=RKIND), dimension(:), allocatable:: A,C,uTemp, hNew
       real (kind=RKIND), dimension(:,:), allocatable:: tracersTemp
 
-      call mpas_timer_start(&quot;split_explicit_timestep&quot;)
+      call mpas_timer_start(&quot;se timestep&quot;, .false., timer_main)
 
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       !
       !  Prep variables before first iteration
       !
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+      call mpas_timer_start(&quot;se prep&quot;, .false., timer_prep)
       block =&gt; domain % blocklist
       do while (associated(block))
 
@@ -146,7 +151,7 @@
          block =&gt; block % next
       end do
 
-
+      call mpas_timer_stop(&quot;se prep&quot;, timer_prep)
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       ! BEGIN large iteration loop 
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -157,6 +162,7 @@
       do split_explicit_step = 1, config_n_ts_iter
 ! ---  update halos for diagnostic variables
 
+        call mpas_timer_start(&quot;se halo diag&quot;, .false., timer_halo_diagnostic)
         block =&gt; domain % blocklist
         do while (associated(block))
 
@@ -175,6 +181,7 @@
 
            block =&gt; block % next
         end do
+        call mpas_timer_stop(&quot;se halo diag&quot;, timer_halo_diagnostic)
 
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       !
@@ -183,6 +190,7 @@
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
       ! compute velocity tendencies, T(u*,w*,p*)
+      call mpas_timer_start(&quot;se bcl vel&quot;, .false., timer_bcl_vel)
 
       block =&gt; domain % blocklist
       do while (associated(block))
@@ -264,16 +272,20 @@
            block =&gt; block % next
          end do
 
-        block =&gt; domain % blocklist
-        do while (associated(block))
-           call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % state % time_levs(2) % state % uBcl % array(:,:), &amp;
+         call mpas_timer_start(&quot;se halo ubcl&quot;, .false., timer_halo_ubcl)
+         block =&gt; domain % blocklist
+         do while (associated(block))
+            call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % state % time_levs(2) % state % uBcl % array(:,:), &amp;
                                             block % mesh % nVertLevels, block % mesh % nEdges, &amp;
                                             block % parinfo % edgesToSend, block % parinfo % edgesToRecv)
 
-           block =&gt; block % next
-        end do
+            block =&gt; block % next
+         end do
+         call mpas_timer_stop(&quot;se halo ubcl&quot;, timer_halo_ubcl)
 
       enddo  ! do j=1,config_n_bcl_iter
+
+      call mpas_timer_stop(&quot;se bcl vel&quot;, timer_bcl_vel)
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       ! END baroclinic iterations on linear Coriolis term
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -285,6 +297,8 @@
       !
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+      call mpas_timer_start(&quot;se btr vel&quot;, .false., timer_btr_vel)
+
       oldBtrSubcycleTime = 1
       newBtrSubcycleTime = 2
 
@@ -394,6 +408,7 @@
 
 
             !   boundary update on uBtrNew
+            call mpas_timer_start(&quot;se halo ubtr&quot;, .false., timer_halo_ubtr)
             block =&gt; domain % blocklist
             do while (associated(block))
 
@@ -404,6 +419,7 @@
 
                block =&gt; block % next
             end do  ! block
+            call mpas_timer_stop(&quot;se halo ubtr&quot;, timer_halo_ubtr)
 
           endif ! config_btr_gam1_uWt1&gt;1.0e-12
 
@@ -468,6 +484,7 @@
             end do  ! block
 
             !   boundary update on SSHnew
+            call mpas_timer_start(&quot;se halo ssh&quot;, .false., timer_halo_ssh)
             block =&gt; domain % blocklist
             do while (associated(block))
 
@@ -480,6 +497,7 @@
 
                block =&gt; block % next
             end do  ! block
+            call mpas_timer_stop(&quot;se halo ssh&quot;, timer_halo_ssh)
 
 
             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -543,6 +561,7 @@
 
 
             !   boundary update on uBtrNew
+            call mpas_timer_start(&quot;se halo ubtr&quot;, .false., timer_halo_ubtr)
             block =&gt; domain % blocklist
             do while (associated(block))
 
@@ -553,6 +572,7 @@
 
                block =&gt; block % next
             end do  ! block
+            call mpas_timer_stop(&quot;se halo ubtr&quot;, timer_halo_ubtr)
 
        end do !do BtrCorIter=1,config_n_btr_cor_iter
 
@@ -612,6 +632,7 @@
             end do  ! block
 
             !   boundary update on SSHnew
+            call mpas_timer_start(&quot;se halo ssh&quot;, .false., timer_halo_ssh)
             block =&gt; domain % blocklist
             do while (associated(block))
 
@@ -622,6 +643,7 @@
 
                block =&gt; block % next
             end do  ! block
+            call mpas_timer_stop(&quot;se halo ssh&quot;, timer_halo_ssh)
 
         endif ! config_btr_solve_SSH2
 
@@ -696,6 +718,7 @@
 
 
             ! boundary update on F
+            call mpas_timer_start(&quot;se halo F&quot;, .false., timer_halo_f)
             block =&gt; domain % blocklist
             do while (associated(block))
 
@@ -706,6 +729,7 @@
 
                block =&gt; block % next
             end do  ! block
+            call mpas_timer_stop(&quot;se halo F&quot;, timer_halo_f)
 
 
             ! Check that you can compute SSH using the total sum or the individual increments
@@ -828,6 +852,7 @@
 
 
       endif ! split_explicit
+      call mpas_timer_stop(&quot;se btr vel&quot;, timer_btr_vel)
 
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       !
@@ -851,6 +876,7 @@
 
         ! update halo for thicknes for unsplit only
         if (trim(config_time_integration) == 'unsplit_explicit') then
+            call mpas_timer_start(&quot;se halo h&quot;, .false., timer_halo_h)
            block =&gt; domain % blocklist
            do while (associated(block))
               call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % tend % h % array(:,:), &amp;
@@ -858,6 +884,7 @@
                                                block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
               block =&gt; block % next
            end do
+           call mpas_timer_stop(&quot;se halo h&quot;, timer_halo_h)
         endif ! unsplit_explicit
 
 
@@ -968,6 +995,7 @@
         ! Boundary update on tracers.  This is placed here, rather than 
         ! on tend % tracers as in RK4, because I needed to update 
         ! afterwards for the del4 diffusion operator.
+        call mpas_timer_start(&quot;se halo tracers&quot;, .false., timer_halo_tracers)
         block =&gt; domain % blocklist
         do while (associated(block))
            call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % state % time_levs(2) % state % tracers % array(:,:,:), &amp;
@@ -975,6 +1003,7 @@
                                             block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
            block =&gt; block % next
         end do
+        call mpas_timer_stop(&quot;se halo tracers&quot;, timer_halo_tracers)
 
 
          if (split_explicit_step &lt; config_n_ts_iter) then
@@ -1136,7 +1165,7 @@
 
          block =&gt; block % next
       end do
-      call mpas_timer_stop(&quot;split_explicit_timestep&quot;)
+      call mpas_timer_stop(&quot;se timestep&quot;, timer_main)
 
    end subroutine ocn_time_integrator_split!}}}
 

</font>
</pre>