<p><b>dwj07@fsu.edu</b> 2012-01-13 13:11:08 -0700 (Fri, 13 Jan 2012)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Changing module on/off flags from integers to logicals.<br>
<br>
        Also, cleaning up mpas_ocn_tracer_hmix_del4.F<br>
</p><hr noshade><pre><font color="gray">
Property changes on: branches/ocean_projects/performance/src/core_ocean
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/cam_mpas_nh/src/core_ocean:1260-1270
/branches/ocean_projects/imp_vert_mix_mrp/src/core_ocean:754-986
/branches/ocean_projects/rayleigh/src/core_ocean:1298-1311
/branches/ocean_projects/split_explicit_mrp/src/core_ocean:1133-1175
/branches/ocean_projects/split_explicit_timestepping/src/core_ocean:1044-1097
/branches/ocean_projects/time_averaging/src/core_ocean:1271-1305
/branches/ocean_projects/vert_adv_mrp/src/core_ocean:704-745
/branches/source_renaming/src/core_ocean:1082-1113
/branches/time_manager/src/core_ocean:924-962
/trunk/mpas/src/core_ocean:1109-1336
   + /branches/cam_mpas_nh/src/core_ocean:1260-1270
/branches/ocean_projects/ale_vert_coord/src/core_ocean:1224-1357
/branches/ocean_projects/imp_vert_mix_mrp/src/core_ocean:754-986
/branches/ocean_projects/rayleigh/src/core_ocean:1298-1311
/branches/ocean_projects/split_explicit_mrp/src/core_ocean:1133-1175
/branches/ocean_projects/split_explicit_timestepping/src/core_ocean:1044-1097
/branches/ocean_projects/time_averaging/src/core_ocean:1271-1305
/branches/ocean_projects/vert_adv_mrp/src/core_ocean:704-745
/branches/source_renaming/src/core_ocean:1082-1113
/branches/time_manager/src/core_ocean:924-962
/trunk/mpas/src/core_ocean:1109-1336

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_equation_of_state.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -44,8 +44,8 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: eosON
-   integer :: linearEos, jmEos
+   logical :: eosON
+   logical :: linearEos, jmEos
 
 
 !***********************************************************************
@@ -96,18 +96,18 @@
 
       err = 0
 
-      if(eosOn == 0) return
+      if(.not.eosOn) return
 
       tracers =&gt; s % tracers % array
       indexT = s % index_temperature
       indexS = s % index_salinity
 
-      if (linearEos == 1) then
+      if (linearEos) then
          rho =&gt; s % rho % array
 
          call ocn_equation_of_state_linear_rho(grid, indexT, indexS, tracers, rho, err)
 
-      elseif (jmEos == 1) then
+      elseif (jmEos) then
 
          if(k_displaced == 0) then
              rho =&gt; s % rho % array
@@ -150,17 +150,17 @@
       integer, intent(out) :: err
 
       err = 0
-      eosON = 0
-      linearEos = 0
-      jmEos = 0
+      eosON = .false.
+      linearEos = .false.
+      jmEos = .false.
 
       if(config_vert_grid_type.eq.'zlevel') then
-          eosON = 1
+          eosON = .true.
 
           if (config_eos_type.eq.'linear') then
-              linearEos = 1
+              linearEos = .true.
           elseif (config_eos_type.eq.'jm') then
-              jmEos = 1
+              jmEos = .true.
           else
               print *,'Invalid choice for config_eos_type.'
               print *,'  Choices are: linear, jm'

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_restoring.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_restoring.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_restoring.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: restoringOn !&lt; Flag to turn on/off resotring
+   logical :: restoringOn !&lt; Flag to turn on/off resotring
 
    real (kind=RKIND) :: temperatureTimeScale, salinityTimeScale !&lt; restoring timescales
 
@@ -115,7 +115,7 @@
 
       err = 0
 
-      if(restoringOn == 0) return
+      if(.not.restoringOn) return
 
       nCellsSolve = grid % nCellsSolve
 
@@ -160,10 +160,10 @@
       integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
-      restoringOn = 0
+      restoringOn = .false.
 
       if(config_restoreTS) then
-          restoringOn = 1
+          restoringOn = .true.
           temperatureTimeScale = config_restoreT_timescale
           salinityTimeScale = config_restoreS_timescale
       endif

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv2.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv2.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: hadv2On !&lt; Flag to turn on/off 2nd order hadv
+   logical :: hadv2On !&lt; Flag to turn on/off 2nd order hadv
 
 !***********************************************************************
 
