<p><b>lipscomb</b> 2012-01-10 14:05:05 -0700 (Tue, 10 Jan 2012)</p><p><br>
Commented out computations unlikely to be used by land ice model.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_global_diagnostics.F
===================================================================
--- branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_global_diagnostics.F        2012-01-10 20:27:25 UTC (rev 1338)
+++ branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_global_diagnostics.F        2012-01-10 21:05:05 UTC (rev 1339)
@@ -48,7 +48,9 @@
       ! Step 1
       ! 1. Define the array to integrate, and the variable for the value to be stored in after the integration
       real (kind=RKIND), dimension(:), pointer ::  areaCell, dcEdge, dvEdge, areaTriangle, h_s, fCell, fEdge
-      real (kind=RKIND), dimension(:,:), pointer :: h, u, v, h_edge, pv_edge, pv_vertex, pv_cell, h_vertex, weightsOnEdge
+      real (kind=RKIND), dimension(:,:), pointer :: h, u, v, h_edge, &amp;
+!!!                                                    pv_edge, pv_vertex, pv_cell,  &amp;
+                                                    h_vertex, weightsOnEdge
 
       real (kind=RKIND), dimension(:,:,:), pointer :: tracers
 
@@ -106,9 +108,9 @@
       tracers =&gt; state % tracers % array
       h_edge =&gt; state % h_edge % array
       h_vertex =&gt; state % h_vertex % array
-      pv_edge =&gt; state % pv_edge % array
-      pv_vertex =&gt; state % pv_vertex % array
-      pv_cell =&gt; state % pv_cell % array
+!!!      pv_edge =&gt; state % pv_edge % array
+!!!      pv_vertex =&gt; state % pv_vertex % array
+!!!      pv_cell =&gt; state % pv_cell % array
 
       ! Step 2
       ! 2. Allocate the array with the correct dimensions.
@@ -159,41 +161,41 @@
         cellVolume(iLevel,:) = h(iLevel,1:nCellsSolve)*areaCell(1:nCellsSolve)
         ! eg. GlobalFluidThickness bot (Sum(dA)) = Sum(cellArea)
         cellArea(iLevel,:) = areaCell(1:nCellsSolve)
-        volumeWeightedPotentialVorticity(iLevel,:) = pv_vertex(iLevel,1:nVerticesSolve) &amp;
-                *h_vertex(iLevel,1:nVerticesSolve)*areaTriangle(1:nVerticesSolve) 
-        volumeWeightedPotentialEnstrophy(iLevel,:) = pv_vertex(iLevel,1:nVerticesSolve) &amp; 
-                *pv_vertex(iLevel,1:nVerticesSolve)*h_vertex(iLevel,1:nVerticesSolve)*areaTriangle(1:nVerticesSolve)
+!!!        volumeWeightedPotentialVorticity(iLevel,:) = pv_vertex(iLevel,1:nVerticesSolve) &amp;
+!!!                *h_vertex(iLevel,1:nVerticesSolve)*areaTriangle(1:nVerticesSolve) 
+!!!        volumeWeightedPotentialEnstrophy(iLevel,:) = pv_vertex(iLevel,1:nVerticesSolve) &amp; 
+!!!                *pv_vertex(iLevel,1:nVerticesSolve)*h_vertex(iLevel,1:nVerticesSolve)*areaTriangle(1:nVerticesSolve)
         vertexVolume(iLevel,:) = h_vertex(iLevel,1:nVerticesSolve)*areaTriangle(1:nVerticesSolve)
-        volumeWeightedKineticEnergy(iLevel,:) = u(iLevel,1:nEdgesSolve)*u(iLevel,1:nEdgesSolve) &amp;
-                *h_edge(iLevel,1:nEdgesSolve)*areaEdge(1:nEdgesSolve)*0.5
-        volumeWeightedPotentialEnergy(iLevel,:) = gravity*h(iLevel,1:nCellsSolve)*h(iLevel,1:nCellsSolve)*areaCell(1:nCellsSolve)*0.5
-        volumeWeightedPotentialEnergyTopography(iLevel,:) = gravity*h(iLevel,1:nCellsSolve)*h_s(1:nCellsSolve)*areaCell(1:nCellsSolve)
+!!!        volumeWeightedKineticEnergy(iLevel,:) = u(iLevel,1:nEdgesSolve)*u(iLevel,1:nEdgesSolve) &amp;
+!!!                *h_edge(iLevel,1:nEdgesSolve)*areaEdge(1:nEdgesSolve)*0.5
+!!!        volumeWeightedPotentialEnergy(iLevel,:) = gravity*h(iLevel,1:nCellsSolve)*h(iLevel,1:nCellsSolve)*areaCell(1:nCellsSolve)*0.5
+!!!        volumeWeightedPotentialEnergyTopography(iLevel,:) = gravity*h(iLevel,1:nCellsSolve)*h_s(1:nCellsSolve)*areaCell(1:nCellsSolve)
         refAreaWeightedSurfaceHeight(iLevel,:) = areaCell(1:nCellsSolve)*(h(iLevel,1:nCellsSolve)+h_s(1:nCellsSolve))
 
         do iEdge = 1,nEdgesSolve
             q = 0.0
             do j = 1,nEdgesOnEdge(iEdge)
-               eoe = edgesOnEdge(j,iEdge)
-               workpv = 0.5 * (pv_edge(iLevel,iEdge) + pv_edge(iLevel,eoe))
-               q = q + weightsOnEdge(j,iEdge) * u(iLevel,eoe) * workpv * h_edge(iLevel,eoe) 
+!!!               eoe = edgesOnEdge(j,iEdge)
+!!!               workpv = 0.5 * (pv_edge(iLevel,iEdge) + pv_edge(iLevel,eoe))
+!!!               q = q + weightsOnEdge(j,iEdge) * u(iLevel,eoe) * workpv * h_edge(iLevel,eoe) 
             end do
-            keTend_CoriolisForce(iLevel,iEdge) = h_edge(iLevel,iEdge) * u(iLevel,iEdge) * q * areaEdge(iEdge)
+!!!            keTend_CoriolisForce(iLevel,iEdge) = h_edge(iLevel,iEdge) * u(iLevel,iEdge) * q * areaEdge(iEdge)
 
             iCell1 = cellsOnEdge(1,iEdge)
             iCell2 = cellsOnEdge(2,iEdge)
 
             refAreaWeightedSurfaceHeight_edge(iLevel,iEdge) = areaEdge(iEdge)*(h_edge(iLevel,iEdge) + 0.5*(h_s(iCell1) + h_s(iCell2)))
 
-            keTend_PressureGradient(iLevel,iEdge) = areaEdge(iEdge)*h_edge(iLevel,iEdge)*u(iLevel,iEdge) &amp;
-                        *gravity*(h(iLevel,iCell2)+h_s(iCell2) - h(iLevel,iCell1)-h_s(iCell1))/dcEdge(iEdge)
-            peTend_DivThickness(iLevel,iCell1) = peTend_DivThickness(iLevel,iCell1) &amp;
-                        + h_edge(iLevel,iEdge)*u(iLevel,iEdge)*dvEdge(iEdge)
-            peTend_DivThickness(iLevel,iCell2) = peTend_DivThickness(iLevel,iCell2) &amp;
-                        - h_edge(iLevel,iEdge)*u(iLevel,iEdge)*dvEdge(iEdge)
+!!!            keTend_PressureGradient(iLevel,iEdge) = areaEdge(iEdge)*h_edge(iLevel,iEdge)*u(iLevel,iEdge) &amp;
+!!!                        *gravity*(h(iLevel,iCell2)+h_s(iCell2) - h(iLevel,iCell1)-h_s(iCell1))/dcEdge(iEdge)
+!!!            peTend_DivThickness(iLevel,iCell1) = peTend_DivThickness(iLevel,iCell1) &amp;
+!!!                        + h_edge(iLevel,iEdge)*u(iLevel,iEdge)*dvEdge(iEdge)
+!!!            peTend_DivThickness(iLevel,iCell2) = peTend_DivThickness(iLevel,iCell2) &amp;
+!!!                        - h_edge(iLevel,iEdge)*u(iLevel,iEdge)*dvEdge(iEdge)
         end do
 
