<p><b>mpetersen@lanl.gov</b> 2011-08-18 17:07:37 -0600 (Thu, 18 Aug 2011)</p><p>Added flag to turn off vorticity part of del2 and del4 operators.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/timesplitting_mrp/namelist.input.ocean
===================================================================
--- branches/ocean_projects/timesplitting_mrp/namelist.input.ocean        2011-08-18 22:46:58 UTC (rev 948)
+++ branches/ocean_projects/timesplitting_mrp/namelist.input.ocean        2011-08-18 23:07:37 UTC (rev 949)
@@ -35,6 +35,7 @@
 &amp;hmix
    config_h_mom_eddy_visc2 = 1.0e5
    config_h_mom_eddy_visc4 = 0.0
+   config_visc_vorticity_term = .true.
    config_h_tracer_eddy_diff2 = 1.0e4
    config_h_tracer_eddy_diff4 = 0.0
    config_mom_decay      = .false.

Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-08-18 22:46:58 UTC (rev 948)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-08-18 23:07:37 UTC (rev 949)
@@ -32,6 +32,7 @@
 namelist logical   sw_model config_h_ScaleWithMesh     false
 namelist real      hmix     config_h_mom_eddy_visc2     0.0
 namelist real      hmix     config_h_mom_eddy_visc4     0.0
+namelist logical   hmix     config_visc_vorticity_term true
 namelist real      hmix     config_h_tracer_eddy_diff2  0.0
 namelist real      hmix     config_h_tracer_eddy_diff4  0.0
 namelist real      hmix     config_apvm_upwinding       0.5

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-08-18 22:46:58 UTC (rev 948)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-08-18 23:07:37 UTC (rev 949)
@@ -835,8 +835,12 @@
                block =&gt; block % next
             end do  ! block
 
-! mrp 110801
-! compute btr_divergence and btr_vorticity for del2(u_btr) 
+! mrp 110801 begin
+! This whole section, bounded by 'mrp 110801', may be deleted later if it is found
+! that barotropic del2 is not useful.
+            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+            ! Barotropic subcycle: compute btr_divergence and btr_vorticity for del2(u_btr) 
+            !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
             block =&gt; domain % blocklist
             do while (associated(block))
       block % state % time_levs(1) % state % u_diffusionBtr % array(:) = 0.0
@@ -907,14 +911,9 @@
       end if
                block =&gt; block % next
             end do  ! block
+! mrp 110801 end
 
 
-
-
-
-
-
-
             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
             ! Barotropic subcycle: Final solve for velocity.  Iterate for Coriolis term.
             !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -1680,7 +1679,7 @@
 
       integer :: nCells, nEdges, nVertices, nVertLevels, nEdgesSolve
       real (kind=RKIND) :: flux, vorticity_abs, h_vertex, workpv, q, &amp;
-        upstream_bias, wTopEdge, rho0Inv, r
+        upstream_bias, wTopEdge, rho0Inv, r, visc_vorticity_coef
       real (kind=RKIND), dimension(:), pointer :: &amp;
         h_s, fVertex, fEdge, dvEdge, dcEdge, areaCell, areaTriangle, &amp;
         zMidZLevel, zTopZLevel, meshScalingDel2, meshScalingDel4
@@ -1848,6 +1847,12 @@
       !   computed as </font>
<font color="black">u( </font>
<font color="black">abla divergence + k \times </font>
<font color="gray">abla vorticity )
       !   strictly only valid for config_h_mom_eddy_visc2 == constant
       !
+      if (config_visc_vorticity_term) then
+         visc_vorticity_coef = 1.0
+      else
+         visc_vorticity_coef = 0.0
+      endif
+         
       if ( config_h_mom_eddy_visc2 &gt; 0.0 ) then
          do iEdge=1,grid % nEdgesSolve
             cell1 = cellsOnEdge(1,iEdge)
@@ -1861,13 +1866,10 @@
                ! is - </font>
<font color="black">abla vorticity pointing from vertex 2 to vertex 1, or equivalently 
                !    + k \times </font>
<font color="gray">abla vorticity pointing from cell1 to cell2.
 
-! mrp 110816 orig
-!               u_diffusion = ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
-!                            -( vorticity(k,vertex2) - vorticity(k,vertex1) ) / dvEdge(iEdge)
-! mrp 110816 remove vorticity
-               u_diffusion = ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge) ! &amp;
-!                            -( vorticity(k,vertex2) - vorticity(k,vertex1) ) / dvEdge(iEdge)
-! mrp 110816 end
+               u_diffusion = ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
+                             -visc_vorticity_coef &amp;
+                             *( vorticity(k,vertex2) - vorticity(k,vertex1) ) / dvEdge(iEdge)
+
                u_diffusion = meshScalingDel2(iEdge) * config_h_mom_eddy_visc2 * u_diffusion
 
                tend_u(k,iEdge) = tend_u(k,iEdge) + u_diffusion
@@ -1900,15 +1902,10 @@
 
             do k=1,maxLevelEdgeTop(iEdge)
 
-! mrp 110816 orig
-!               delsq_u(k,iEdge) = &amp; 
-!                  ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
-!                 -( vorticity(k,vertex2) - vorticity(k,vertex1)) / dvEdge(iEdge)
-! mrp 110816 remove vort
                delsq_u(k,iEdge) = &amp; 
-                  ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge) ! &amp;
-!                 -( vorticity(k,vertex2) - vorticity(k,vertex1)) / dvEdge(iEdge)
-! mrp 110816 end
+                  ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
+                  -visc_vorticity_coef &amp;
+                  *( vorticity(k,vertex2) - vorticity(k,vertex1)) / dvEdge(iEdge)
 
             end do
          end do
@@ -1964,17 +1961,11 @@
                   ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
                  -( vorticity(k,vertex2) - vorticity(k,vertex1)) / dvEdge(iEdge)
 
-! mrp 110816 orig
-!               u_diffusion = (  delsq_divergence(k,cell2) &amp;
-!                              - delsq_divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
-!                            -(  delsq_vorticity(k,vertex2) &amp;
-!                              - delsq_vorticity(k,vertex1) ) / dvEdge(iEdge)
-! mrp 110816 remove vort
                u_diffusion = (  delsq_divergence(k,cell2) &amp;
-                              - delsq_divergence(k,cell1) ) / dcEdge(iEdge) ! &amp;
-!                            -(  delsq_vorticity(k,vertex2) &amp;
-!                              - delsq_vorticity(k,vertex1) ) / dvEdge(iEdge)
-! mrp 110816 end
+                              - delsq_divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
+                            -visc_vorticity_coef &amp;
+                            *(  delsq_vorticity(k,vertex2) &amp;
+                              - delsq_vorticity(k,vertex1) ) / dvEdge(iEdge)
 
                u_diffusion = meshScalingDel4(iEdge) * config_h_mom_eddy_visc4 * u_diffusion
  

</font>
</pre>