@@ -124,7 +124,7 @@
 
       err = 0
 
-      if(hadv2On == 0) return
+      if(.not.hadv2On) return
 
       nEdges = grid % nEdges
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
@@ -180,10 +180,10 @@
       integer, intent(out) :: err !&lt; Output: Error flag
 
       err = 0
-      hadv2On = 0
+      hadv2On = .false.
 
       if (config_tracer_adv_order == 2) then
-          hadv2On = 1
+          hadv2On = .true.
       end if
 
    !--------------------------------------------------------------------

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv3.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv3.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv3.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: hadv3On !&lt; Flag to turn on/off 3rd order hadv
+   logical :: hadv3On !&lt; Flag to turn on/off 3rd order hadv
    real (kind=RKIND) :: coef_3rd_order !&lt; Coefficient for 3rd order hadv
 
 !***********************************************************************
@@ -129,7 +129,7 @@
 
       err = 0
 
-      if(hadv3On == 0) return
+      if(.not.hadv3On) return
 
       nEdges = grid % nEdges
       num_tracers = size(tracers, dim=1)
@@ -219,10 +219,10 @@
       integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
-      hadv3On = 0
+      hadv3On = .false.
 
       if (config_tracer_adv_order == 3) then
-          hadv3On = 1
+          hadv3On = .true.
 
           coef_3rd_order = 1.0
           if (config_monotonic) coef_3rd_order = 0.25

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv4.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hadv4.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: hadv4On !&lt; Flag to turning on/off 4th order hadv
+   logical :: hadv4On !&lt; Flag to turning on/off 4th order hadv
 
 !***********************************************************************
 
@@ -126,7 +126,7 @@
 
       err = 0
 
-      if(hadv4On == 0) return
+      if(.not.hadv4On) return
 
       nEdges = grid % nEdges
       num_tracers = size(tracers, dim=1)
@@ -211,10 +211,10 @@
       integer, intent(out) :: err !&lt; Output: Error flag
 
       err = 0
-      hadv4On = 0
+      hadv4On = .false.
 
       if (config_tracer_adv_order == 4) then
-          hadv4On = 1
+          hadv4On = .true.
       end if
 
    !--------------------------------------------------------------------

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -44,7 +44,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: del2On
+   logical :: del2On
 
    real (kind=RKIND) :: eddyDiff2
 
@@ -131,7 +131,7 @@
 
       err = 0
 
-      if (del2On == 0) return
+      if (.not.del2On) return
 
       nEdges = grid % nEdges
       nVertLevels = grid % nVertLevels
@@ -202,10 +202,10 @@
 
       err = 0
 
-      del2on = 0
+      del2on = .false.
 
       if ( config_h_tracer_eddy_diff2 &gt; 0.0 ) then
-          del2On = 1
+          del2On = .true.
           eddyDiff2 = config_h_tracer_eddy_diff2
       endif
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -44,7 +44,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: del4On
+   logical :: del4On
 
    real (kind=RKIND) :: eddyDiff4
 
@@ -110,12 +110,10 @@
       integer :: iEdge, nEdges, num_tracers, nVertLevels, nCells
       integer :: iTracer, k, iCell, cell1, cell2
 
-      integer, dimension(:,:), allocatable :: boundaryMask
-
       integer, dimension(:), pointer :: maxLevelEdgeTop, maxLevelCell
-      integer, dimension(:,:), pointer :: boundaryEdge, cellsOnEdge
+      integer, dimension(:,:), pointer :: edgeMask, cellsOnEdge
 
-      real (kind=RKIND) :: invAreaCell1, invAreaCell2, r, tracer_turb_flux, flux
+      real (kind=RKIND) :: invAreaCell1, invAreaCell2, tracer_turb_flux, flux, invdcEdge, r_tmp1, r_tmp2
 
       real (kind=RKIND), dimension(:,:,:), allocatable :: delsq_tracer
 
@@ -132,7 +130,7 @@
 
       err = 0
 
-      if (del4On == 0) return
+      if (.not.del4On) return
 
       nEdges = grid % nEdges
       nCells = grid % nCells
@@ -141,7 +139,6 @@
 
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
       maxLevelCell =&gt; grid % maxLevelCell % array