-        peTend_DivThickness(iLevel,:) = peTend_DivThickness(iLevel,1:nCells)*gravity &amp;
-                   *(h(iLevel,1:nCells)+h_s(1:nCells))
+!!!        peTend_DivThickness(iLevel,:) = peTend_DivThickness(iLevel,1:nCells)*gravity &amp;
+!!!                   *(h(iLevel,1:nCells)+h_s(1:nCells))
       end do
 
       do iEdge = 1,nEdgesSolve
@@ -206,15 +208,15 @@
       ! Step 4
       ! 4. Call Function to compute Global Stat that you want.
       ! Computing Kinetic and Potential Energy Tendency Terms
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nEdgesSolve, keTend_PressureGradient, globalKineticEnergyTendency)
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nCells, peTend_DivThickness, globalPotentialEnergyTendency)
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nEdgesSolve, keTend_PressureGradient, globalKineticEnergyTendency)
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nCells, peTend_DivThickness, globalPotentialEnergyTendency)
 
       ! Computing top and bottom of global mass integral
       call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, cellVolume, sumCellVolume)
       call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, cellArea, sumCellArea)
 
-      globalKineticEnergyTendency = globalKineticEnergyTendency / sumCellVolume
-      globalPotentialEnergyTendency = globalPotentialEnergyTendency / sumCellVolume
+!!!      globalKineticEnergyTendency = globalKineticEnergyTendency / sumCellVolume
+!!!      globalPotentialEnergyTendency = globalPotentialEnergyTendency / sumCellVolume
 
       ! Step 5
       ! 5. Finish computing the global stat/integral
@@ -227,42 +229,42 @@
       averageThickness(:) = (sumrefAreaWeightedSurfaceHeight/sumCellArea)-h_s(1:nCellsSolve)
 
       ! Compute Volume Weighted Averages of Potential Vorticity and Potential Enstrophy
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nVerticesSolve, volumeWeightedPotentialVorticity, globalPotentialVorticity)
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nVerticesSolve, volumeWeightedPotentialEnstrophy, globalPotentialEnstrophy)
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nVerticesSolve, volumeWeightedPotentialVorticity, globalPotentialVorticity)
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nVerticesSolve, volumeWeightedPotentialEnstrophy, globalPotentialEnstrophy)
       call land_ice_compute_global_sum(dminfo, nVertLevels, nVerticesSolve, vertexVolume, sumVertexVolume)
 
-      globalPotentialVorticity = globalPotentialVorticity/sumVertexVolume
-      globalPotentialEnstrophy = globalPotentialEnstrophy/sumVertexVolume
+!!!      globalPotentialVorticity = globalPotentialVorticity/sumVertexVolume
+!!!      globalPotentialEnstrophy = globalPotentialEnstrophy/sumVertexVolume
 
-      ! Compte Potential Enstrophy Reservior
-      potentialEnstrophyReservior(:) = areaCell(:)*fCell(:)*fCell(:)/averageThickness
-      call land_ice_compute_global_sum(dminfo, 1, nCellsSolve, potentialEnstrophyReservior, globalPotentialEnstrophyReservoir)
-      globalPotentialEnstrophyReservoir = globalPotentialEnstrophyReservoir/sumCellVolume
+      ! Compute Potential Enstrophy Reservior
+!!!      potentialEnstrophyReservior(:) = areaCell(:)*fCell(:)*fCell(:)/averageThickness
+!!!      call land_ice_compute_global_sum(dminfo, 1, nCellsSolve, potentialEnstrophyReservior, globalPotentialEnstrophyReservoir)
+!!!      globalPotentialEnstrophyReservoir = globalPotentialEnstrophyReservoir/sumCellVolume
 
-      globalPotentialEnstrophy = globalPotentialEnstrophy - globalPotentialEnstrophyReservoir
+!!!      globalPotentialEnstrophy = globalPotentialEnstrophy - globalPotentialEnstrophyReservoir
 
       ! Compute Kinetic and Potential Energy terms to be combined into total energy
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nEdgesSolve, volumeWeightedKineticEnergy, globalKineticEnergy)
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergy, globalPotentialEnergy)
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergyTopography, global_temp)
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nEdgesSolve, volumeWeightedKineticEnergy, globalKineticEnergy)
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergy, globalPotentialEnergy)
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergyTopography, global_temp)
 
-      globalKineticEnergy = globalKineticEnergy/sumCellVolume
-      globalPotentialEnergy = (globalPotentialEnergy + global_temp)/sumCellVolume
+!!!      globalKineticEnergy = globalKineticEnergy/sumCellVolume
+!!!      globalPotentialEnergy = (globalPotentialEnergy + global_temp)/sumCellVolume
 
       ! Compute Potential energy reservoir to be subtracted from potential energy term
-      volumeWeightedPotentialEnergyReservoir(1:nCellsSolve) = areaCell(1:nCellsSolve)*averageThickness*averageThickness*gravity*0.5
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergyReservoir, globalPotentialEnergyReservoir)
-      volumeWeightedPotentialEnergyReservoir(1:nCellsSolve) = areaCell(1:nCellsSolve)*averageThickness*h_s(1:nCellsSolve)*gravity
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergyReservoir, global_temp)
+!!!      volumeWeightedPotentialEnergyReservoir(1:nCellsSolve) = areaCell(1:nCellsSolve)*averageThickness*averageThickness*gravity*0.5
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergyReservoir, globalPotentialEnergyReservoir)
+!!!      volumeWeightedPotentialEnergyReservoir(1:nCellsSolve) = areaCell(1:nCellsSolve)*averageThickness*h_s(1:nCellsSolve)*gravity
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nCellsSolve, volumeWeightedPotentialEnergyReservoir, global_temp)
 
-      globalPotentialEnergyReservoir = (globalPotentialEnergyReservoir + global_temp)/sumCellVolume
+!!!      globalPotentialEnergyReservoir = (globalPotentialEnergyReservoir + global_temp)/sumCellVolume
 
-      globalPotentialEnergy = globalPotentialEnergy - globalPotentialEnergyReservoir
-      globalEnergy = globalKineticEnergy + globalPotentialEnergy
+!!!      globalPotentialEnergy = globalPotentialEnergy - globalPotentialEnergyReservoir
+!!!      globalEnergy = globalKineticEnergy + globalPotentialEnergy
 
       ! Compute Coriolis energy tendency term
-      call land_ice_compute_global_sum(dminfo, nVertLevels, nEdgesSolve, keTend_CoriolisForce, globalCoriolisEnergyTendency)
-      globalCoriolisEnergyTendency = globalCoriolisEnergyTendency/sumCellVolume
+!!!      call land_ice_compute_global_sum(dminfo, nVertLevels, nEdgesSolve, keTend_CoriolisForce, globalCoriolisEnergyTendency)
+!!!      globalCoriolisEnergyTendency = globalCoriolisEnergyTendency/sumCellVolume
 
       ! Step 6
       ! 6. Write out your global stat to the file

Modified: branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_time_integration.F
===================================================================
--- branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_time_integration.F        2012-01-10 20:27:25 UTC (rev 1338)
+++ branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_time_integration.F        2012-01-10 21:05:05 UTC (rev 1339)
@@ -88,8 +88,9 @@
          block % state % time_levs(2) % state % h % array(:,:) = block % state % time_levs(1) % state % h % array(:,:)
          do iCell=1,block % mesh % nCells  ! couple tracers to h
            do k=1,block % mesh % nVertLevels
