<p><b>gaw06e@fsu.edu</b> 2011-06-04 17:59:53 -0600 (Sat, 04 Jun 2011)</p><p>- removed hardcoded if statements that altered areaCell/dvEdge values now that alter_grid_for_triangle_borders is implemented<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/triangle_border_swm/src/core_sw/module_time_integration.F
===================================================================
--- branches/ocean_projects/triangle_border_swm/src/core_sw/module_time_integration.F        2011-06-04 23:37:20 UTC (rev 874)
+++ branches/ocean_projects/triangle_border_swm/src/core_sw/module_time_integration.F        2011-06-04 23:59:53 UTC (rev 875)
@@ -274,7 +274,6 @@
       real (kind=RKIND), dimension(:,:), pointer :: u_src
       real (kind=RKIND), parameter :: rho_ref = 1000.0
       real (kind=RKIND) :: ke_edge
-      real (kind=RKIND) :: thisdvEdge
 
       h           =&gt; s % h % array
       u           =&gt; s % u % array
@@ -325,24 +324,14 @@
       do iEdge=1,nEdges
          cell1 = cellsOnEdge(1,iEdge)
          cell2 = cellsOnEdge(2,iEdge)
-         if (boundaryEdge(1,iEdge).eq.1) then
-            thisdvEdge = dvEdge(iEdge) / 2
-         else
-            thisdvEdge = dvEdge(iEdge)
-         end if
          do k=1,nVertLevels
-            !flux = u(k,iEdge) * dvEdge(iEdge) * h_edge(k,iEdge)
-            flux = u(k,iEdge) * thisdvEdge * h_edge(k,iEdge)
+            flux = u(k,iEdge) * dvEdge(iEdge) * h_edge(k,iEdge)
             tend_h(k,cell1) = tend_h(k,cell1) - flux
             tend_h(k,cell2) = tend_h(k,cell2) + flux
          end do
       end do 
       do iCell=1,grid % nCellsSolve
-         if (boundaryCell(1,iCell).eq.1) then 
-            r = 1.0 / ( areaCell(iCell) * 2.0 )
-         else
-            r = 1.0 / areaCell(iCell)
-         end if
+         r = 1.0 / areaCell(iCell)
          do k=1,nVertLevels
             tend_h(k,iCell) = tend_h(k,iCell) * r
          end do
@@ -412,15 +401,9 @@
             cell2 = cellsOnEdge(2,iEdge)
             vertex1 = verticesOnEdge(1,iEdge)
             vertex2 = verticesOnEdge(2,iEdge)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            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)
-                  -(vorticity(k,vertex2)  - vorticity(k,vertex1) ) / thisdvEdge
+                   -(vorticity(k,vertex2)  - vorticity(k,vertex1) ) / dvEdge(iEdge)
                u_diffusion = config_h_mom_eddy_visc2 * u_diffusion
                tend_u(k,iEdge) = tend_u(k,iEdge) + u_diffusion
             end do
@@ -480,24 +463,15 @@
          do iEdge=1,nEdges
             cell1 = cellsOnEdge(1,iEdge)
             cell2 = cellsOnEdge(2,iEdge)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            end if
             do k=1,nVertLevels
                delsq_divergence(k,cell1) = delsq_divergence(k,cell1) &amp;
-                     + delsq_u(k,iEdge)*thisdvEdge
+                     + delsq_u(k,iEdge)*dvEdge(iEdge)
                delsq_divergence(k,cell2) = delsq_divergence(k,cell2) &amp;
-                     - delsq_u(k,iEdge)*thisdvEdge
+                     - delsq_u(k,iEdge)*dvEdge(iEdge)
             end do
          end do
          do iCell = 1,nCells
-            if (boundaryCell(1,iCell).eq.1) then 
-               r = 1.0 / ( areaCell(iCell) * 2.0 )
-           else
-               r = 1.0 / areaCell(iCell)
-            end if
+            r = 1.0 / areaCell(iCell)
             do k = 1,nVertLevels
                delsq_divergence(k,iCell) = delsq_divergence(k,iCell) * r
             end do
@@ -510,17 +484,12 @@
            cell2 = cellsOnEdge(2,iEdge)
            vertex1 = verticesOnEdge(1,iEdge)
            vertex2 = verticesOnEdge(2,iEdge)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            end if
            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) ) / thisdvEdge
+                   - delsq_vorticity(k,vertex1) ) / dvEdge(iEdge)
 
               u_diffusion = config_h_mom_eddy_visc4 * u_diffusion
               tend_u(k,iEdge) = tend_u(k,iEdge) - u_diffusion