-      boundaryEdge =&gt; grid % boundaryEdge % array
       cellsOnEdge =&gt; grid % cellsOnEdge % array
 
       dcEdge =&gt; grid % dcEdge % array
@@ -149,67 +146,61 @@
       areaCell =&gt; grid % areaCell % array
       meshScalingDel4 =&gt; grid % meshScalingDel4 % array
 
-      allocate(boundaryMask(nVertLevels, nEdges+1))
-      boundaryMask = 1.0
-      where(boundaryEdge.eq.1) boundaryMask=0.0
+      edgeMask =&gt; grid % edgeMask % array
 
       allocate(delsq_tracer(num_tracers,nVertLevels, nCells+1))
 
-      delsq_tracer(:,:,:) = 0.
+      delsq_tracer(:,:,:) = 0.0
 
       ! first del2: div(h </font>
<font color="red">abla \phi) at cell center
       do iEdge=1,nEdges
          cell1 = cellsOnEdge(1,iEdge)
          cell2 = cellsOnEdge(2,iEdge)
 
+         invdcEdge = 1.0 / dcEdge(iEdge)
+
+         invAreaCell1 = 1.0 / areaCell(cell1)
+         invAreaCell2 = 1.0 / areaCell(cell2)
+
          do k=1,maxLevelEdgeTop(iEdge)
-           do iTracer=1,num_tracers
-              delsq_tracer(iTracer,k,cell1) = delsq_tracer(iTracer,k,cell1) &amp;
-                 + dvEdge(iEdge)*h_edge(k,iEdge) &amp;
-                   *(tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) &amp;
-                   /dcEdge(iEdge) * boundaryMask(k,iEdge)
-              delsq_tracer(iTracer,k,cell2) = delsq_tracer(iTracer,k,cell2) &amp;
-                 - dvEdge(iEdge)*h_edge(k,iEdge) &amp;
-                 *(tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) &amp;
-                 /dcEdge(iEdge) * boundaryMask(k,iEdge)
+           do iTracer=1,num_tracers * edgeMask(k, iEdge)
+
+              r_tmp1 = dvEdge(iEdge) * h_edge(k,iEdge) * invdcEdge
+
+              r_tmp2 = r_tmp1 * tracers(iTracer,k,cell2)
+              r_tmp1 = r_tmp1 * tracers(iTracer,k,cell1)
+
+              delsq_tracer(iTracer,k,cell1) = delsq_tracer(iTracer,k,cell1) + (r_tmp2 - r_tmp1) * invAreaCell1
+              delsq_tracer(iTracer,k,cell2) = delsq_tracer(iTracer,k,cell2) - (r_tmp2 - r_tmp1) * invAreaCell2
            end do
          end do
       end do
 
-      do iCell = 1,nCells
-         r = 1.0 / areaCell(iCell)
-         do k=1,maxLevelCell(iCell)
-            do iTracer=1,num_tracers
-               delsq_tracer(iTracer,k,iCell) = delsq_tracer(iTracer,k,iCell) * r
-            end do
-         end do
-      end do
-
       ! second del2: div(h </font>
<font color="gray">abla [delsq_tracer]) at cell center
       do iEdge=1,grid % nEdges
          cell1 = grid % cellsOnEdge % array(1,iEdge)
          cell2 = grid % cellsOnEdge % array(2,iEdge)
+
          invAreaCell1 = 1.0 / areaCell(cell1)
          invAreaCell2 = 1.0 / areaCell(cell2)
 
+         invdcEdge = 1.0 / dcEdge(iEdge)
+
          do k=1,maxLevelEdgeTop(iEdge)
-            do iTracer=1,num_tracers
+            do iTracer=1,num_tracers * edgeMask(k,iEdge)
                tracer_turb_flux = meshScalingDel4(iEdge) * eddyDiff4 &amp;
-                  *(  delsq_tracer(iTracer,k,cell2)  &amp;
-                    - delsq_tracer(iTracer,k,cell1))/dcEdge(iEdge)
+                  * (delsq_tracer(iTracer,k,cell2) - delsq_tracer(iTracer,k,cell1)) &amp;
+                  * invdcEdge
+
                flux = dvEdge (iEdge) * tracer_turb_flux
 