-             block % state % time_levs(2) % state % tracers % array(:,k,iCell) = block % state % time_levs(1) % state % tracers % array(:,k,iCell) &amp;
-                                                                       * block % state % time_levs(1) % state % h % array(k,iCell)
+             block % state % time_levs(2) % state % tracers % array(:,k,iCell) = &amp;
+                                                                 block % state % time_levs(1) % state % tracers % array(:,k,iCell) &amp;
+                                                               * block % state % time_levs(1) % state % h % array(k,iCell)
             end do
          end do
 
@@ -118,18 +119,18 @@
 
         block =&gt; domain % blocklist
         do while (associated(block))
-           call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % pv_edge % array(:,:), &amp;
-                                            block % mesh % nVertLevels, block % mesh % nEdges, &amp;
-                                            block % parinfo % edgesToSend, block % parinfo % edgesToRecv)
+!!!           call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % pv_edge % array(:,:), &amp;
+!!!                                            block % mesh % nVertLevels, block % mesh % nEdges, &amp;
+!!!                                            block % parinfo % edgesToSend, block % parinfo % edgesToRecv)
 
-           if (config_h_mom_eddy_visc4 &gt; 0.0) then
-              call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % divergence % array(:,:), &amp;
-                                               block % mesh % nVertLevels, block % mesh % nCells, &amp;
-                                               block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
-              call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % vorticity % array(:,:), &amp;
-                                               block % mesh % nVertLevels, block % mesh % nVertices, &amp;
-                                               block % parinfo % verticesToSend, block % parinfo % verticesToRecv)
-           end if
+!!!           if (config_h_mom_eddy_visc4 &gt; 0.0) then
+!!!              call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % divergence % array(:,:), &amp;
+!!!                                               block % mesh % nVertLevels, block % mesh % nCells, &amp;
+!!!                                               block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+!!!              call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % vorticity % array(:,:), &amp;
+!!!                                               block % mesh % nVertLevels, block % mesh % nVertices, &amp;
+!!!                                               block % parinfo % verticesToSend, block % parinfo % verticesToRecv)
+!!!           end if
 
            block =&gt; block % next
         end do
@@ -197,8 +198,8 @@
            do iCell=1,block % mesh % nCells
               do k=1,block % mesh % nVertLevels
                  block % state % time_levs(2) % state % tracers % array(:,k,iCell) =  &amp;
-                                                                       block % state % time_levs(2) % state % tracers % array(:,k,iCell) &amp;
-                                               + rk_weights(rk_step) * block % tend % tracers % array(:,k,iCell)
+                                                                   block % state % time_levs(2) % state % tracers % array(:,k,iCell) &amp;
+                                                                 + rk_weights(rk_step) * block % tend % tracers % array(:,k,iCell)
               end do
            end do
            block =&gt; block % next
@@ -267,15 +268,18 @@
       integer :: nCells, nEdges, nVertices, nVertLevels
       real (kind=RKIND), dimension(:), pointer :: h_s, fVertex, fEdge, dvEdge, dcEdge, areaCell, areaTriangle, &amp;
                                                   meshScalingDel2, meshScalingDel4
-      real (kind=RKIND), dimension(:,:), pointer :: vh, weightsOnEdge, kiteAreasOnVertex, h_edge, h, u, v, tend_h, tend_u, &amp;
-                                                    circulation, vorticity, ke, pv_edge, divergence, h_vertex
+      real (kind=RKIND), dimension(:,:), pointer :: vh, weightsOnEdge, kiteAreasOnVertex, &amp;
+                                                    h_edge, h, u, v, tend_h, tend_u, &amp;
+!!!                                                    circulation, vorticity, ke, pv_edge, divergence,  &amp; 
+                                                    h_vertex
       integer, dimension(:,:), pointer :: cellsOnEdge, cellsOnVertex, verticesOnEdge, edgesOnCell, edgesOnEdge, edgesOnVertex
       integer, dimension(:), pointer :: nEdgesOnCell, nEdgesOnEdge
-      real (kind=RKIND) :: r, u_diffusion
+      real (kind=RKIND) :: r
+!!!      real (kind=RKIND) :: u_diffusion
 
-      real (kind=RKIND), allocatable, dimension(:,:) :: delsq_divergence
-      real (kind=RKIND), allocatable, dimension(:,:) :: delsq_u
-      real (kind=RKIND), allocatable, dimension(:,:) :: delsq_circulation, delsq_vorticity
+!!!      real (kind=RKIND), allocatable, dimension(:,:) :: delsq_divergence
+!!!      real (kind=RKIND), allocatable, dimension(:,:) :: delsq_u
+!!!      real (kind=RKIND), allocatable, dimension(:,:) :: delsq_circulation, delsq_vorticity
 
       real (kind=RKIND), dimension(:,:), pointer :: u_src
       real (kind=RKIND), parameter :: rho_ref = 1000.0
@@ -286,11 +290,11 @@
       u           =&gt; s % u % array
       v           =&gt; s % v % array
       h_edge      =&gt; s % h_edge % array
-      circulation =&gt; s % circulation % array
-      vorticity   =&gt; s % vorticity % array
-      divergence  =&gt; s % divergence % array
-      ke          =&gt; s % ke % array
-      pv_edge     =&gt; s % pv_edge % array
+!!!      circulation =&gt; s % circulation % array
+!!!      vorticity   =&gt; s % vorticity % array
+!!!      divergence  =&gt; s % divergence % array
+!!!      ke          =&gt; s % ke % array
+!!!      pv_edge     =&gt; s % pv_edge % array
       vh          =&gt; s % vh % array
 
       weightsOnEdge     =&gt; grid % weightsOnEdge % array
@@ -348,28 +352,28 @@
       !
       ! Compute u (normal) velocity tendency for each edge (cell face)
       !
-      tend_u(:,:) = 0.0
-      do iEdge=1,grid % nEdgesSolve
-         cell1 = cellsOnEdge(1,iEdge)
-         cell2 = cellsOnEdge(2,iEdge)
-         vertex1 = verticesOnEdge(1,iEdge)
-         vertex2 = verticesOnEdge(2,iEdge)
+!!!      tend_u(:,:) = 0.0
+!!!      do iEdge=1,grid % nEdgesSolve
+!!!         cell1 = cellsOnEdge(1,iEdge)
+!!!         cell2 = cellsOnEdge(2,iEdge)
+!!!         vertex1 = verticesOnEdge(1,iEdge)
+!!!         vertex2 = verticesOnEdge(2,iEdge)
          
-         do k=1,nVertLevels
-            q = 0.0
-            do j = 1,nEdgesOnEdge(iEdge)
-               eoe = edgesOnEdge(j,iEdge)
-               workpv = 0.5 * (pv_edge(k,iEdge) + pv_edge(k,eoe))
-               q = q + weightsOnEdge(j,iEdge) * u(k,eoe) * workpv * h_edge(k,eoe) 
-            end do
+!!!         do k=1,nVertLevels
+!!!            q = 0.0
+!!!            do j = 1,nEdgesOnEdge(iEdge)
+!!!               eoe = edgesOnEdge(j,iEdge)
+!!!               workpv = 0.5 * (pv_edge(k,iEdge) + pv_edge(k,eoe))
+!!!               q = q + weightsOnEdge(j,iEdge) * u(k,eoe) * workpv * h_edge(k,eoe) 
+!!!            end do
 