@@ -592,8 +561,6 @@
       real (kind=RKIND) :: coef_3rd_order
       real (kind=RKIND), dimension(:,:), pointer :: u, h_edge
 
-      real (kind=RKIND) :: thisdvEdge
-
       u           =&gt; s % u % array
       h_edge      =&gt; s % h_edge % array
       dcEdge      =&gt; grid % dcEdge % array
@@ -619,26 +586,13 @@
       do iEdge=1,grid % nEdges
             cell1 = cellsOnEdge(1,iEdge)
             cell2 = cellsOnEdge(2,iEdge)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            end if
             if (cell1 &lt;= grid%nCells .and. cell2 &lt;= grid%nCells) then
-               if (boundaryCell(1,cell1).eq.1) then 
-                  invAreaCell1 = 1.0 / ( areaCell(cell1) * 2.0 )
-               else
-                  invAreaCell1 = 1.0 / areaCell(cell1)
-               end if
-               if (boundaryCell(1,cell2).eq.1) then 
-                  invAreaCell2 = 1.0 / ( areaCell(cell2) * 2.0 )
-               else
-                  invAreaCell2 = 1.0 / areaCell(cell2)
-               end if
+               invAreaCell1 = 1.0 / areaCell(cell1)
+               invAreaCell2 = 1.0 / areaCell(cell2)
                do k=1,grid % nVertLevels
                   do iTracer=1,grid % nTracers
                      tracer_edge = 0.5 * (tracers(iTracer,k,cell1) + tracers(iTracer,k,cell2))
-                     flux = u(k,iEdge) * thisdvEdge * h_edge(k,iEdge) * tracer_edge
+                     flux = u(k,iEdge) * dvEdge(iEdge) * h_edge(k,iEdge) * tracer_edge
                      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 
@@ -769,21 +723,8 @@
          do iEdge=1,grid % nEdges
             cell1 = cellsOnEdge(1,iEdge)
             cell2 = cellsOnEdge(2,iEdge)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            end if
-            if (boundaryCell(1,cell1).eq.1) then 
-               invAreaCell1 = 1.0 / ( areaCell(cell1) * 2.0 )
-            else
-               invAreaCell1 = 1.0 / areaCell(cell1)
-            end if
-            if (boundaryCell(1,cell2).eq.1) then 
-               invAreaCell2 = 1.0 / ( areaCell(cell2) * 2.0 )
-            else
-               invAreaCell2 = 1.0 / areaCell(cell2)
-            end if
+            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="gray">abla \phi on edge
@@ -791,7 +732,7 @@
                     *( tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge)
 
                  ! div(h \kappa_2 </font>
<font color="gray">abla \phi) at cell center
-                 flux = thisdvEdge * h_edge(k,iEdge) * tracer_turb_flux * boundaryMask(k, iEdge)
+                 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
@@ -824,29 +765,19 @@
          do iEdge=1,grid % nEdges
             cell1 = cellsOnEdge(1,iEdge)
             cell2 = cellsOnEdge(2,iEdge)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            end if
             do k=1,grid % nVertLevels
               do iTracer=1, grid % nTracers
                  delsq_tracer(iTracer,k,cell1) = delsq_tracer(iTracer,k,cell1) &amp;
-                    + thisdvEdge * h_edge(k,iEdge) * (tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge) * boundaryMask(k,iEdge)
+                    + 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;
-                    - thisdvEdge * h_edge(k,iEdge) * (tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge) * boundaryMask(k,iEdge)
+                    - 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
 
          do iCell = 1, grid % nCells
-            if (boundaryCell(1,cell1).eq.1) then 
-               r = 1.0 / ( areaCell(cell1) * 2.0 )
-            else
-               r = 1.0 / areaCell(cell1)
-            end if
-            !r = 1.0 / grid % areaCell % array(iCell)
+            r = 1.0 / areaCell(cell1)
             do k=1,grid % nVertLevels
             do iTracer=1,grid % nTracers
                delsq_tracer(iTracer,k,iCell) = delsq_tracer(iTracer,k,iCell) * r
@@ -858,28 +789,12 @@
          do iEdge=1,grid % nEdges
             cell1 = grid % cellsOnEdge % array(1,iEdge)
             cell2 = grid % cellsOnEdge % array(2,iEdge)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            end if
