<p><b>mpetersen@lanl.gov</b> 2012-02-17 22:11:43 -0700 (Fri, 17 Feb 2012)</p><p>BRANCH COMMIT: Move tracer boundary update in split explicit to repair boundary update problem.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/boundary/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/boundary/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-18 01:08:19 UTC (rev 1518)
+++ branches/ocean_projects/boundary/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-18 05:11:43 UTC (rev 1519)
@@ -734,9 +734,12 @@
                block % mesh % nVertLevels, block % mesh % nCells, &amp;
                block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
 
-            call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % tend % tracers % array(:,:,:), &amp;
-               block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, &amp;
-               block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+!!!!!!!!!! mrp 120217 add to test boundary update
+!            call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % tend % tracers % array(:,:,:), &amp;
+!               block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, &amp;
+!               block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+!!!!!!!!!! mrp 120217 add to test boundary update
+
             block =&gt; block % next
          end do
          call mpas_timer_stop(&quot;se halo h&quot;, timer_halo_h)
@@ -849,6 +852,23 @@
             block =&gt; block % next
          end do
 
+!!!!!!!!!! mrp 120217 add to test boundary update
+        ! 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;
+               block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+
+            block =&gt; block % next
+         end do
+         call mpas_timer_stop(&quot;se halo tracers&quot;, timer_halo_tracers)
+
+!!!!!!!!!! mrp 120217 add to test boundary update end
+
       end do  ! split_explicit_step = 1, config_n_ts_iter
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       ! END large iteration loop 

Modified: branches/ocean_projects/ztilde/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/ztilde/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-18 01:08:19 UTC (rev 1518)
+++ branches/ocean_projects/ztilde/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-18 05:11:43 UTC (rev 1519)
@@ -753,10 +753,6 @@
                block % mesh % nVertLevels, block % mesh % nCells, &amp;
                block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
 
-            call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % tend % tracers % array(:,:,:), &amp;
-               block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, &amp;
-               block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
-
            if (config_vert_grid_type.eq.'ztilde') then
 
               call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % tend % hHighFreq % array(:,:), &amp;
@@ -885,6 +881,23 @@
             block =&gt; block % next
          end do
 
+!!!!!!!!!! mrp 120217 add to test boundary update
+        ! 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;
+               block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+
+            block =&gt; block % next
+         end do
+         call mpas_timer_stop(&quot;se halo tracers&quot;, timer_halo_tracers)
+
+!!!!!!!!!! mrp 120217 add to test boundary update end
+
       end do  ! split_explicit_step = 1, config_n_ts_iter
       !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       ! END large iteration loop 

</font>
</pre>