-            tend_u(k,iEdge) =       &amp;
-                              q     &amp;
-                              - (   ke(k,cell2) - ke(k,cell1) + &amp;
-                                    gravity * (h(k,cell2) + h_s(cell2) - h(k,cell1) - h_s(cell1)) &amp;
-                                  ) / dcEdge(iEdge)
-         end do
-      end do
+!!!            tend_u(k,iEdge) =       &amp;
+!!!                              q     &amp;
+!!!                              - (   ke(k,cell2) - ke(k,cell1) + &amp;
+!!!                                    gravity * (h(k,cell2) + h_s(cell2) - h(k,cell1) - h_s(cell1)) &amp;
+!!!                                  ) / dcEdge(iEdge)
+!!!         end do
+!!!      end do
 
 
 #endif
@@ -378,45 +382,45 @@
       !
       ! Compute u (normal) velocity tendency for each edge (cell face)
       !
-      tend_u(:,:) = 0.0
-      do iEdge=1,grid % nEdgesSolve
-         vertex1 = verticesOnEdge(1,iEdge)
-         vertex2 = verticesOnEdge(2,iEdge)
-         cell1 = cellsOnEdge(1,iEdge)
-         cell2 = cellsOnEdge(2,iEdge)
+!!!      tend_u(:,:) = 0.0
+!!!      do iEdge=1,grid % nEdgesSolve
+!!!         vertex1 = verticesOnEdge(1,iEdge)
+!!!         vertex2 = verticesOnEdge(2,iEdge)
+!!!         cell1 = cellsOnEdge(1,iEdge)
+!!!         cell2 = cellsOnEdge(2,iEdge)
 
-         do k=1,nVertLevels
-            vorticity_abs = fEdge(iEdge) + (circulation(k,vertex1) + circulation(k,vertex2)) / &amp;
-                                           (areaTriangle(vertex1) + areaTriangle(vertex2))
+!!!         do k=1,nVertLevels
+!!!            vorticity_abs = fEdge(iEdge) + (circulation(k,vertex1) + circulation(k,vertex2)) / &amp;
+!!!                                           (areaTriangle(vertex1) + areaTriangle(vertex2))
 
-            workpv = 2.0 * vorticity_abs / (h(k,cell1) + h(k,cell2))
+!!!            workpv = 2.0 * vorticity_abs / (h(k,cell1) + h(k,cell2))
 
-            tend_u(k,iEdge) = workpv * vh(k,iEdge) - &amp;
-                              (ke(k,cell2) - ke(k,cell1) + &amp;
-                                 gravity * (h(k,cell2) + h_s(cell2) - h(k,cell1) - h_s(cell1)) &amp;
-                              ) / &amp;
-                              dcEdge(iEdge)
-         end do
-      end do
+!!!            tend_u(k,iEdge) = workpv * vh(k,iEdge) - &amp;
+!!!                              (ke(k,cell2) - ke(k,cell1) + &amp;
+!!!                                 gravity * (h(k,cell2) + h_s(cell2) - h(k,cell1) - h_s(cell1)) &amp;
+!!!                              ) / &amp;
+!!!                              dcEdge(iEdge)
+!!!         end do
+!!!      end do
 #endif
 
      ! Compute diffusion, computed as </font>
<font color="black">abla divergence - k \times </font>
<font color="red">abla vorticity
      !                    only valid for visc == constant
-     if (config_h_mom_eddy_visc2 &gt; 0.0) then
-        do iEdge=1,grid % nEdgesSolve
-           cell1 = cellsOnEdge(1,iEdge)
-           cell2 = cellsOnEdge(2,iEdge)
-           vertex1 = verticesOnEdge(1,iEdge)
-           vertex2 = verticesOnEdge(2,iEdge)
+!!!     if (config_h_mom_eddy_visc2 &gt; 0.0) then
+!!!        do iEdge=1,grid % nEdgesSolve
+!!!           cell1 = cellsOnEdge(1,iEdge)
+!!!           cell2 = cellsOnEdge(2,iEdge)
+!!!           vertex1 = verticesOnEdge(1,iEdge)
+!!!           vertex2 = verticesOnEdge(2,iEdge)
 
-           do k=1,nVertLevels
-              u_diffusion =   ( divergence(k,cell2)  -  divergence(k,cell1) ) / dcEdge(iEdge) &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
-           end do
-        end do
-     end if
+!!!           do k=1,nVertLevels
+!!!              u_diffusion =   ( divergence(k,cell2)  -  divergence(k,cell1) ) / dcEdge(iEdge) &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
+!!!           end do
+!!!        end do
+!!!     end if
 
      !
      ! velocity tendency: del4 dissipation, -</font>
<font color="black">u_4 </font>
<font color="gray">abla^4 u
@@ -424,116 +428,116 @@
      !   applied recursively.
      !   strictly only valid for h_mom_eddy_visc4 == constant
      !
-     if (config_h_mom_eddy_visc4 &gt; 0.0) then
-        allocate(delsq_divergence(nVertLevels, nCells+1))
-        allocate(delsq_u(nVertLevels, nEdges+1))
-        allocate(delsq_circulation(nVertLevels, nVertices+1))
-        allocate(delsq_vorticity(nVertLevels, nVertices+1))
+!!!     if (config_h_mom_eddy_visc4 &gt; 0.0) then
+!!!        allocate(delsq_divergence(nVertLevels, nCells+1))
+!!!        allocate(delsq_u(nVertLevels, nEdges+1))
+!!!        allocate(delsq_circulation(nVertLevels, nVertices+1))
+!!!        allocate(delsq_vorticity(nVertLevels, nVertices+1))
 
-        delsq_u(:,:) = 0.0
+!!!        delsq_u(:,:) = 0.0
 
         ! Compute </font>
<font color="black">abla^2 u = </font>
<font color="black">abla divergence + k \times </font>
<font color="red">abla vorticity
-        do iEdge=1,grid % nEdges
-           cell1 = cellsOnEdge(1,iEdge)
-           cell2 = cellsOnEdge(2,iEdge)
-           vertex1 = verticesOnEdge(1,iEdge)
-           vertex2 = verticesOnEdge(2,iEdge)
+!!!        do iEdge=1,grid % nEdges
+!!!           cell1 = cellsOnEdge(1,iEdge)
+!!!           cell2 = cellsOnEdge(2,iEdge)
+!!!           vertex1 = verticesOnEdge(1,iEdge)
+!!!           vertex2 = verticesOnEdge(2,iEdge)
 
-           do k=1,nVertLevels
+!!!           do k=1,nVertLevels
 
-              delsq_u(k,iEdge) = ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
-                   -( vorticity(k,vertex2) - vorticity(k,vertex1)) / dvEdge(iEdge)
+!!!              delsq_u(k,iEdge) = ( divergence(k,cell2)  - divergence(k,cell1) ) / dcEdge(iEdge)  &amp;
+!!!                   -( vorticity(k,vertex2) - vorticity(k,vertex1)) / dvEdge(iEdge)
 
-           end do
-        end do
+!!!           end do
+!!!        end do
 
         ! vorticity using </font>
