<p><b>mperego@fsu.edu</b> 2013-04-16 16:59:25 -0600 (Tue, 16 Apr 2013)</p><p>Branch Land Ice<br>
Modify interface with lifev to allow spherical geometries. <br>
Parameters "maxEdges", "nEdgesOnCell" and "radius" are now passed to velocity solver.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/land_ice_projects/implement_core/src/core_land_ice/mpas_land_ice_lifev.F
===================================================================
--- branches/land_ice_projects/implement_core/src/core_land_ice/mpas_land_ice_lifev.F        2013-04-16 21:39:41 UTC (rev 2759)
+++ branches/land_ice_projects/implement_core/src/core_land_ice/mpas_land_ice_lifev.F        2013-04-16 22:59:25 UTC (rev 2760)
@@ -278,14 +278,16 @@
!
!-----------------------------------------------------------------
- integer :: nCells, nEdges, nVertices, nCellsSolve, nEdgesSolve, nVerticesSolve, nVertLevels
+ integer :: nCells, nEdges, nVertices, nCellsSolve, nEdgesSolve, nVerticesSolve, nVertLevels, maxNEdgesOnCell
integer, dimension(:,:), pointer :: cellsOnEdge, cellsOnVertex, verticesOnCell, verticesOnEdge
- integer, dimension(:), pointer :: indexToCellID
+ integer, dimension(:), pointer :: indexToCellID, nEdgesOnCell
real (kind=RKIND), dimension(:), pointer :: xCell, yCell, zCell, areaTriangle
+ real (kind=RKIND) :: radius
+
! halo exchange arrays
integer, dimension(:), pointer :: sendCellsArray, &
recvCellsArray, &
@@ -309,16 +311,20 @@
nEdges = block % mesh % nEdges
nVertices = block % mesh % nVertices
nVertLevels = block % mesh % nVertLevels
+
+ maxNEdgesOnCell = block % mesh % maxEdges;
cellsOnEdge => block % mesh % cellsOnEdge % array
cellsOnVertex => block % mesh % cellsOnVertex % array
verticesOnCell => block % mesh % verticesOnCell % array
verticesOnEdge => block % mesh % verticesOnEdge % array
indexToCellID => block % mesh % indexToCellID % array
+ nEdgesOnCell => block % mesh % nEdgesOnCell % array
xCell => block % mesh % xCell % array
yCell => block % mesh % yCell % array
zCell => block % mesh % zCell % array
+ radius = block % mesh % sphere_radius
areaTriangle => block % mesh % areaTriangle % array
@@ -334,11 +340,11 @@
#ifdef USE_LIFEV
! These calls are needed for using any of the LifeV velocity solvers
- !zCell is supposed to be zero for L1L2 and FO solvers
+ !zCell is supposed to be zero when working on planar geometries (radius = 0)
!nVertLevels should be equal to nVertLevelsSolve (no split the domain in the vertical direction)
call mpas_timer_start("velocity_solver_set_grid_data")
- call velocity_solver_set_grid_data(nCells, nEdges, nVertices, nVertLevels, nCellsSolve, nEdgesSolve, nVerticesSolve, &
-        cellsOnEdge, cellsOnVertex, verticesOnCell, verticesOnEdge, indexToCellID, xCell, yCell, zCell, areaTriangle, &
+ call velocity_solver_set_grid_data(nCells, nEdges, nVertices, nVertLevels, nCellsSolve, nEdgesSolve, nVerticesSolve, maxNEdgesOnCell, radius, &
+        cellsOnEdge, cellsOnVertex, verticesOnCell, verticesOnEdge, nEdgesOnCell, indexToCellID, xCell, yCell, zCell, areaTriangle, &
        sendCellsArray, recvCellsArray, sendEdgesArray, recvEdgesArray, sendVerticesArray, recvVerticesArray)
call mpas_timer_stop("velocity_solver_set_grid_data")
#else
</font>
</pre>