<p><b>ringler@lanl.gov</b> 2011-11-01 20:36:16 -0600 (Tue, 01 Nov 2011)</p><p><br>
add code to compute KE @ cell centers with contribution from vertices.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/kevc/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/kevc/src/core_ocean/Registry        2011-11-01 20:59:05 UTC (rev 1161)
+++ branches/ocean_projects/kevc/src/core_ocean/Registry        2011-11-02 02:36:16 UTC (rev 1162)
@@ -42,6 +42,7 @@
namelist real hmix config_h_mom_eddy_visc2 0.0
namelist real hmix config_h_mom_eddy_visc4 0.0
namelist logical hmix config_visc_vorticity_term true
+namelist logical hmix config_include_KE_vertex false
namelist real hmix config_h_tracer_eddy_diff2 0.0
namelist real hmix config_h_tracer_eddy_diff4 0.0
namelist real hmix config_apvm_upwinding 0.5
@@ -222,6 +223,8 @@
var persistent real h_edge ( nVertLevels nEdges Time ) 2 - h_edge state - -
var persistent real h_vertex ( nVertLevels nVertices Time ) 2 - h_vertex state - -
var persistent real ke ( nVertLevels nCells Time ) 2 o ke state - -
+var persistent real kev ( nVertLevels nVertices Time ) 2 o kev state - -
+var persistent real kevc ( nVertLevels nCells Time ) 2 o kevc state - -
var persistent real ke_edge ( nVertLevels nEdges Time ) 2 - ke_edge state - -
var persistent real pv_vertex ( nVertLevels nVertices Time ) 2 - pv_vertex state - -
var persistent real pv_cell ( nVertLevels nCells Time ) 2 - pv_cell state - -
Modified: branches/ocean_projects/kevc/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/kevc/src/core_ocean/mpas_ocn_tendency.F        2011-11-01 20:59:05 UTC (rev 1161)
+++ branches/ocean_projects/kevc/src/core_ocean/mpas_ocn_tendency.F        2011-11-02 02:36:16 UTC (rev 1162)
@@ -620,7 +620,7 @@
weightsOnEdge, kiteAreasOnVertex, h_edge, h, u, v, w, pressure,&
circulation, vorticity, ke, ke_edge, MontPot, wTop, &
pv_edge, pv_vertex, pv_cell, gradPVn, gradPVt, divergence, &
- rho, temperature, salinity
+ rho, temperature, salinity, kev, kevc
real (kind=RKIND), dimension(:,:,:), pointer :: tracers
real (kind=RKIND), dimension(:), allocatable:: pTop
real (kind=RKIND), dimension(:,:), allocatable:: div_u
@@ -648,6 +648,8 @@
vorticity => s % vorticity % array
divergence => s % divergence % array
ke => s % ke % array
+ kev => s % kev % array
+ kevc => s % kevc % array
ke_edge => s % ke_edge % array
pv_edge => s % pv_edge % array
pv_vertex => s % pv_vertex % array
@@ -880,6 +882,41 @@
enddo
!
+ ! Compute kinetic energy in each vertex
+ !
+ kev(:,:) = 0.0; kevc(:,:) = 0.0
+ do iEdge=1,nEdges
+ do k=1,nVertLevels
+ kev(k,verticesOnEdge(1,iEdge)) = kev(k,verticesOnEdge(1,iEdge)) + dcEdge(iEdge) * dvEdge(iEdge) * u(k,iEdge)**2
+ kev(k,verticesOnEdge(2,iEdge)) = kev(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * dvEdge(iEdge) * u(k,iEdge)**2
+ end do
+ end do
+ do iVertex = 1,nVertices
+ do k=1,nVertLevels
+ kev(k,iVertex) = kev(k,iVertex) / areaTriangle(iVertex) / 4.0
+ enddo
+ enddo
+ do iVertex = 1, nVertices
+ do i=1,grid % vertexDegree
+ iCell = cellsOnVertex(i,iVertex)
+ do k=1,nVertLevels
+ kevc(k,iCell) = kevc(k,iCell) + kiteAreasOnVertex(i, iVertex) * kev(k, iVertex) / areaCell(iCell)
+ enddo
+ enddo
+ enddo
+
+ !
+ ! Compute kinetic energy in each cell by blending ke and kevc
+ !
+ if(config_include_KE_vertex) then
+ do iCell=1,nCells
+ do k=1,nVertLevels
+ ke(k,iCell) = 5.0/8.0*ke(k,iCell) + 3.0/8.0*kevc(k,iCell)
+ end do
+ end do
+ endif
+
+ !
! Compute v (tangential) velocities
!
v(:,:) = 0.0
</font>
</pre>