<font color="red">abla^2 u
-        delsq_circulation(:,:) = 0.0
-        do iEdge=1,nEdges
-           vertex1 = verticesOnEdge(1,iEdge)
-           vertex2 = verticesOnEdge(2,iEdge)
-           do k=1,nVertLevels
-              delsq_circulation(k,vertex1) = delsq_circulation(k,vertex1) &amp;
-                   - dcEdge(iEdge) * delsq_u(k,iEdge)
-              delsq_circulation(k,vertex2) = delsq_circulation(k,vertex2) &amp;
-                   + dcEdge(iEdge) * delsq_u(k,iEdge)
-           end do
-        end do
-        do iVertex=1,nVertices
-           r = 1.0 / areaTriangle(iVertex)
-           do k=1,nVertLevels
-              delsq_vorticity(k,iVertex) = delsq_circulation(k,iVertex) * r
-           end do
-        end do
+!!!        delsq_circulation(:,:) = 0.0
+!!!        do iEdge=1,nEdges
+!!!           vertex1 = verticesOnEdge(1,iEdge)
+!!!           vertex2 = verticesOnEdge(2,iEdge)
+!!!           do k=1,nVertLevels
+!!!              delsq_circulation(k,vertex1) = delsq_circulation(k,vertex1) &amp;
+!!!                   - dcEdge(iEdge) * delsq_u(k,iEdge)
+!!!              delsq_circulation(k,vertex2) = delsq_circulation(k,vertex2) &amp;
+!!!                   + dcEdge(iEdge) * delsq_u(k,iEdge)
+!!!           end do
+!!!        end do
+!!!        do iVertex=1,nVertices
+!!!           r = 1.0 / areaTriangle(iVertex)
+!!!           do k=1,nVertLevels
+!!!              delsq_vorticity(k,iVertex) = delsq_circulation(k,iVertex) * r
+!!!           end do
+!!!        end do
 
         ! Divergence using </font>
<font color="red">abla^2 u
-        delsq_divergence(:,:) = 0.0
-        do iEdge=1,nEdges
-           cell1 = cellsOnEdge(1,iEdge)
-           cell2 = cellsOnEdge(2,iEdge)
-           do k=1,nVertLevels
-              delsq_divergence(k,cell1) = delsq_divergence(k,cell1) &amp;
-                   + delsq_u(k,iEdge)*dvEdge(iEdge)
-              delsq_divergence(k,cell2) = delsq_divergence(k,cell2) &amp;
-                   - delsq_u(k,iEdge)*dvEdge(iEdge)
-           end do
-        end do
-        do iCell = 1,nCells
-           r = 1.0 / areaCell(iCell)
-           do k = 1,nVertLevels
-              delsq_divergence(k,iCell) = delsq_divergence(k,iCell) * r
-           end do
-        end do
+!!!        delsq_divergence(:,:) = 0.0
+!!!        do iEdge=1,nEdges
+!!!           cell1 = cellsOnEdge(1,iEdge)
+!!!           cell2 = cellsOnEdge(2,iEdge)
+!!!           do k=1,nVertLevels
+!!!              delsq_divergence(k,cell1) = delsq_divergence(k,cell1) &amp;
+!!!                   + delsq_u(k,iEdge)*dvEdge(iEdge)
+!!!              delsq_divergence(k,cell2) = delsq_divergence(k,cell2) &amp;
+!!!                   - delsq_u(k,iEdge)*dvEdge(iEdge)
+!!!           end do
+!!!        end do
+!!!        do iCell = 1,nCells
+!!!           r = 1.0 / areaCell(iCell)
+!!!           do k = 1,nVertLevels
+!!!              delsq_divergence(k,iCell) = delsq_divergence(k,iCell) * r
+!!!           end do
+!!!        end do
 
         ! Compute - \kappa </font>
<font color="black">abla^4 u 
         ! as  </font>
<font color="black">abla div(</font>
<font color="black">abla^2 u) + k \times </font>
<font color="black">abla ( k \cross curl(</font>
<font color="gray">abla^2 u) )
-        do iEdge=1,grid % nEdgesSolve
-           cell1 = cellsOnEdge(1,iEdge)
-           cell2 = cellsOnEdge(2,iEdge)
-           vertex1 = verticesOnEdge(1,iEdge)
-           vertex2 = verticesOnEdge(2,iEdge)
+!!!        do iEdge=1,grid % nEdgesSolve
+!!!           cell1 = cellsOnEdge(1,iEdge)
+!!!           cell2 = cellsOnEdge(2,iEdge)
+!!!           vertex1 = verticesOnEdge(1,iEdge)
+!!!           vertex2 = verticesOnEdge(2,iEdge)
 
-           do k=1,nVertLevels
+!!!           do k=1,nVertLevels
 
-              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)
+!!!              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)
 
-              u_diffusion = meshScalingDel4(iEdge) * config_h_mom_eddy_visc4 * u_diffusion
-              tend_u(k,iEdge) = tend_u(k,iEdge) - u_diffusion
+!!!              u_diffusion = meshScalingDel4(iEdge) * config_h_mom_eddy_visc4 * u_diffusion
+!!!              tend_u(k,iEdge) = tend_u(k,iEdge) - u_diffusion
 
-           end do
-        end do
+!!!           end do
+!!!        end do
 
-        deallocate(delsq_divergence)
-        deallocate(delsq_u)
-        deallocate(delsq_circulation)
-        deallocate(delsq_vorticity)
+!!!        deallocate(delsq_divergence)
+!!!        deallocate(delsq_u)
+!!!        deallocate(delsq_circulation)
+!!!        deallocate(delsq_vorticity)
 
-     end if
+!!!     end if
 
      ! Compute u (velocity) tendency from wind stress (u_src)
-     if(config_wind_stress) then
-         do iEdge=1,grid % nEdges
-            tend_u(1,iEdge) =  tend_u(1,iEdge) &amp;
-                  + u_src(1,iEdge)/rho_ref/h_edge(1,iEdge)
-         end do
-     endif
+!!!     if(config_wind_stress) then
+!!!         do iEdge=1,grid % nEdges
+!!!            tend_u(1,iEdge) =  tend_u(1,iEdge) &amp;
+!!!                  + u_src(1,iEdge)/rho_ref/h_edge(1,iEdge)
+!!!         end do
+!!!     endif
 
-     if (config_bottom_drag) then
-         do iEdge=1,grid % nEdges
+!!!     if (config_bottom_drag) then
+!!!         do iEdge=1,grid % nEdges
              ! bottom drag is the same as POP:
              ! -c |u| u  where c is unitless and 1.0e-3.
              ! see POP Reference guide, section 3.4.4.
-             ke_edge = 0.5 * ( ke(1,cellsOnEdge(1,iEdge)) &amp;
-                   + ke(1,cellsOnEdge(2,iEdge)))
+!!!             ke_edge = 0.5 * ( ke(1,cellsOnEdge(1,iEdge)) &amp;
+!!!                   + ke(1,cellsOnEdge(2,iEdge)))
 
-             tend_u(1,iEdge) = tend_u(1,iEdge)  &amp;
-                  - 1.0e-3*u(1,iEdge) &amp;
-                  *sqrt(2.0*ke_edge)/h_edge(1,iEdge)
-         end do
-     endif
+!!!             tend_u(1,iEdge) = tend_u(1,iEdge)  &amp;
+!!!                  - 1.0e-3*u(1,iEdge) &amp;
+!!!                  *sqrt(2.0*ke_edge)/h_edge(1,iEdge)
+!!!         end do
+!!!     endif
  
    end subroutine land_ice_compute_tend
 
@@ -715,104 +719,104 @@
       !
       ! tracer tendency: del2 horizontal tracer diffusion, div(h \kappa_2 </font>
<font color="red">abla \phi)
       !
-      if ( config_h_tracer_eddy_diff2 &gt; 0.0 ) then
+!!!      if ( config_h_tracer_eddy_diff2 &gt; 0.0 ) then
 
          !
          ! compute a boundary mask to enforce insulating boundary conditions in the horizontal
          !
-         allocate(boundaryMask(grid % nVertLevels, grid % nEdges+1))
-         boundaryMask = 1.0
-         where(boundaryEdge.eq.1) boundaryMask=0.0
+!!!         allocate(boundaryMask(grid % nVertLevels, grid % nEdges+1))
+!!!         boundaryMask = 1.0
+!!!         where(boundaryEdge.eq.1) boundaryMask=0.0
 