-               tend(iTracer,k,cell1) = tend(iTracer,k,cell1) &amp; 
-                  - flux * invAreaCell1 * boundaryMask(k,iEdge)
-               tend(iTracer,k,cell2) = tend(iTracer,k,cell2) &amp;
-                  + flux * invAreaCell2 * boundaryMask(k,iEdge)
-
+               tend(iTracer,k,cell1) = tend(iTracer,k,cell1) - flux * invAreaCell1
+               tend(iTracer,k,cell2) = tend(iTracer,k,cell2) + flux * invAreaCell2
             enddo
          enddo
       end do
 
       deallocate(delsq_tracer)
-      deallocate(boundaryMask)
    !--------------------------------------------------------------------
 
    end subroutine ocn_tracer_hmix_del4_tend!}}}
@@ -241,10 +232,10 @@
       integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
-      del4on = 0
+      del4on = .false.
 
       if ( config_h_tracer_eddy_diff4 &gt; 0.0 ) then
-          del4On = 1
+          del4On = .true.
           eddyDiff4 = config_h_tracer_eddy_diff4
       endif
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -45,7 +45,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: vadvOn
+   logical :: vadvOn
 
 
 !***********************************************************************
@@ -122,7 +122,7 @@
 
       err = 0
 
-      if(vadvOn == 0) return
+      if(.not.vadvOn) return
 
       call ocn_tracer_vadv_stencil_tend(grid, wTop, tracers, tend, err1)
       call ocn_tracer_vadv_spline_tend(grid, wTop, tracers, tend, err2)
@@ -164,10 +164,10 @@
       integer :: err1, err2
 
       err = 0
-      vadvOn = 0
+      vadvOn = .false.
 
       if (config_vert_grid_type.eq.'zlevel') then
-          vadvOn = 1
+          vadvOn = .true.
           call ocn_tracer_vadv_stencil_init(err1)
           call ocn_tracer_vadv_spline_init(err2)
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -47,7 +47,7 @@
    !--------------------------------------------------------------------
 
    type (timer_node), pointer :: spline2_timer, spline3_timer
-   integer :: splineOn
+   logical :: splineOn
 
 
 !***********************************************************************
@@ -124,7 +124,7 @@
 
       err = 0
 
-      if(splineOn == 0) return
+      if(.not.splineOn) return
 
       call mpas_timer_start(&quot;spline 2&quot;, .false., spline2_timer)
       call ocn_tracer_vadv_spline2_tend(grid, wTop, tracers, tend, err1)
@@ -171,10 +171,10 @@
 
       err = 0
 
-      splineOn = 0
+      splineOn = .false.
 
       if(config_vert_tracer_adv.eq.'spline') then
-         splineOn = 1
+         splineOn = .true.
 
          call ocn_tracer_vadv_spline2_init(err1)
          call ocn_tracer_vadv_spline3_init(err2)

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: spline2On
+   logical :: spline2On
 
 
 !***********************************************************************
@@ -121,7 +121,7 @@
 
       err = 0
 
-      if(spline2On == 0) return
+      if(.not.spline2On) return
       ! Compute tracerTop using linear interpolation.
 
       nCells = grid % nCells
@@ -192,10 +192,10 @@
 
       err = 0
 
-      spline2On = 0
+      spline2On = .false.
 
       if(config_vert_tracer_adv_order.eq.2) then
-        spline2On = 1
+        spline2On = .true.
       endif
 
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -43,7 +43,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: spline3On
+   logical :: spline3On
 
 
 !***********************************************************************
@@ -125,7 +125,7 @@
 
       err = 0
 
-      if(spline3On == 0) return
+      if(.not.spline3On) return
       ! Compute tracerTop using linear interpolation.
 
       nCells = grid % nCells
@@ -220,10 +220,10 @@
 
       err = 0
 
-      spline3On = 0
+      spline3On = .false.
 
       if(config_vert_tracer_adv_order.eq.3) then
-        spline3On = 1
+        spline3On = .true.
       endif
 
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -49,7 +49,7 @@
 
    type (timer_node), pointer :: stencil2_timer, stencil3_timer, stencil4_timer
 
-   integer :: stencilOn
+   logical :: stencilOn
 
 
 !***********************************************************************
@@ -126,7 +126,7 @@
 
       err = 0
 
-      if(stencilOn == 0) return
+      if(.not.stencilOn) return
 
       call mpas_timer_start(&quot;stencil 2&quot;, .false., stencil2_timer)
       call ocn_tracer_vadv_stencil2_tend(grid, wTop, tracers, tend, err1)