-            if (boundaryCell(1,cell1).eq.1) then 
-               invAreaCell1 = 1.0 / ( areaCell(cell1) * 2.0 )
-            else
-               invAreaCell1 = 1.0 / areaCell(cell1)
-            end if
-            if (boundaryCell(1,cell2).eq.1) then 
-               invAreaCell2 = 1.0 / ( areaCell(cell2) * 2.0 )
-            else
-               invAreaCell2 = 1.0 / areaCell(cell2)
-            end if
-            !invAreaCell1 = 1.0 / grid % areaCell % array(cell1)
-            !invAreaCell2 = 1.0 / grid % areaCell % array(cell2)
-
+            invAreaCell1 = 1.0 / areaCell(cell1)
+            invAreaCell2 = 1.0 / areaCell(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 = thisdvEdge * tracer_turb_flux
+               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
@@ -926,7 +841,6 @@
       real (kind=RKIND) :: d2fdx2_cell1, d2fdx2_cell2
       real (kind=RKIND), dimension(:,:,:), pointer :: deriv_two
       real (kind=RKIND) :: coef_3rd_order
-      real (kind=RKIND) :: thisdvEdge
 
       h           =&gt; s % h % array
       u           =&gt; s % u % array
@@ -1139,29 +1053,19 @@
       do iEdge=1,nEdges
          cell1 = cellsOnEdge(1,iEdge)
          cell2 = cellsOnEdge(2,iEdge)
-         if (boundaryEdge(1,iEdge).eq.1) then
-            thisdvEdge = dvEdge(iEdge) / 2
-         else
-            thisdvEdge = dvEdge(iEdge)
-         end if
          if (cell1 &lt;= nCells) then
             do k=1,nVertLevels
-              divergence(k,cell1) = divergence(k,cell1) + u(k,iEdge)*thisdvEdge
+              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)*thisdvEdge
+              divergence(k,cell2) = divergence(k,cell2) - u(k,iEdge)*dvEdge(iEdge)
             enddo
          end if
       end do
       do iCell = 1,nCells
-         if (boundaryCell(1,iCell).eq.1) then 
-            r = 1.0 / ( areaCell(iCell) * 2.0 )
-         else
-            r = 1.0 / areaCell(iCell)
-         end if
-        !r = 1.0 / areaCell(iCell)
+         r = 1.0 / areaCell(iCell)
          do k = 1,nVertLevels
             divergence(k,iCell) = divergence(k,iCell) * r
          enddo
@@ -1172,20 +1076,11 @@
       !
       ke(:,:) = 0.0
       do iCell=1,nCells
-         if (boundaryCell(1,iCell).eq.1) then 
-            r = 1.0 / ( areaCell(iCell) * 2.0 )
-         else
-            r = 1.0 / areaCell(iCell)
-         end if
+         r = 1.0 / areaCell(iCell)
          do i=1,nEdgesOnCell(iCell)
             iEdge = edgesOnCell(i,iCell)
-            if (boundaryEdge(1,iEdge).eq.1) then
-               thisdvEdge = dvEdge(iEdge) / 2
-            else
-               thisdvEdge = dvEdge(iEdge)
-            end if
             do k=1,nVertLevels
-               ke(k,iCell) = ke(k,iCell) + 0.25 * dcEdge(iEdge) * thisdvEdge * u(k,iEdge)**2.0
+               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
@@ -1244,14 +1139,9 @@
       !   ( this computes gradPVt at all edges bounding real cells and distance-1 ghost cells )
       !
       do iEdge = 1,nEdges
-         if (boundaryEdge(1,iEdge).eq.1) then
-            thisdvEdge = dvEdge(iEdge) / 2
-         else
-            thisdvEdge = dvEdge(iEdge)
-         end if
          do k = 1,nVertLevels
            gradPVt(k,iEdge) = (pv_vertex(k,verticesOnEdge(2,iEdge)) - pv_vertex(k,verticesOnEdge(1,iEdge))) / &amp;
-                              thisdvEdge
+                              dvEdge(iEdge)
          enddo
       enddo
 
@@ -1289,11 +1179,7 @@
       do iVertex = 1, nVertices
        do i=1,grid % vertexDegree
          iCell = cellsOnVertex(i,iVertex)
-         if (boundaryCell(1,iCell).eq.1) then 
-            r = 1.0 / ( areaCell(iCell) * 2.0 )
-         else
-            r = 1.0 / areaCell(iCell)
-         end if
+         r = 1.0 / areaCell(iCell)
          if (iCell &lt;= nCells) then
            do k = 1,nVertLevels
              pv_cell(k,iCell) = pv_cell(k,iCell) + kiteAreasOnVertex(i, iVertex) * pv_vertex(k, iVertex) * r

</font>
</pre>