-         do iEdge=1,grid % nEdges
-            cell1 = cellsOnEdge(1,iEdge)
-            cell2 = cellsOnEdge(2,iEdge)
-            invAreaCell1 = 1.0/areaCell(cell1)
-            invAreaCell2 = 1.0/areaCell(cell2)
+!!!         do iEdge=1,grid % nEdges
+!!!            cell1 = cellsOnEdge(1,iEdge)
+!!!            cell2 = cellsOnEdge(2,iEdge)
+!!!            invAreaCell1 = 1.0/areaCell(cell1)
+!!!            invAreaCell2 = 1.0/areaCell(cell2)
 
-            do k=1,grid % nVertLevels
-              do iTracer=1, grid % nTracers
-                 ! \kappa_2 </font>
<font color="red">abla \phi on edge
-                 tracer_turb_flux = config_h_tracer_eddy_diff2 &amp;
-                    *( tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge)
+!!!            do k=1,grid % nVertLevels
+!!!              do iTracer=1, grid % nTracers
+!!!                 ! \kappa_2 </font>
<font color="blue">abla \phi on edge
+!!!                 tracer_turb_flux = config_h_tracer_eddy_diff2 &amp;
+!!!                    *( tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge)
 
                  ! div(h \kappa_2 </font>
<font color="red">abla \phi) at cell center
-                 flux = dvEdge(iEdge) * h_edge(k,iEdge) * tracer_turb_flux * boundaryMask(k, iEdge)
-                 tracer_tend(iTracer,k,cell1) = tracer_tend(iTracer,k,cell1) + flux * invAreaCell1
-                 tracer_tend(iTracer,k,cell2) = tracer_tend(iTracer,k,cell2) - flux * invAreaCell2
-              end do
-            end do
+!!!                 flux = dvEdge(iEdge) * h_edge(k,iEdge) * tracer_turb_flux * boundaryMask(k, iEdge)
+!!!                 tracer_tend(iTracer,k,cell1) = tracer_tend(iTracer,k,cell1) + flux * invAreaCell1
+!!!                 tracer_tend(iTracer,k,cell2) = tracer_tend(iTracer,k,cell2) - flux * invAreaCell2
+!!!              end do
+!!!            end do
 
-         end do
+!!!         end do
 
-        deallocate(boundaryMask)
+!!!        deallocate(boundaryMask)
 
-      end if
+!!!      end if
 
       !
       ! tracer tendency: del4 horizontal tracer diffusion, &amp;
       !    div(h \kappa_4 </font>
<font color="black">abla [div(h </font>
<font color="red">abla \phi)])
       !
-      if ( config_h_tracer_eddy_diff4 &gt; 0.0 ) then
+!!!      if ( config_h_tracer_eddy_diff4 &gt; 0.0 ) then
 
          !
          ! compute a boundary mask to enforce insulating boundary conditions in the horizontal
          !
-         allocate(boundaryMask(grid % nVertLevels, grid % nEdges+1))
-         boundaryMask = 1.0
-         where(boundaryEdge.eq.1) boundaryMask=0.0
+!!!         allocate(boundaryMask(grid % nVertLevels, grid % nEdges+1))
+!!!         boundaryMask = 1.0
+!!!         where(boundaryEdge.eq.1) boundaryMask=0.0
 
-         allocate(delsq_tracer(grid % nTracers, grid % nVertLevels, grid % nCells+1))
+!!!         allocate(delsq_tracer(grid % nTracers, grid % nVertLevels, grid % nCells+1))
 
-         delsq_tracer(:,:,:) = 0.
+!!!         delsq_tracer(:,:,:) = 0.
 
          ! first del2: div(h </font>
<font color="red">abla \phi) at cell center
-         do iEdge=1,grid % nEdges
-            cell1 = cellsOnEdge(1,iEdge)
-            cell2 = cellsOnEdge(2,iEdge)
+!!!         do iEdge=1,grid % nEdges
+!!!            cell1 = cellsOnEdge(1,iEdge)
+!!!            cell2 = cellsOnEdge(2,iEdge)
 
-            do k=1,grid % nVertLevels
-              do iTracer=1, grid % nTracers
-                 delsq_tracer(iTracer,k,cell1) = delsq_tracer(iTracer,k,cell1) &amp;
-                    + dvEdge(iEdge) * h_edge(k,iEdge) * (tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge) * boundaryMask(k,iEdge)
-                 delsq_tracer(iTracer,k,cell2) = delsq_tracer(iTracer,k,cell2) &amp;
-                    - dvEdge(iEdge) * h_edge(k,iEdge) * (tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge) * boundaryMask(k,iEdge)
-              end do
-            end do
+!!!            do k=1,grid % nVertLevels
+!!!              do iTracer=1, grid % nTracers
+!!!                 delsq_tracer(iTracer,k,cell1) = delsq_tracer(iTracer,k,cell1) &amp;
+!!!                    + dvEdge(iEdge) * h_edge(k,iEdge) * (tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge) * boundaryMask(k,iEdge)
+!!!                 delsq_tracer(iTracer,k,cell2) = delsq_tracer(iTracer,k,cell2) &amp;
+!!!                    - dvEdge(iEdge) * h_edge(k,iEdge) * (tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge) * boundaryMask(k,iEdge)
+!!!              end do
+!!!            end do
 
-         end do
+!!!         end do
 
-         do iCell = 1, grid % nCells
-            r = 1.0 / grid % areaCell % array(iCell)
-            do k=1,grid % nVertLevels
-            do iTracer=1,grid % nTracers
-               delsq_tracer(iTracer,k,iCell) = delsq_tracer(iTracer,k,iCell) * r
-            end do
-            end do
-         end do
+!!!         do iCell = 1, grid % nCells
+!!!            r = 1.0 / grid % areaCell % array(iCell)
+!!!            do k=1,grid % nVertLevels
+!!!            do iTracer=1,grid % nTracers
+!!!               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 / grid % areaCell % array(cell1)
-            invAreaCell2 = 1.0 / grid % areaCell % array(cell2)
+!!!         do iEdge=1,grid % nEdges
+!!!            cell1 = grid % cellsOnEdge % array(1,iEdge)
+!!!            cell2 = grid % cellsOnEdge % array(2,iEdge)
+!!!            invAreaCell1 = 1.0 / grid % areaCell % array(cell1)
+!!!            invAreaCell2 = 1.0 / grid % areaCell % array(cell2)
 
-            do k=1,grid % nVertLevels
-            do iTracer=1,grid % nTracers
-               tracer_turb_flux = config_h_tracer_eddy_diff4 * (delsq_tracer(iTracer,k,cell2) - delsq_tracer(iTracer,k,cell1)) / dcEdge(iEdge)
-               flux = dvEdge(iEdge) * tracer_turb_flux
-               tracer_tend(iTracer,k,cell1) = tracer_tend(iTracer,k,cell1) - flux * invAreaCell1 * boundaryMask(k,iEdge)
-               tracer_tend(iTracer,k,cell2) = tracer_tend(iTracer,k,cell2) + flux * invAreaCell2 * boundaryMask(k,iEdge)
-            end do
-            enddo
+!!!            do k=1,grid % nVertLevels
+!!!            do iTracer=1,grid % nTracers
+!!!               tracer_turb_flux = config_h_tracer_eddy_diff4 * (delsq_tracer(iTracer,k,cell2) - delsq_tracer(iTracer,k,cell1)) / dcEdge(iEdge)
+!!!               flux = dvEdge(iEdge) * tracer_turb_flux
+!!!               tracer_tend(iTracer,k,cell1) = tracer_tend(iTracer,k,cell1) - flux * invAreaCell1 * boundaryMask(k,iEdge)
+!!!               tracer_tend(iTracer,k,cell2) = tracer_tend(iTracer,k,cell2) + flux * invAreaCell2 * boundaryMask(k,iEdge)
+!!!            end do
+!!!            enddo
 
