<p><b>dwj07@fsu.edu</b> 2012-01-26 12:42:12 -0700 (Thu, 26 Jan 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Adding namelist section debug with options to turn off tendency terms.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/advection_routines/namelist.input.ocean
===================================================================
--- branches/ocean_projects/advection_routines/namelist.input.ocean        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/namelist.input.ocean        2012-01-26 19:42:12 UTC (rev 1426)
@@ -90,3 +90,5 @@
    config_restoreT_timescale = 90.0
    config_restoreS_timescale = 90.0
 /
+&amp;debug
+/

Modified: branches/ocean_projects/advection_routines/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/Registry        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/Registry        2012-01-26 19:42:12 UTC (rev 1426)
@@ -3,14 +3,16 @@
 %
 namelist integer   sw_model config_test_case           5
 namelist character sw_model config_time_integration    RK4
-namelist logical   sw_model config_rk_filter_btr_mode  false
+namelist logical   sw_model config_rk_filter_btr_mode  .false.
 namelist real      sw_model config_dt                  172.8
 namelist integer   sw_model config_calendar_type       MPAS_360DAY
 namelist character sw_model config_start_time          0000-01-01_00:00:00
 namelist character sw_model config_stop_time           none
 namelist character sw_model config_run_duration        none
 namelist integer   sw_model config_stats_interval      100
-namelist logical   sw_model config_initial_stats       false
+namelist logical   sw_model config_initial_stats       .false.
+namelist logical   sw_model config_prescribe_velocities .false.
+namelist logical   sw_model config_prescribe_thickness .false.
 namelist character io       config_input_name          grid.nc
 namelist character io       config_output_name         output.nc
 namelist character io       config_restart_name        restart.nc
@@ -77,6 +79,23 @@
 namelist logical   restore   config_restoreTS           false
 namelist real      restore   config_restoreT_timescale  90.0
 namelist real      restore   config_restoreS_timescale  90.0
+namelist logical   debug     config_thick_hadv_off                .false.
+namelist logical   debug     config_thick_vadv_off                .false.
+namelist logical   debug     config_tracer_hadv_off     .false.
+namelist logical   debug     config_tracer_vadv_off     .false.
+namelist logical   debug     config_tracer_hmix2_off     .false.
+namelist logical   debug     config_tracer_hmix4_off     .false.
+namelist logical   debug     config_tracer_vmix_off                .false.
+namelist logical   debug     config_vel_coriolis_off        .false.
+namelist logical   debug     config_vel_bottomdrag_off        .false.
+namelist logical   debug     config_vel_windstress_off        .false.
+namelist logical   debug     config_vel_rayleigh_off        .false.
+namelist logical   debug     config_vel_hmix2_off                .false.
+namelist logical   debug     config_vel_hmix4_off                .false.
+namelist logical   debug     config_vel_pressuregrad_off .false.
+namelist logical   debug     config_vel_vadv_off                .false.
+namelist logical   debug     config_vel_vmix_off                .false.
+namelist logical   debug     config_restoring_off                .false.
 
 %
 % dim  type  name_in_file  name_in_code
@@ -195,7 +214,7 @@
 var persistent real    salinityRestore ( nCells ) 0 ir salinityRestore mesh - -
 
 % Prognostic variables: read from input, saved in restart, and written to output
-var persistent real    u ( nVertLevels nEdges Time ) 2 ir u state - -
+var persistent real    u ( nVertLevels nEdges Time ) 2 iro u state - -
 var persistent real    h ( nVertLevels nCells Time ) 2 ir h state - -
 var persistent real    rho ( nVertLevels nCells Time ) 2 iro rho state - -
 var persistent real    temperature ( nVertLevels nCells Time ) 2 iro temperature state tracers dynamics

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_restoring.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_restoring.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_restoring.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -168,6 +168,10 @@
           salinityTimeScale = config_restoreS_timescale
       endif
 
+      if(config_restoring_off) then
+          restoringOn = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_restoring_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tendency.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tendency.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -357,21 +357,21 @@
       ! and then change maxLevelEdgeTop to maxLevelEdgeBot in the following section.
       ! tracer_edge at the boundary will also need to be defined for flux boundaries.
 
-      call mpas_timer_start(&quot;adv&quot;, .false., tracerHadvTimer)
-      call mpas_tracer_advection_tend(tracers, uh, wTop, hMeanTopZLevel, hRatioZLevelKm1, hRatioZLevelK, grid, tend_tr)
-      call mpas_timer_stop(&quot;adv&quot;, tracerHadvTimer)
-!     call mpas_timer_start(&quot;hadv&quot;, .false., tracerHadvTimer)
-!     call ocn_tracer_hadv_tend(grid, u, h_edge, tracers, tend_tr, err)
-!     call mpas_timer_stop(&quot;hadv&quot;, tracerHadvTimer)
+!     call mpas_timer_start(&quot;adv&quot;, .false., tracerHadvTimer)
+!     call mpas_tracer_advection_tend(tracers, uh, wTop, hMeanTopZLevel, hRatioZLevelKm1, hRatioZLevelK, grid, tend_tr)
+!     call mpas_timer_stop(&quot;adv&quot;, tracerHadvTimer)
+      call mpas_timer_start(&quot;hadv&quot;, .false., tracerHadvTimer)
+      call ocn_tracer_hadv_tend(grid, u, h_edge, tracers, tend_tr, err)
+      call mpas_timer_stop(&quot;hadv&quot;, tracerHadvTimer)
 
 
       !
       ! tracer tendency: vertical advection term -d/dz( h \phi w)
       !
 
-!     call mpas_timer_start(&quot;vadv&quot;, .false., tracerVadvTimer)
-!     call ocn_tracer_vadv_tend(grid, wtop, tracers, tend_tr, err)
-!     call mpas_timer_stop(&quot;vadv&quot;, tracerVadvTimer)
+      call mpas_timer_start(&quot;vadv&quot;, .false., tracerVadvTimer)
+      call ocn_tracer_vadv_tend(grid, wtop, tracers, tend_tr, err)
+      call mpas_timer_stop(&quot;vadv&quot;, tracerVadvTimer)
 
       !
       ! tracer tendency: del2 horizontal tracer diffusion, div(h \kappa_2 </font>
<font color="gray">abla \phi)
@@ -534,6 +534,8 @@
       ! mrp 110516 efficiency note: For z-level, only do this on level 1.  h_edge for all
       ! lower levels is defined by hZlevel.
 
+      h_edge = -1e34
+
 !     coef_3rd_order = 0.
 !     if (config_thickness_adv_order == 3) coef_3rd_order = 1.0
 !     if (config_thickness_adv_order == 3 .and. config_monotonic) coef_3rd_order = 0.25

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_thick_hadv.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_thick_hadv.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_thick_hadv.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -42,7 +42,9 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: thickHadvOn
 
+
 !***********************************************************************
 
 contains
@@ -120,6 +122,8 @@
 
       err = 0
 
+      if(.not.thickHadvOn) return
+
       nEdges = grid % nEdges
       nCells = grid % nCells
       nVertLevels = grid % nVertLevels
@@ -197,6 +201,12 @@
 
       err = 0
 
+      thickHadvOn = .true.
+
+      if(config_thick_hadv_off) then
+        thickHadvOn = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_thick_hadv_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_thick_vadv.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_thick_vadv.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_thick_vadv.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -42,7 +42,9 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: thickVadvOn
 
+
 !***********************************************************************
 
 contains
@@ -110,6 +112,8 @@
 
       err = 0
 
+      if(.not.thickVadvOn) return
+
       nCells = grid % nCells
 
       ! dwj 10/25/2011 - Need to explore isopycnal vs zlevel flags
@@ -152,6 +156,12 @@
       
       err = 0
 
+      thickVadvOn = .true.
+
+      if(config_thick_vadv_off) then
+          thickVadvOn = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_thick_vadv_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_time_integration_rk4.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -224,10 +224,15 @@
                  end do
 
               end do
-              if (config_test_case == 1) then    ! For case 1, wind field should be fixed
+
+              if (config_prescribe_velocities) then
                  provis % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
               end if
 
+              if (config_prescribe_thickness) then
+                 provis % h % array(:,:) = block % state % time_levs(1) % state % h % array(:,:)
+              end if
+
               call ocn_diagnostic_solve(dt, provis, block % mesh)
 
               block =&gt; block % next
@@ -320,10 +325,14 @@
             call mpas_timer_stop(&quot;RK4-implicit vert mix&quot;)
          end if
 
-         if (config_test_case == 1) then    ! For case 1, wind field should be fixed
+         if (config_prescribe_velocities) then
             block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
          end if
 
+         if (config_prescribe_thickness) then
+            block % state % time_levs(2) % state % h % array(:,:) = block % state % time_levs(1) % state % h % array(:,:)
+         end if
+
          call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
 
          call mpas_reconstruct(block % mesh, block % state % time_levs(2) % state % u % array,          &amp;

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_time_integration_split.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_time_integration_split.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -1013,10 +1013,14 @@
           call ocn_tracer_vmix_tend_implicit(block % mesh, dt, vertdifftopofcell, h, tracers, err)
         end if
 
-        if (config_test_case == 1) then    ! For case 1, wind field should be fixed
+        if (config_prescribe_velocities) then
           block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
         end if
 
+        if(config_prescribe_thickness) then
+          block % state % time_levs(2) % state % h % array(:,:) = block % state % time_levs(1) % state % h % array(:,:)
+        end if
+
         call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
 
         call mpas_reconstruct(block % mesh, block % state % time_levs(2) % state % u % array,          &amp;

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -47,6 +47,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: tracerHadvOn
    type (timer_node), pointer :: hadv2Timer, hadv3Timer, hadv4Timer
 
 
@@ -125,6 +126,10 @@
       !
       !-----------------------------------------------------------------
 
+      err = 0
+
+      if(.not.tracerHadvOn) return
+
       call mpas_timer_start(&quot;hadv2&quot;, .false., hadv2Timer);
       call ocn_tracer_hadv2_tend(grid, u, h_edge, tracers, tend, err1)
       call mpas_timer_stop(&quot;hadv2&quot;, hadv2Timer);
@@ -177,6 +182,12 @@
 
       err = ior(err1, ior(err2, err3))
 
+      tracerHadvOn = .true.
+
+      if(config_tracer_hadv_off) then
+          tracerHadvOn = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_tracer_hadv_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv2.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv2.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv2.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -144,6 +144,7 @@
             do iTracer=1,num_tracers
                tracer_edge = 0.5 * (tracers(iTracer,k,cell1) + tracers(iTracer,k,cell2))
                flux = r_tmp * tracer_edge
+
                tend(iTracer,k,cell1) = tend(iTracer,k,cell1) - flux * invAreaCell1
                tend(iTracer,k,cell2) = tend(iTracer,k,cell2) + flux * invAreaCell2
             end do

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv4.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv4.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hadv4.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -109,7 +109,7 @@
                  boundaryMask
 
       integer, dimension(:), pointer :: maxLevelEdgeTop, nEdgesOnCell
-      integer, dimension(:,:), pointer :: cellsOnEdge, cellsOnCell, cellMask
+      integer, dimension(:,:), pointer :: cellsOnEdge, cellsOnCell, cellMask, edgeMask
 
       real (kind=RKIND) :: flux, tracer_edge, d2fdx2_cell1, d2fdx2_cell2, invAreaCell1, invAreaCell2
 
@@ -131,8 +131,9 @@
       nEdges = grid % nEdges
       num_tracers = size(tracers, dim=1)
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
-      nEdgesOnCell = grid % nEdgesOnCell % array
+      nEdgesOnCell =&gt; grid % nEdgesOnCell % array
       cellMask =&gt; grid % cellMask % array
+      edgeMask =&gt; grid % edgeMask % array
       cellsOnEdge =&gt; grid % cellsOnEdge % array
       cellsOnCell =&gt; grid % cellsOnCell % array
       dvEdge =&gt; grid % dvEdge % array
@@ -153,6 +154,7 @@
             d2fdx2_cell2 = 0.0
 
             boundaryMask = abs(transfer(cellMask(k,cell1) == 1 .and. cellMask(k, cell2) == 1, boundaryMask))
+!           boundaryMask = edgeMask(k, iEdge)
 
             do iTracer=1,num_tracers
                d2fdx2_cell1 = deriv_two(1,1,iEdge) * tracers(iTracer,k,cell1) * boundaryMask

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hmix_del2.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -209,6 +209,10 @@
           eddyDiff2 = config_h_tracer_eddy_diff2
       endif
 
+      if(config_tracer_hmix2_off) then
+          del2On = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_tracer_hmix_del2_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hmix_del4.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -239,6 +239,10 @@
           eddyDiff4 = config_h_tracer_eddy_diff4
       endif
 
+      if(config_tracer_hmix4_off) then
+          del4On = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_tracer_hmix_del4_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_vadv.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_vadv.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_tracer_vadv.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -174,6 +174,10 @@
           err = ior(err1, err2)
       endif
 
+      if(config_tracer_vadv_off) then
+        vadvOn = .false.
+      endif
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_tracer_vadv_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_coriolis.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_coriolis.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_coriolis.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -43,7 +43,9 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: coriolisOn
 
+
 !***********************************************************************
 
 contains
@@ -116,6 +118,8 @@
 
       err = 0
 
+      if(.not.coriolisOn) return
+
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
       nEdgesOnEdge =&gt; grid % nEdgesOnEdge % array
       cellsOnEdge =&gt; grid % cellsOnEdge % array
@@ -181,6 +185,12 @@
 
       err = 0
 
+      coriolisOn = .true.
+
+      if(config_vel_coriolis_off) then
+        coriolisOn = .false.
+      endif
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_coriolis_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -181,6 +181,10 @@
           bottomDragCoef = config_bottom_drag_coeff
       endif
 
+      if(config_vel_bottomdrag_off) then
+          bottomDragOn = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_forcing_bottomdrag_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_rayleigh.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_rayleigh.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_rayleigh.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -161,6 +161,7 @@
 
       err = 0
 
+      rayleighFrictionOn = .false.
       rayleighDampingCoef = 0.0
 
       if (config_rayleigh_friction) then
@@ -168,6 +169,10 @@
           rayleighDampingCoef = config_rayleigh_damping_coeff
       endif
 
+      if(config_vel_rayleigh_off) then
+          rayleighFrictionOn = .false.
+      endif
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_forcing_rayleigh_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_windstress.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -172,6 +172,10 @@
       windStressOn = .true.
       rho_ref = 1000.0
 
+      if(config_vel_windstress_off) then
+          windStressOn = .false.
+      end if
+
       err = 0
 
    !--------------------------------------------------------------------

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_hmix_del2.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -210,7 +210,11 @@
       endif
    endif
 
+   if(config_vel_hmix2_off) then
+       hmixDel2On = .false.
+   endif
 
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_hmix_del2_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_hmix_del4.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -252,9 +252,12 @@
       else
          viscVortCoef = 0.0
       endif
-
    endif
 
+   if(config_vel_hmix4_off) then
+       hmixDel4On = .false.
+   end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_hmix_del4_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_pressure_grad.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_pressure_grad.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_pressure_grad.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -43,6 +43,7 @@
    !
    !--------------------------------------------------------------------
 
+   logical :: pressureGradOn
    real (kind=RKIND) :: rho0Inv
 
 
@@ -110,6 +111,8 @@
 
       err = 0
 
+      if(.not.pressureGradOn) return
+
       nEdgesSolve = grid % nEdgesSolve
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
       cellsOnEdge =&gt; grid % cellsOnEdge % array
@@ -170,12 +173,18 @@
 
       err = 0
 
+      pressureGradOn = .true.
+
       if (config_vert_grid_type.eq.'isopycnal') then
         rho0Inv = 1.0
       elseif (config_vert_grid_type.eq.'zlevel') then
         rho0Inv = 1.0/config_rho0
       end if
 
+      if(config_vel_pressuregrad_off) then
+          pressureGradOn = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_pressure_grad_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_vadv.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_vadv.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vel_vadv.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -183,6 +183,10 @@
           velVadvOn = .true.
       end if
 
+      if(config_vel_vadv_off) then
+          velVadvOn = .false.
+      end if
+
    !--------------------------------------------------------------------
 
    end subroutine ocn_vel_vadv_init!}}}

