<p><b>duda</b> 2012-07-19 15:53:22 -0600 (Thu, 19 Jul 2012)</p><p>BRANCH COMMIT<br>
<br>
Move some halo exchanges outside a routine that is called in a block loop;<br>
no effect on cold-start results.<br>
<br>
<br>
M    src/core_nhyd_atmos/mpas_atm_mpas_core.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/omp_blocks/multiple_blocks/src/core_nhyd_atmos/mpas_atm_mpas_core.F
===================================================================
--- branches/omp_blocks/multiple_blocks/src/core_nhyd_atmos/mpas_atm_mpas_core.F        2012-07-19 20:41:47 UTC (rev 2037)
+++ branches/omp_blocks/multiple_blocks/src/core_nhyd_atmos/mpas_atm_mpas_core.F        2012-07-19 21:53:22 UTC (rev 2038)
@@ -46,6 +46,8 @@
 
       call atm_simulation_clock_init(domain, dt, startTimeStamp)
 
+      call mpas_dmpar_exch_halo_field(domain % blocklist % state % time_levs(1) % state % u)
+
       block =&gt; domain % blocklist
       do while (associated(block))
          call atm_mpas_init_block(domain % dminfo, block, block % mesh, dt)
@@ -53,6 +55,10 @@
          block =&gt; block % next
       end do
 
+      call mpas_dmpar_exch_halo_field(domain % blocklist % diag % pv_edge)
+      call mpas_dmpar_exch_halo_field(domain % blocklist % diag % ru)
+      call mpas_dmpar_exch_halo_field(domain % blocklist % diag % rw)
+
       current_outfile_frames = 0
 
       if (config_sfc_update_interval /= &quot;none&quot;) then
@@ -160,20 +166,12 @@
       type (block_type), intent(inout) :: block
       type (mesh_type), intent(inout) :: mesh
       real (kind=RKIND), intent(in) :: dt
-
-      call mpas_dmpar_exch_halo_field(block % state % time_levs(1) % state % u)
    
       if (.not. config_do_restart .or. (config_do_restart .and. config_do_DAcycling)) then
          call atm_init_coupled_diagnostics( block % state % time_levs(1) % state, block % diag, mesh)
       end if
       call atm_compute_solve_diagnostics(dt, block % state % time_levs(1) % state, block % diag, mesh)
 
-      call mpas_dmpar_exch_halo_field(block % diag % pv_edge)
-
-      call mpas_dmpar_exch_halo_field(block % diag % ru)
-
-      call mpas_dmpar_exch_halo_field(block % diag % rw)
-
       call mpas_rbf_interp_initialize(mesh)
       call mpas_init_reconstruct(mesh)
       call mpas_reconstruct(mesh, block % state % time_levs(1) % state % u % array, &amp;

</font>
</pre>