-         end do
+!!!         end do
 
-         deallocate(delsq_tracer)
-         deallocate(boundaryMask)
+!!!         deallocate(delsq_tracer)
+!!!         deallocate(boundaryMask)
 
-      end if
+!!!      end if
 
    end subroutine land_ice_compute_scalar_tend
 
@@ -834,14 +838,17 @@
 
 
       integer :: iEdge, iCell, iVertex, k, cell1, cell2, vertex1, vertex2, eoe, i, j, cov
-      real (kind=RKIND) :: flux, vorticity_abs, workpv
+      real (kind=RKIND) :: flux  !!!, vorticity_abs, workpv
 
       integer :: nCells, nEdges, nVertices, nVertLevels
       real (kind=RKIND), dimension(:), pointer :: h_s, fVertex, fEdge, dvEdge, dcEdge, areaCell, areaTriangle
       real (kind=RKIND), dimension(:,:), pointer :: vh, weightsOnEdge, kiteAreasOnVertex, h_edge, h, u, v, tend_h, tend_u, &amp;
-                                                    circulation, vorticity, ke, pv_edge, pv_vertex, pv_cell, gradPVn, gradPVt, divergence, &amp;
-                                                    h_vertex, vorticity_cell
-      integer, dimension(:,:), pointer :: cellsOnEdge, cellsOnVertex, verticesOnEdge, edgesOnCell, edgesOnEdge, edgesOnVertex, boundaryEdge, boundaryCell
+!!!                                                    circulation, vorticity, ke, pv_edge, pv_vertex, pv_cell, &amp;
+!!!                                                    gradPVn, gradPVt, divergence, vorticity_cell, &amp;
+                                                    h_vertex 
+      integer, dimension(:,:), pointer :: cellsOnEdge, cellsOnVertex, verticesOnEdge,  &amp;
+                                          edgesOnCell, edgesOnEdge, edgesOnVertex,     &amp;
+                                          boundaryEdge, boundaryCell
       integer, dimension(:), pointer :: nEdgesOnCell, nEdgesOnEdge
       real (kind=RKIND) :: r, h1, h2
       real (kind=RKIND) :: d2fdx2_cell1, d2fdx2_cell2
@@ -856,16 +863,16 @@
       h_vertex    =&gt; s % h_vertex % array
       tend_h      =&gt; s % h % array
       tend_u      =&gt; s % u % array
-      circulation =&gt; s % circulation % array
-      vorticity   =&gt; s % vorticity % array
-      divergence  =&gt; s % divergence % array
-      ke          =&gt; s % ke % array
-      pv_edge     =&gt; s % pv_edge % array
-      pv_vertex   =&gt; s % pv_vertex % array
-      pv_cell     =&gt; s % pv_cell % array
-      vorticity_cell =&gt; s % vorticity_cell % array
-      gradPVn     =&gt; s % gradPVn % array
-      gradPVt     =&gt; s % gradPVt % array
+!!!      circulation =&gt; s % circulation % array
+!!!      vorticity   =&gt; s % vorticity % array
+!!!      divergence  =&gt; s % divergence % array
+!!!      ke          =&gt; s % ke % array
+!!!      pv_edge     =&gt; s % pv_edge % array
+!!!      pv_vertex   =&gt; s % pv_vertex % array
+!!!      pv_cell     =&gt; s % pv_cell % array
+!!!      vorticity_cell =&gt; s % vorticity_cell % array
+!!!      gradPVn     =&gt; s % gradPVn % array
+!!!      gradPVt     =&gt; s % gradPVt % array
 
       weightsOnEdge     =&gt; grid % weightsOnEdge % array
       kiteAreasOnVertex =&gt; grid % kiteAreasOnVertex % array
@@ -1035,73 +1042,73 @@
       !
       ! Compute circulation and relative vorticity at each vertex
       !
-      circulation(:,:) = 0.0
-      do iEdge=1,nEdges
-         do k=1,nVertLevels
-            circulation(k,verticesOnEdge(1,iEdge)) = circulation(k,verticesOnEdge(1,iEdge)) - dcEdge(iEdge) * u(k,iEdge)
-            circulation(k,verticesOnEdge(2,iEdge)) = circulation(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * u(k,iEdge)
-         end do
-      end do
-      do iVertex=1,nVertices
-         do k=1,nVertLevels
-            vorticity(k,iVertex) = circulation(k,iVertex) / areaTriangle(iVertex)
-         end do
-      end do
+!!!      circulation(:,:) = 0.0
+!!!      do iEdge=1,nEdges
+!!!         do k=1,nVertLevels
+!!!            circulation(k,verticesOnEdge(1,iEdge)) = circulation(k,verticesOnEdge(1,iEdge)) - dcEdge(iEdge) * u(k,iEdge)
+!!!            circulation(k,verticesOnEdge(2,iEdge)) = circulation(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * u(k,iEdge)
+!!!         end do
+!!!      end do
+!!!      do iVertex=1,nVertices
+!!!         do k=1,nVertLevels
+!!!            vorticity(k,iVertex) = circulation(k,iVertex) / areaTriangle(iVertex)
+!!!         end do
+!!!      end do
 
 
       !
       ! Compute the divergence at each cell center
       !
-      divergence(:,:) = 0.0
-      do iEdge=1,nEdges
-         cell1 = cellsOnEdge(1,iEdge)
-         cell2 = cellsOnEdge(2,iEdge)
-         if (cell1 &lt;= nCells) then
-            do k=1,nVertLevels
-              divergence(k,cell1) = divergence(k,cell1) + u(k,iEdge)*dvEdge(iEdge)
-            enddo
-         endif
-         if(cell2 &lt;= nCells) then
-            do k=1,nVertLevels
-              divergence(k,cell2) = divergence(k,cell2) - u(k,iEdge)*dvEdge(iEdge)
-            enddo
-         end if
-      end do
-      do iCell = 1,nCells
-        r = 1.0 / areaCell(iCell)
-        do k = 1,nVertLevels
-           divergence(k,iCell) = divergence(k,iCell) * r
-        enddo
-      enddo
+!!!      divergence(:,:) = 0.0
+!!!      do iEdge=1,nEdges
+!!!         cell1 = cellsOnEdge(1,iEdge)
+!!!         cell2 = cellsOnEdge(2,iEdge)
+!!!         if (cell1 &lt;= nCells) then
+!!!            do k=1,nVertLevels
+!!!              divergence(k,cell1) = divergence(k,cell1) + u(k,iEdge)*dvEdge(iEdge)
+!!!            enddo
+!!!         endif
+!!!         if(cell2 &lt;= nCells) then
+!!!            do k=1,nVertLevels
+!!!              divergence(k,cell2) = divergence(k,cell2) - u(k,iEdge)*dvEdge(iEdge)
+!!!            enddo
+!!!         end if
+!!!      end do
+!!!      do iCell = 1,nCells
+!!!        r = 1.0 / areaCell(iCell)
+!!!        do k = 1,nVertLevels
+!!!           divergence(k,iCell) = divergence(k,iCell) * r
+!!!        enddo
+!!!      enddo
 
       !
       ! Compute kinetic energy in each cell
       !
-      ke(:,:) = 0.0
-      do iCell=1,nCells
-         do i=1,nEdgesOnCell(iCell)
-            iEdge = edgesOnCell(i,iCell)
-            do k=1,nVertLevels
-               ke(k,iCell) = ke(k,iCell) + 0.25 * dcEdge(iEdge) * dvEdge(iEdge) * u(k,iEdge)**2.0
-            end do
-         end do
-         do k=1,nVertLevels
-            ke(k,iCell) = ke(k,iCell) / areaCell(iCell)
-         end do
-      end do
+!!!      ke(:,:) = 0.0
+!!!      do iCell=1,nCells
+!!!         do i=1,nEdgesOnCell(iCell)
+!!!            iEdge = edgesOnCell(i,iCell)
+!!!            do k=1,nVertLevels
+!!!               ke(k,iCell) = ke(k,iCell) + 0.25 * dcEdge(iEdge) * dvEdge(iEdge) * u(k,iEdge)**2.0
+!!!            end do
+!!!         end do
+!!!         do k=1,nVertLevels
+!!!            ke(k,iCell) = ke(k,iCell) / areaCell(iCell)
+!!!         end do
+!!!      end do
 
       !
       ! Compute v (tangential) velocities
       !
-      v(:,:) = 0.0
-      do iEdge = 1,nEdges
-         do i=1,nEdgesOnEdge(iEdge)
-            eoe = edgesOnEdge(i,iEdge)
-            do k = 1,nVertLevels
-               v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe)
-            end do
-         end do
-      end do
+!!!      v(:,:) = 0.0
+!!!      do iEdge = 1,nEdges
+!!!         do i=1,nEdgesOnEdge(iEdge)
+!!!            eoe = edgesOnEdge(i,iEdge)
+!!!            do k = 1,nVertLevels
+!!!               v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe)
+!!!            end do
+!!!         end do
+!!!      end do
 
 #ifdef NCAR_FORMULATION
       !
