<p><b>mhoffman@lanl.gov</b> 2012-05-15 11:54:07 -0600 (Tue, 15 May 2012)</p><p>BRANCH COMMIT - land_ice<br>
Modifying ocn_initialize_advection_rk() to work on a planar mesh without giving a FPE.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/land_ice_projects/implement_core/src/core_ocean/mpas_ocn_advection.F
===================================================================
--- branches/land_ice_projects/implement_core/src/core_ocean/mpas_ocn_advection.F        2012-05-15 17:21:01 UTC (rev 1913)
+++ branches/land_ice_projects/implement_core/src/core_ocean/mpas_ocn_advection.F        2012-05-15 17:54:07 UTC (rev 1914)
@@ -272,16 +272,17 @@
do i=1,grid % nEdgesOnCell % array (iCell)
ip1 = i+1
if (ip1 > n-1) ip1 = 1
+
+ if ( grid % on_a_sphere ) then
+ iEdge = grid % EdgesOnCell % array (i,iCell)
+ 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
- iEdge = grid % EdgesOnCell % array (i,iCell)
- 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, &
xv2, yv2, zv2, &
xec, yec, zec )
@@ -295,7 +296,15 @@
else
thetae(2,grid % EdgesOnCell % array (i,iCell)) = thetae_tmp
end if
-! else
+ else
+ iEdge = grid % EdgesOnCell % array (i,iCell)
+ xv1 = grid % xVertex % array(grid % verticesOnEdge % array (1,iedge))
+ yv1 = grid % yVertex % array(grid % verticesOnEdge % array (1,iedge))
+ zv1 = grid % zVertex % array(grid % verticesOnEdge % array (1,iedge))
+ xv2 = grid % xVertex % array(grid % verticesOnEdge % array (2,iedge))
+ yv2 = grid % yVertex % array(grid % verticesOnEdge % array (2,iedge))
+ zv2 = grid % zVertex % array(grid % verticesOnEdge % array (2,iedge))
+
!
! xe(grid % EdgesOnCell % array (i,iCell)) = 0.5 * (xv1 + xv2)
! ye(grid % EdgesOnCell % array (i,iCell)) = 0.5 * (yv1 + yv2)
</font>
</pre>