<p><b>mpetersen@lanl.gov</b> 2012-06-06 10:32:21 -0600 (Wed, 06 Jun 2012)</p><p>BRANCH COMMIT: Bug fix.  A boundary update is required on the velocity and tracer fields in RK4 after implicit vertical mixing.  Otherwise, it leads to lack of volume conservation.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/vol_cons_RK_imp_mix/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/vol_cons_RK_imp_mix/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-06-06 15:18:54 UTC (rev 1965)
+++ branches/ocean_projects/vol_cons_RK_imp_mix/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-06-06 16:32:21 UTC (rev 1966)
@@ -316,6 +316,22 @@
             call mpas_timer_stop(&quot;RK4-implicit vert mix&quot;)
          end if
 
+         block =&gt; block % next
+      end do
+
+      ! Update halo on u and tracers, which weres just updated for implicit vertical mixing.  If not done, 
+      ! this leads to lack of volume conservation.  It is required because halo updates in RK4 are only
+      ! conducted on tendencies, not on the velocity and tracer fields.  So this update is required to 
+      ! communicate the change due to implicit vertical mixing across the boundary.
+
+      if (config_implicit_vertical_mix) then
+         call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(2) % state % u)
+         call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(2) % state % tracers)
+      end if
+
+      block =&gt; domain % blocklist
+      do while (associated(block))
+
          if (config_test_case == 1) then    ! For case 1, wind field should be fixed
             block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
          end if

</font>
</pre>