@@ -1131,7 +1138,7 @@
             end do
             h_vertex(k,iVertex) = h_vertex(k,iVertex) / areaTriangle(iVertex)
 
-            pv_vertex(k,iVertex) = (fVertex(iVertex) + vorticity(k,iVertex)) / h_vertex(k,iVertex)
+!!!            pv_vertex(k,iVertex) = (fVertex(iVertex) + vorticity(k,iVertex)) / h_vertex(k,iVertex)
          end do
       end do
 
@@ -1140,78 +1147,78 @@
       ! Compute gradient of PV in the tangent direction
       !   ( this computes gradPVt at all edges bounding real cells and distance-1 ghost cells )
       !
-      do iEdge = 1,nEdges
-         do k = 1,nVertLevels
-           gradPVt(k,iEdge) = (pv_vertex(k,verticesOnEdge(2,iEdge)) - pv_vertex(k,verticesOnEdge(1,iEdge))) / &amp;
-                              dvEdge(iEdge)
-         enddo
-      enddo
+!!!      do iEdge = 1,nEdges
+!!!         do k = 1,nVertLevels
+!!!           gradPVt(k,iEdge) = (pv_vertex(k,verticesOnEdge(2,iEdge)) - pv_vertex(k,verticesOnEdge(1,iEdge))) / &amp;
+!!!                              dvEdge(iEdge)
+!!!         enddo
+!!!      enddo
 
       !
       ! Compute pv at the edges
       !   ( this computes pv_edge at all edges bounding real cells )
       !
-      pv_edge(:,:) = 0.0
-      do iVertex = 1,nVertices
-        do i=1,grid % vertexDegree
-           iEdge = edgesOnVertex(i,iVertex)
-           do k=1,nVertLevels
-              pv_edge(k,iEdge) =  pv_edge(k,iEdge)  + 0.5 * pv_vertex(k,iVertex)
-           end do
-        end do
-      end do
+!!!      pv_edge(:,:) = 0.0
+!!!      do iVertex = 1,nVertices
+!!!        do i=1,grid % vertexDegree
+!!!           iEdge = edgesOnVertex(i,iVertex)
+!!!           do k=1,nVertLevels
+!!!              pv_edge(k,iEdge) =  pv_edge(k,iEdge)  + 0.5 * pv_vertex(k,iVertex)
+!!!           end do
+!!!        end do
+!!!      end do
 
 
       !
       ! Modify PV edge with upstream bias. 
       !
-      do iEdge = 1,nEdges
-         do k = 1,nVertLevels
-           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * v(k,iEdge) * dt * gradPVt(k,iEdge)
-         enddo
-      enddo
+!!!      do iEdge = 1,nEdges
+!!!         do k = 1,nVertLevels
+!!!           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * v(k,iEdge) * dt * gradPVt(k,iEdge)
+!!!         enddo
+!!!      enddo
 
 
       !
       ! Compute pv at cell centers
       !    ( this computes pv_cell for all real cells and distance-1 ghost cells )
       !
-      pv_cell(:,:) = 0.0
-      vorticity_cell(:,:) = 0.0
-      do iVertex = 1, nVertices
-       do i=1,grid % vertexDegree
-         iCell = cellsOnVertex(i,iVertex)
-         if (iCell &lt;= nCells) then
-           do k = 1,nVertLevels
-             pv_cell(k,iCell) = pv_cell(k,iCell) + kiteAreasOnVertex(i, iVertex) * pv_vertex(k, iVertex) / areaCell(iCell)
-             vorticity_cell(k,iCell) = vorticity_cell(k,iCell) + kiteAreasOnVertex(i, iVertex) * vorticity(k, iVertex) / areaCell(iCell)
-           enddo
-         endif
-       enddo
-      enddo
+!!!      pv_cell(:,:) = 0.0
+!!!      vorticity_cell(:,:) = 0.0
+!!!      do iVertex = 1, nVertices
+!!!       do i=1,grid % vertexDegree
+!!!         iCell = cellsOnVertex(i,iVertex)
+!!!         if (iCell &lt;= nCells) then
+!!!           do k = 1,nVertLevels
+!!!             pv_cell(k,iCell) = pv_cell(k,iCell) + kiteAreasOnVertex(i, iVertex) * pv_vertex(k, iVertex) / areaCell(iCell)
+!!!             vorticity_cell(k,iCell) = vorticity_cell(k,iCell) + kiteAreasOnVertex(i, iVertex) * vorticity(k, iVertex) / areaCell(iCell)
+!!!           enddo
+!!!         endif
+!!!       enddo
+!!!      enddo
 
 
       !
       ! Compute gradient of PV in normal direction
       !   ( this computes gradPVn for all edges bounding real cells )
       !
-      gradPVn(:,:) = 0.0
-      do iEdge = 1,nEdges
-        if( cellsOnEdge(1,iEdge) &lt;= nCells .and. cellsOnEdge(2,iEdge) &lt;= nCells) then
-          do k = 1,nVertLevels
-            gradPVn(k,iEdge) = (pv_cell(k,cellsOnEdge(2,iEdge)) - pv_cell(k,cellsOnEdge(1,iEdge))) / &amp;
-                                 dcEdge(iEdge)
-          enddo
-        endif
-      enddo
+!!!      gradPVn(:,:) = 0.0
+!!!      do iEdge = 1,nEdges
+!!!        if( cellsOnEdge(1,iEdge) &lt;= nCells .and. cellsOnEdge(2,iEdge) &lt;= nCells) then
+!!!          do k = 1,nVertLevels
+!!!            gradPVn(k,iEdge) = (pv_cell(k,cellsOnEdge(2,iEdge)) - pv_cell(k,cellsOnEdge(1,iEdge))) / &amp;
+!!!                                 dcEdge(iEdge)
+!!!          enddo
+!!!        endif
+!!!      enddo
 
       ! Modify PV edge with upstream bias.
       !
-      do iEdge = 1,nEdges
-         do k = 1,nVertLevels
-           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * u(k,iEdge) * dt * gradPVn(k,iEdge)
-         enddo
-      enddo
+!!!      do iEdge = 1,nEdges
+!!!         do k = 1,nVertLevels
+!!!           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * u(k,iEdge) * dt * gradPVn(k,iEdge)
+!!!         enddo
+!!!      enddo
 
       !
       ! set pv_edge = fEdge / h_edge at boundary points

</font>
</pre>