<p><b>dwj07@fsu.edu</b> 2012-04-04 13:16:30 -0600 (Wed, 04 Apr 2012)</p><p><br>
        -- TRUNK COMMIT --<br>
<br>
        Fixing a bug in the computation of deriv_two that caused <br>
        striping in the tracer fields when advecting.<br>
<br>
        Changed a fixed sphere radius to use the input grid's radius.<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/mpas/src/core_ocean/mpas_ocn_advection.F
===================================================================
--- trunk/mpas/src/core_ocean/mpas_ocn_advection.F        2012-04-04 17:52:24 UTC (rev 1747)
+++ trunk/mpas/src/core_ocean/mpas_ocn_advection.F        2012-04-04 19:16:30 UTC (rev 1748)
@@ -123,9 +123,9 @@
 
             do i=1,n
                advCells(i+1) = cell_list(i)
-               xc(i) = grid % xCell % array(advCells(i+1))/a
-               yc(i) = grid % yCell % array(advCells(i+1))/a
-               zc(i) = grid % zCell % array(advCells(i+1))/a
+               xc(i) = grid % xCell % array(advCells(i+1))/grid % sphere_radius
+               yc(i) = grid % yCell % array(advCells(i+1))/grid % sphere_radius
+               zc(i) = grid % zCell % array(advCells(i+1))/grid % sphere_radius
             end do
 
             theta_abs(iCell) =  pii/2. - sphere_angle( xc(1), yc(1), zc(1),  &amp;
@@ -143,7 +143,7 @@
                                          xc(i+1), yc(i+1), zc(i+1),  &amp;
                                          xc(ip2), yc(ip2), zc(ip2)   )
 
-               dl_sphere(i) = a*arc_length( xc(1),   yc(1),   zc(1),  &amp;
+               dl_sphere(i) = grid % sphere_radius*arc_length( xc(1),   yc(1),   zc(1),  &amp;
                                             xc(i+1), yc(i+1), zc(i+1) )
             end do
 
@@ -172,8 +172,8 @@
                if ( iCell .ne. grid % CellsOnEdge % array(1,iEdge)) &amp;
                   angle_2d(i) = angle_2d(i) - pii
 
-!               xp(i) = grid % xCell % array(cell_list(i)) - grid % xCell % array(iCell)
-!               yp(i) = grid % yCell % array(cell_list(i)) - grid % yCell % array(iCell)
+!              xp(i) = grid % xCell % array(cell_list(i)) - grid % xCell % array(iCell)
+!              yp(i) = grid % yCell % array(cell_list(i)) - grid % yCell % array(iCell)
 
                xp(i) = grid % dcEdge % array(grid % EdgesOnCell % array(i,iCell)) * cos(angle_2d(i))
                yp(i) = grid % dcEdge % array(grid % EdgesOnCell % array(i,iCell)) * sin(angle_2d(i))
@@ -274,12 +274,12 @@
             if (ip1 &gt; n-1) ip1 = 1
   
             iEdge = grid % EdgesOnCell % array (i,iCell)
-            xv1 = grid % xVertex % array(grid % verticesOnEdge % array (1,iedge))/a
-            yv1 = grid % yVertex % array(grid % verticesOnEdge % array (1,iedge))/a
-            zv1 = grid % zVertex % array(grid % verticesOnEdge % array (1,iedge))/a
-            xv2 = grid % xVertex % array(grid % verticesOnEdge % array (2,iedge))/a
-            yv2 = grid % yVertex % array(grid % verticesOnEdge % array (2,iedge))/a
-            zv2 = grid % zVertex % array(grid % verticesOnEdge % array (2,iedge))/a
+            xv1 = grid % xVertex % array(grid % verticesOnEdge % array (1,iedge))/grid % sphere_radius
+            yv1 = grid % yVertex % array(grid % verticesOnEdge % array (1,iedge))/grid % sphere_radius
+            zv1 = grid % zVertex % array(grid % verticesOnEdge % array (1,iedge))/grid % sphere_radius
+            xv2 = grid % xVertex % array(grid % verticesOnEdge % array (2,iedge))/grid % sphere_radius
+            yv2 = grid % yVertex % array(grid % verticesOnEdge % array (2,iedge))/grid % sphere_radius
+            zv2 = grid % zVertex % array(grid % verticesOnEdge % array (2,iedge))/grid % sphere_radius
   
             if ( grid % on_a_sphere ) then
                call ocn_arc_bisect( xv1, yv1, zv1,  &amp;

</font>
</pre>