@@ -176,10 +176,10 @@
 
       err = 0
 
-      stencilOn = 0
+      stencilOn = .false.
 
       if (config_vert_tracer_adv.eq.'stencil') then
-         stencilOn = 1
+         stencilOn = .true.
 
          call ocn_tracer_vadv_stencil2_init(err1)
          call ocn_tracer_vadv_stencil3_init(err2)

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: stencil2On
+   logical :: stencil2On
 
 
 !***********************************************************************
@@ -121,7 +121,7 @@
 
       err = 0
 
-      if(stencil2On == 0) return
+      if(.not.stencil2On) return
 
       nCells = grid % nCells
       nCellsSolve = grid % nCellsSolve
@@ -189,10 +189,10 @@
       integer :: err1, err2, err3
 
       err = 0
-      stencil2On = 0
+      stencil2On = .false.
 
       if(config_vert_tracer_adv_order.eq.2) then
-          stencil2On = 1
+          stencil2On = .true.
       endif
 
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: stencil3On
+   logical :: stencil3On
 
 
 !***********************************************************************
@@ -123,7 +123,7 @@
 
       err = 0
 
-      if(stencil3On == 0) return
+      if(.not.stencil3On) return
 
       nCells = grid % nCells
       nCellsSolve = grid % nCellsSolve
@@ -211,10 +211,10 @@
       integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
-      stencil3On = 0
+      stencil3On = .false.
 
       if(config_vert_tracer_adv_order.eq.3) then
-          stencil3On = 1
+          stencil3On = .true.
       endif
 
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: stencil4On
+   logical :: stencil4On
 
 
 !***********************************************************************
@@ -123,7 +123,7 @@
 
       err = 0
 
-      if(Stencil4On == 0) return
+      if(.not.Stencil4On) return
 
       nCells = grid % nCells
       nCellsSolve = grid % nCellsSolve
@@ -206,10 +206,10 @@
       integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
-      stencil4On = 0
+      stencil4On = .false.
 
       if(config_vert_tracer_adv_order.eq.4) then
-          stencil4On = 1
+          stencil4On = .true.
       endif
 
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: bottomDragOn
+   logical :: bottomDragOn
    real (kind=RKIND) :: bottomDragCoef
 
 
@@ -121,7 +121,7 @@
 
       err = 0
 
-      if(bottomDragOn == 0) return
+      if(.not.bottomDragOn) return
 
       nEdgesSolve = grid % nEdgesSolve
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
@@ -174,10 +174,10 @@
 
       err = 0
 
-      bottomDragOn = 0
+      bottomDragOn = .false.
 
       if (.not.config_implicit_vertical_mix) then
-          bottomDragOn = 1
+          bottomDragOn = .true.
           bottomDragCoef = config_bottom_drag_coeff
       endif
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_forcing_windstress.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: windStressOn
+   logical :: windStressOn
    real (kind=RKIND) :: rho_ref
 
 
@@ -118,7 +118,7 @@
 
       err = 0
 
-      if(windStressOn == 0) return
+      if(.not.windStressOn) return
 
       nEdgesSolve = grid % nEdgesSolve
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
@@ -169,7 +169,7 @@
 
       integer, intent(out) :: err !&lt; Output: error flag
 
-      windStressOn = 1
+      windStressOn = .true.
       rho_ref = 1000.0
 
       err = 0

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,7 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer ::  hmixDel2On  !&lt; integer flag to determine whether del2 chosen
+   logical ::  hmixDel2On  !&lt; integer flag to determine whether del2 chosen
 
    real (kind=RKIND) :: &amp;
       eddyVisc2,        &amp;!&lt; base eddy diffusivity for Laplacian
@@ -128,7 +128,7 @@
 
       err = 0
 
-      if(hmixDel2On == 0) return
+      if(.not.hmixDel2On) return
 
       nEdgesSolve = grid % nEdgesSolve
       maxLevelEdgeTop =&gt; grid % maxLevelEdgeTop % array
@@ -196,10 +196,10 @@
 
    err = 0
 
-   hmixDel2On = 0
+   hmixDel2On = .false.
 
    if ( config_h_mom_eddy_visc2 &gt; 0.0 ) then
