<p><b>qchen3@fsu.edu</b> 2010-10-27 20:11:18 -0600 (Wed, 27 Oct 2010)</p><p>BRANCH COMMIT<br>
<br>
In compute_scalar_tend, replaced some long derive type expressions with pointers. <br>
</p><hr noshade><pre><font color="gray">Modified: branches/swmodel_del4/src/core_sw/module_time_integration.F
===================================================================
--- branches/swmodel_del4/src/core_sw/module_time_integration.F        2010-10-27 21:11:07 UTC (rev 583)
+++ branches/swmodel_del4/src/core_sw/module_time_integration.F        2010-10-28 02:11:18 UTC (rev 584)
@@ -547,7 +547,7 @@
       tracers     =&gt; s % tracers % array
       cellsOnEdge =&gt; grid % cellsOnEdge % array
       boundaryCell=&gt; grid % boundaryCell % array
-      boundaryEdge      =&gt; grid % boundaryEdge % array
+      boundaryEdge=&gt; grid % boundaryEdge % array
       areaCell    =&gt; grid % areaCell % array
       tracer_tend =&gt; tend % tracers % array
 
@@ -698,23 +698,21 @@
          where(boundaryEdge.eq.1) boundaryMask=0.0
 
          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)
+            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 = h_tracer_eddy_diff2 &amp;
-                    *(  s % tracers % array(iTracer,k,cell2) &amp;
-                      - s % tracers % array(iTracer,k,cell1))/grid % dcEdge % array(iEdge)
+                    *( tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge)
 
                  ! div(h \kappa_2 </font>
<font color="gray">abla \phi) at cell center
-                 flux = grid % dvEdge % array(iEdge) * s % h_edge % array(k,iEdge) &amp;
-                    * tracer_turb_flux * boundaryMask(k, iEdge)
-                 tend % tracers % array(iTracer,k,cell1) = tend % tracers % array(iTracer,k,cell1) + flux * invAreaCell1
-                 tend % tracers % array(iTracer,k,cell2) = tend % tracers % array(iTracer,k,cell2) - flux * invAreaCell2
+                 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
 
@@ -743,19 +741,15 @@
 
          ! first del2: div(h </font>
<font color="gray">abla \phi) at cell center
          do iEdge=1,grid % nEdges
-            cell1 = grid % cellsOnEdge % array(1,iEdge)
-            cell2 = grid % cellsOnEdge % array(2,iEdge)
+            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;
-                    + grid % dvEdge % array(iEdge) * s % h_edge % array(k,iEdge) &amp;
-                      *(s % tracers % array(iTracer,k,cell2) - s % tracers % array(iTracer,k,cell1)) &amp;
-                      /grid % dcEdge % array(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;
-                    - grid % dvEdge % array(iEdge)*s % h_edge % array(k,iEdge) &amp;
-                    *(s % tracers % array(iTracer,k,cell2) - s % tracers % array(iTracer,k,cell1)) &amp;
-                    /grid % dcEdge % array(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
 
@@ -779,16 +773,10 @@
 
             do k=1,grid % nVertLevels
             do iTracer=1,grid % nTracers
-               tracer_turb_flux = h_tracer_eddy_diff4 &amp;
-                  *(  delsq_tracer(iTracer,k,cell2)  &amp;
-                    - delsq_tracer(iTracer,k,cell1))/grid % dcEdge % array(iEdge)
-               flux = grid % dvEdge %array(iEdge) * tracer_turb_flux
-
-               tend % tracers % array(iTracer,k,cell1) = tend % tracers % array(iTracer,k,cell1) &amp; 
-                  - flux * invAreaCell1 * boundaryMask(k,iEdge)
-               tend % tracers % array(iTracer,k,cell2) = tend % tracers % array(iTracer,k,cell2) &amp;
-                  + flux * invAreaCell2 * boundaryMask(k,iEdge)
-
+               tracer_turb_flux = 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
 

</font>
</pre>