Modified: branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vmix.F
===================================================================
--- branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vmix.F        2012-01-26 03:08:30 UTC (rev 1425)
+++ branches/ocean_projects/advection_routines/src/core_ocean/mpas_ocn_vmix.F        2012-01-26 19:42:12 UTC (rev 1426)
@@ -56,6 +56,7 @@
    !--------------------------------------------------------------------
 
    logical :: explicitOn, implicitOn
+   logical :: tracerVmixOn, velVmixOn
 
 !***********************************************************************
 
@@ -199,6 +200,7 @@
       err = 0
 
       if(implicitOn) return
+      if(.not.velVmixOn) return
 
       nEdgessolve = grid % nEdgesSolve
       nVertLevels = grid % nVertLevels
@@ -300,6 +302,7 @@
       err = 0
 
       if(explicitOn) return
+      if(.not.velVmixOn) return
 
       nEdges = grid % nEdges
       nVertLevels = grid % nVertLevels
@@ -415,6 +418,7 @@
       err = 0
 
       if(implicitOn) return
+      if(.not.tracerVmixOn) return
 
       nCellsSolve = grid % nCellsSolve
       nVertLevels = grid % nVertLevels
@@ -521,6 +525,7 @@
       err = 0
 
       if(explicitOn) return
+      if(.not.tracerVmixOn) return
 
       nCells = grid % nCells
       nVertLevels = grid % nVertLevels
@@ -573,7 +578,6 @@
 !
 !-----------------------------------------------------------------------
 
-
    subroutine ocn_vmix_init(err)!{{{
 
    !--------------------------------------------------------------------
@@ -592,12 +596,22 @@
 
       explicitOn = .true.
       implicitOn = .false.
+      velVmixOn = .true.
+      tracerVmixOn = .true.
 
       if(config_implicit_vertical_mix) then
           explicitOn = .false.
           implicitOn = .true.
       end if
 
+      if(config_vel_vmix_off) then
+          velVmixOn = .false.
+      end if
+
+      if(config_tracer_vmix_off) then
+          tracerVmixOn = .false.
+      end if
+
       call ocn_vmix_coefs_const_init(err1)
       call ocn_vmix_coefs_tanh_init(err2)
       call ocn_vmix_coefs_rich_init(err3)

</font>
</pre>