<p><b>mpetersen@lanl.gov</b> 2011-06-07 14:36:07 -0600 (Tue, 07 Jun 2011)</p><p>Fixed error in u computation at end of Higdon method.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F        2011-06-07 19:04:07 UTC (rev 880)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F        2011-06-07 20:36:07 UTC (rev 881)
@@ -83,9 +83,8 @@
       call compute_mesh_scaling(mesh)
  
       call rbfInterp_initialize(mesh)
-! mrp temp
-!      call init_reconstruct(mesh)
-!      call reconstruct(block % state % time_levs(1) % state, mesh)
+      call init_reconstruct(mesh)
+      call reconstruct(block % state % time_levs(1) % state, mesh)
 
       ! initialize velocities and tracers on land to be -1e34
       ! The reconstructed velocity on land will have values not exactly
@@ -148,9 +147,10 @@
       ! Eventually, dt should be domain specific
       dt = config_dt
       ntimesteps = config_ntimesteps

+! mrp temp remove first output frame  
+!      call write_output_frame(output_obj, output_frame, domain)
    
-      call write_output_frame(output_obj, output_frame, domain)
-   
       ! During integration, time level 1 stores the model state at the beginning of the
       !   time step, and time level 2 stores the state advanced dt in time by timestep(...)
       do itimestep = 1,ntimesteps

Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-06-07 19:04:07 UTC (rev 880)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-06-07 20:36:07 UTC (rev 881)
@@ -1234,12 +1234,27 @@
          ! u_{n+1} = uBtr_{n+1} + 2*uBcl_{n+1/2} - uBcl_n
 
          do iEdge=1,block % mesh % nEdges
-               block % state % time_levs(2) % state % u % array(:,iEdge) &amp; 
+            do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
+               block % state % time_levs(2) % state % u % array(k,iEdge) &amp; 
             =  block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &amp;
-            +2*block % state % time_levs(2) % state % uBcl % array(:,iEdge) &amp;
-            -  block % state % time_levs(1) % state % uBcl % array(:,iEdge)
-         end do
+            +2*block % state % time_levs(2) % state % uBcl % array(k,iEdge) &amp;
+            -  block % state % time_levs(1) % state % uBcl % array(k,iEdge)
+            enddo
+            ! mrp 110607 zero out velocity below land edges. efficiency: this may not be required.
+            do k=block % mesh % maxLevelEdgeTop % array(iEdge) + 1, block % mesh % nVertLevels
+               block % state % time_levs(2) % state % u % array(k,iEdge) = 0.0
+            enddo
 
+         enddo ! iEdges
+
+
+!         do iEdge=1,block % mesh % nEdges
+!               block % state % time_levs(2) % state % u % array(:,iEdge) &amp; 
+!            =  block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iEdge) &amp;
+!            +2*block % state % time_levs(2) % state % uBcl % array(:,iEdge) &amp;
+!            -  block % state % time_levs(1) % state % uBcl % array(:,iEdge)
+!         end do
+
         if (trim(config_time_integration) == 'higdon_split') then
          do iCell=1,block % mesh % nCells
          ! SSH for the next step is from the end of the barotropic subcycle.
@@ -1260,16 +1275,6 @@
          end do ! iCell
        end if ! higdon_split
  
-         do iCell=1,block % mesh % nCells
-            do k=1,block % mesh % maxLevelCell % array(iCell)
-               block % state % time_levs(2) % state % u % array(k,iCell) &amp; 
-            =  block % state % time_levs(oldBtrSubcycleTime) % state % uBtrSubcycle % array(iCell) &amp;
-            +2*block % state % time_levs(2) % state % uBcl % array(k,iCell) &amp;
-            -  block % state % time_levs(1) % state % uBcl % array(k,iCell)
-            enddo
-
-         enddo ! iCell
-
          u           =&gt; block % state % time_levs(2) % state % u % array
          tracers     =&gt; block % state % time_levs(2) % state % tracers % array
          h           =&gt; block % state % time_levs(2) % state % h % array
@@ -1366,8 +1371,7 @@
 
          call compute_solve_diagnostics(dt, block % state % time_levs(2) % state, block % mesh)
 
-! mrp temp
-!         call reconstruct(block % state % time_levs(2) % state, block % mesh)
+         call reconstruct(block % state % time_levs(2) % state, block % mesh)
 
          block =&gt; block % next
       end do

</font>
</pre>