<p><b>mpetersen@lanl.gov</b> 2012-02-17 22:15:16 -0700 (Fri, 17 Feb 2012)</p><p>TRUNK COMMIT, ocean core only: Move tracer boundary update in split explicit to repair boundary update problem.<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/mpas/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- trunk/mpas/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-18 05:11:43 UTC (rev 1519)
+++ trunk/mpas/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-18 05:15:16 UTC (rev 1520)
@@ -734,9 +734,6 @@
block % mesh % nVertLevels, block % mesh % nCells, &
block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
- call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % tend % tracers % array(:,:,:), &
- block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, &
- block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
block => block % next
end do
call mpas_timer_stop("se halo h", timer_halo_h)
@@ -849,6 +846,22 @@
block => block % next
end do
+ ! 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("se halo tracers", .false., timer_halo_tracers)
+ block => domain % blocklist
+ do while (associated(block))
+
+ call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % state % time_levs(2) % state % tracers % array(:,:,:), &
+ block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+
+ block => block % next
+ end do
+ call mpas_timer_stop("se halo tracers", timer_halo_tracers)
+
+
+
end do ! split_explicit_step = 1, config_n_ts_iter
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! END large iteration loop
</font>
</pre>