-      hmixDel2On = 1
+      hmixDel2On = .true.
       eddyVisc2 = config_h_mom_eddy_visc2
 
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -42,8 +42,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: &amp;
-      hmixDel4On       !&lt; local flag to determine whether del4 chosen
+   logical :: hmixDel4On       !&lt; local flag to determine whether del4 chosen
 
    real (kind=RKIND) :: &amp;
       eddyVisc4,        &amp;!&lt; base eddy diffusivity for biharmonic
@@ -132,7 +131,7 @@
 
       err = 0
 
-      if(hmixDel4On == 0) return
+      if(.not.hmixDel4On) return
 
       nCells = grid % nCells
       nEdges = grid % nEdges
@@ -243,10 +242,10 @@
 
    err = 0
 
-   hmixDel4On = 0
+   hmixDel4On = .false.
 
    if ( config_h_mom_eddy_visc4 &gt; 0.0 ) then
-      hmixDel4On = 1
+      hmixDel4On = .true.
       eddyVisc4 = config_h_mom_eddy_visc4
       if (config_visc_vorticity_term) then
          viscVortCoef = config_visc_vorticity_visc4_scale

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_vadv.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_vadv.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vel_vadv.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -43,7 +43,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: velVadvOn
+   logical :: velVadvOn
 
 
 !***********************************************************************
@@ -112,7 +112,7 @@
       real (kind=RKIND), dimension(:), allocatable :: w_dudzTopEdge
       real (kind=RKIND), dimension(:), pointer :: zMidZLevel
 
-      if(velVadvOn == 0) return
+      if(.not.velVadvOn) return
 
       err = 0
 
@@ -177,10 +177,10 @@
       integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
-      velVadvOn = 0
+      velVadvOn = .false.
 
       if (config_vert_grid_type.eq.'zlevel') then
-          velVadvOn = 1
+          velVadvOn = .true.
       end if
 
    !--------------------------------------------------------------------

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -55,7 +55,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: explicitOn, implicitOn
+   logical :: explicitOn, implicitOn
 
 !***********************************************************************
 
@@ -197,7 +197,7 @@
 
       err = 0
 
-      if(implicitOn == 1) return
+      if(.not.implicitOn) return
 
       nEdgessolve = grid % nEdgesSolve
       nVertLevels = grid % nVertLevels
@@ -298,7 +298,7 @@
 
       err = 0
 
-      if(explicitOn == 1) return
+      if(.not.explicitOn) return
 
       nEdges = grid % nEdges
       nVertLevels = grid % nVertLevels
@@ -413,7 +413,7 @@
 
       err = 0
 
-      if(implicitOn == 1) return
+      if(.not.implicitOn) return
 
       nCellsSolve = grid % nCellsSolve
       nVertLevels = grid % nVertLevels
@@ -519,7 +519,7 @@
 
       err = 0
 
-      if(explicitOn == 1) return
+      if(.not.explicitOn) return
 
       nCells = grid % nCells
       nVertLevels = grid % nVertLevels
@@ -589,12 +589,12 @@
 
       err = 0
 
-      explicitOn = 1
-      implicitOn = 0
+      explicitOn = .true.
+      implicitOn = .false.
 
       if(config_implicit_vertical_mix) then
-          explicitOn = 0
-          implicitOn = 1
+          explicitOn = .false.
+          implicitOn = .true.
       end if
 
       call ocn_vmix_coefs_const_init(err1)

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_const.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_const.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_const.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -47,7 +47,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: constViscOn, constDiffOn
+   logical :: constViscOn, constDiffOn
 
    real (kind=RKIND) :: constVisc, constDiff
 
@@ -121,7 +121,7 @@
       !-----------------------------------------------------------------
 
       err = 0
-      if((constViscOn == 0) .and. (constDiffOn == 0)) return
+      if((.not.constViscOn) .and. (.not.constDiffOn)) return
 
       vertViscTopOfEdge =&gt; d % vertViscTopOfEdge % array
       vertDiffTopOfCell =&gt; d % vertDiffTopOfCell % array
@@ -183,7 +183,7 @@
 
       err = 0
 
-      if(constViscOn == 0) return
+      if(.not.constViscOn) return
 
       vertViscTopOfEdge = constVisc
 
@@ -239,7 +239,7 @@
 
       err = 0
 
-      if(constDiffOn == 0) return
+      if(.not.constDiffOn) return
 
       vertDiffTopOfCell = constDiff
 
