<p><b>mpetersen@lanl.gov</b> 2012-03-26 13:48:50 -0600 (Mon, 26 Mar 2012)</p><p>Added uTransport to unsplit_explicit timestepping.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_mpas_core.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_mpas_core.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -248,20 +248,11 @@
       call ocn_diagnostic_solve(dt, block % state % time_levs(1) % state, mesh)
       call mpas_timer_stop(&quot;diagnostic solve&quot;, initDiagSolveTimer)
 
-! mrp 120323 add:
-         ! Apply the GM closure as a bolus velocity
-         if (config_h_kappa .GE. epsilon(0D0)) then
-             call ocn_gm_compute_uBolus(block % state % time_levs(1) % state, block % mesh)
-         else
-            ! mrp efficiency note: if uBolusGM is guaranteed to be zero, this can be removed.
-            block % state % time_levs(1) % state % uBolusGM % array(:,:) = 0.0
-         end if
+      ! Compute velocity transport, used in advection terms of h and tracer tendancy
+        block % state % time_levs(1) % state % uTransport % array(:,:) &amp;
+      = block % state % time_levs(1) % state % u % array(:,:) &amp;
+      + block % state % time_levs(1) % state % uBolusGM % array(:,:)
 
-            block % state % time_levs(1) % state % uTransport % array(:,:) &amp;
-          = block % state % time_levs(1) % state % u % array(:,:) &amp;
-          + block % state % time_levs(1) % state % uBolusGM % array(:,:)
-! mrp 120323 end
-
       call ocn_wtop(block % state % time_levs(1) % state,block % state % time_levs(1) % state, mesh)
 
       call ocn_compute_mesh_scaling(mesh)

Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_tendency.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_tendency.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -839,22 +839,14 @@
 
       end do
 
-! mrp 120323 remove:
-!      ! Applications of any bolus-like parametrizations should be made after the next line.
-!      uTransport(:,:) = u(:,:)
-!      ! Apply the GM closure as a bolus velocity
-!      if(config_h_kappa .GE. epsilon(0D0)) then
-!         call ocn_gm_compute_uBolus(s,grid)
-!         uTransport(:,:) = uTransport(:,:) + uBolusGM(:,:)
-!      end if
-! mrp 120323 end
-
+      !
       ! Apply the GM closure as a bolus velocity
+      !
       if (config_h_kappa .GE. epsilon(0D0)) then
          call ocn_gm_compute_uBolus(s,grid)
       else
-        ! mrp efficiency note: if uBolusGM is guaranteed to be zero, this can be removed.
-        uBolusGM(:,:) = 0.0
+         ! mrp efficiency note: if uBolusGM is guaranteed to be zero, this can be removed.
+         uBolusGM = 0.0
       end if
 
    end subroutine ocn_diagnostic_solve!}}}

Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -241,9 +241,10 @@
 
               call ocn_diagnostic_solve(dt, provis, block % mesh)
 
-! mrp 120323 add:
-              provis % uTransport % array(:,:) = provis % u % array(:,:) + provis % uBolusGM % array(:,:)
-! mrp 120323 end
+              ! Compute velocity transport, used in advection terms of h and tracer tendancy
+                 provis % uTransport % array(:,:) &amp;
+               = provis % u          % array(:,:) &amp;
+               + provis % uBolusGM   % array(:,:)
 
               block =&gt; block % next
            end do
@@ -347,11 +348,10 @@
 
          call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
 
-! mrp 120323 add:
+         ! Compute velocity transport, used in advection terms of h and tracer tendancy
             block % state % time_levs(2) % state % uTransport % array(:,:) &amp;
           = block % state % time_levs(2) % state % u % array(:,:) &amp;
           + block % state % time_levs(2) % state % uBolusGM % array(:,:)
-! mrp 120323 end
 
          call mpas_reconstruct(block % mesh, block % state % time_levs(2) % state % u % array,          &amp;
                           block % state % time_levs(2) % state % uReconstructX % array,            &amp;

Modified: branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_split.F        2012-03-26 17:07:56 UTC (rev 1722)
+++ branches/ocean_projects/gmvar/src/core_ocean/mpas_ocn_time_integration_split.F        2012-03-26 19:48:50 UTC (rev 1723)
@@ -312,6 +312,23 @@
 
                block % state % time_levs(2) % state % u % array(:,:)  = block % state % time_levs(2) % state % uBcl % array(:,:) 
 
+               do iEdge=1,block % mesh % nEdges
+                  do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
+
+                     ! uTranport = uBcl + uBolus 
+                     ! This is u used in advective terms for h and tracers 
+                     ! in tendancy calls in stage 3.
+                       block % state % time_levs(2) % state % uTransport % array(k,iEdge) &amp;
+                     = block % mesh % edgeMask % array(k,iEdge) &amp;
+                     *(  block % state % time_levs(2) % state % uBcl       % array(k,iEdge) &amp;
+                       + block % state % time_levs(1) % state % uBolusGM   % array(k,iEdge) )
+
+                  enddo
+                  do k=block % mesh % maxLevelEdgeTop % array(iEdge)+1,block % mesh % nVertLevels
+                     block % state % time_levs(2) % state % uTransport % array(k,iEdge) = 0.0
+                  end do
+               end do  ! iEdge
+   
                block =&gt; block % next
             end do  ! block
 

</font>
</pre>