@@ -279,16 +279,16 @@
 
       err = 0
 
-      constViscOn = 0
-      constDiffOn = 0
+      constViscOn = .false.
+      constDiffOn = .false.
 
       if (config_vert_visc_type.eq.'const') then
-          constViscOn = 1
+          constViscOn = .true.
           constVisc = config_vert_visc
       endif
 
       if (config_vert_diff_type.eq.'const') then
-          constDiffOn = 1
+          constDiffOn = .true.
           constDiff = config_vert_diff
       endif
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_rich.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -49,7 +49,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: richViscOn, richDiffOn
+   logical :: richViscOn, richDiffOn
 
 !***********************************************************************
 
@@ -124,7 +124,7 @@
       !-----------------------------------------------------------------
 
       err = 0
-      if((richViscOn == 0) .and. (richDiffOn == 0)) return
+      if((.not.richViscOn) .and. (.not.richDiffOn)) return
 
       indexT = s%index_temperature
       indexS = s%index_salinity
@@ -216,7 +216,7 @@
 
       err = 0
 
-      if(richViscOn == 0) return
+      if(.not.richViscOn) return
 
       nEdges = grid % nEdges
 
@@ -322,7 +322,7 @@
 
       err = 0
 
-      if(richDiffOn == 0) return
+      if(.not.richDiffOn) return
 
       nCells = grid % nCells
 
@@ -444,7 +444,7 @@
 
       err = 0
 
-      if((richViscOn == 0) .and. (richDiffOn == 0)) return
+      if((.not.richViscOn) .and. (.not.richDiffOn)) return
 
       nVertLevels = grid % nVertLevels
       nCells = grid % nCells
@@ -580,15 +580,15 @@
 
       err = 0
 
-      richViscOn = 0
-      richDiffOn = 0
+      richViscOn = .false.
+      richDiffOn = .false.
 
       if (config_vert_visc_type.eq.'rich') then
-          richViscOn = 1
+          richViscOn = .true.
       endif
 
       if (config_vert_diff_type.eq.'rich') then
-          richDiffOn = 1
+          richDiffOn = .true.
       endif
 
 

Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F        2012-01-13 18:42:37 UTC (rev 1365)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F        2012-01-13 20:11:08 UTC (rev 1366)
@@ -44,7 +44,7 @@
    !
    !--------------------------------------------------------------------
 
-   integer :: tanhViscOn, tanhDiffOn
+   logical :: tanhViscOn, tanhDiffOn
 
 !***********************************************************************
 
@@ -115,7 +115,7 @@
       !-----------------------------------------------------------------
 
       err = 0
-      if((tanhViscOn == 0) .and. (tanhDiffOn == 0)) return
+      if((.not.tanhViscOn) .and. (.not.tanhDiffOn)) return
 
       vertViscTopOfEdge =&gt; d % vertViscTopOfEdge % array
       vertDiffTopOfCell =&gt; d % vertDiffTopOfCell % array
@@ -181,7 +181,7 @@
 
       err = 0
 
-      if(tanhViscOn == 0) return
+      if(.not.tanhViscOn) return
 
       nVertLevels = grid % nVertLevels
       zTopZLevel =&gt; grid % zTopZLevel % array
@@ -250,7 +250,7 @@
 
       err = 0
 
-      if(tanhDiffOn == 0) return
+      if(.not.tanhDiffOn) return
 
       nVertLevels = grid % nVertLevels
       zTopZLevel =&gt; grid % zTopZLevel % array
@@ -297,18 +297,18 @@
 
       err = 0
 
-      tanhViscOn = 0
-      tanhDiffOn = 0
+      tanhViscOn = .false.
+      tanhDiffOn = .false.
 
       if (config_vert_visc_type.eq.'tanh') then
-          tanhViscOn = 1
+          tanhViscOn = .true.
       endif
 
       if (config_vert_diff_type.eq.'tanh') then
-          tanhDiffOn = 1
+          tanhDiffOn = .true.
       endif
 
-      if((tanhViscOn == 1) .or. (tanhDiffOn == 1)) then
+      if((tanhViscOn) .or. (tanhDiffOn)) then
          if (config_vert_grid_type.ne.'zlevel') then
             write(0,*) 'Abort: config_vert_diff_type.eq.tanh may only', &amp;
                        ' use config_vert_grid_type of zlevel at this time'

</font>
</pre>