<p><b>lipscomb</b> 2012-01-10 16:42:35 -0700 (Tue, 10 Jan 2012)</p><p><br>
Cleanup to remove variables no longer in the Registry.<br>
<br>
Code builds again.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/land_ice/mpas/src/core_land_ice/Makefile
===================================================================
--- branches/land_ice/mpas/src/core_land_ice/Makefile        2012-01-10 23:37:56 UTC (rev 1350)
+++ branches/land_ice/mpas/src/core_land_ice/Makefile        2012-01-10 23:42:35 UTC (rev 1351)
@@ -16,7 +16,7 @@
mpas_land_ice_advection.o:
-mpas_land_ice_time_integration.o:
+mpas_land_ice_time_integration.o: mpas_land_ice_vel.o
mpas_land_ice_vel.o:
Modified: branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_mpas_core.F
===================================================================
--- branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_mpas_core.F        2012-01-10 23:37:56 UTC (rev 1350)
+++ branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_mpas_core.F        2012-01-10 23:42:35 UTC (rev 1351)
@@ -131,7 +131,7 @@
call mpas_rbf_interp_initialize(mesh)
call mpas_init_reconstruct(mesh)
- call mpas_reconstruct(mesh, block % state % time_levs(1) % state % u % array, &
+ call mpas_reconstruct(mesh, block % state % time_levs(1) % state % unorm % array, &
block % state % time_levs(1) % state % uReconstructX % array, &
block % state % time_levs(1) % state % uReconstructY % array, &
block % state % time_levs(1) % state % uReconstructZ % array, &
Modified: branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_time_integration.F
===================================================================
--- branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_time_integration.F        2012-01-10 23:37:56 UTC (rev 1350)
+++ branches/land_ice/mpas/src/core_land_ice/mpas_land_ice_time_integration.F        2012-01-10 23:42:35 UTC (rev 1351)
@@ -5,11 +5,10 @@
use mpas_configure
use mpas_constants
use mpas_dmpar
+ use land_ice_vel, only: land_ice_vel_solve
-
contains
-
subroutine land_ice_timestep(domain, dt, timeStamp)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Advance model state forward in time by the specified time step
@@ -370,10 +369,10 @@
!!! do j = 1,nEdgesOnEdge(iEdge)
!!! eoe = edgesOnEdge(j,iEdge)
!!! workpv = 0.5 * (pv_edge(k,iEdge) + pv_edge(k,eoe))
-!!! q = q + weightsOnEdge(j,iEdge) * u(k,eoe) * workpv * h_edge(k,eoe)
+!!! q = q + weightsOnEdge(j,iEdge) * unorm(k,eoe) * workpv * h_edge(k,eoe)
!!! end do
-!!! tend_u(k,iEdge) = &
+!!! tend_unorm(k,iEdge) = &
!!! q &
!!! - ( ke(k,cell2) - ke(k,cell1) + &
!!! gravity * (h(k,cell2) + h_s(cell2) - h(k,cell1) - h_s(cell1)) &
@@ -401,7 +400,7 @@
!!! workpv = 2.0 * vorticity_abs / (h(k,cell1) + h(k,cell2))
-!!! tend_u(k,iEdge) = workpv * vh(k,iEdge) - &
+!!! tend_unorm(k,iEdge) = workpv * vh(k,iEdge) - &
!!! (ke(k,cell2) - ke(k,cell1) + &
!!! gravity * (h(k,cell2) + h_s(cell2) - h(k,cell1) - h_s(cell1)) &
!!! ) / &
@@ -423,7 +422,7 @@
!!! u_diffusion = ( divergence(k,cell2) - divergence(k,cell1) ) / dcEdge(iEdge) &
!!! -(vorticity(k,vertex2) - vorticity(k,vertex1) ) / dvEdge(iEdge)
!!! u_diffusion = meshScalingDel2(iEdge) * config_h_mom_eddy_visc2 * u_diffusion
-!!! tend_u(k,iEdge) = tend_u(k,iEdge) + u_diffusion
+!!! tend_unorm(k,iEdge) = tend_unorm(k,iEdge) + u_diffusion
!!! end do
!!!! end do
!!! end if
@@ -451,7 +450,7 @@
!!! do k=1,nVertLevels
-!!! delsq_u(k,iEdge) = ( divergence(k,cell2) - divergence(k,cell1) ) / dcEdge(iEdge) &
+!!! delsq_unorm(k,iEdge) = ( divergence(k,cell2) - divergence(k,cell1) ) / dcEdge(iEdge) &
!!! -( vorticity(k,vertex2) - vorticity(k,vertex1)) / dvEdge(iEdge)
!!! end do
@@ -540,7 +539,7 @@
!!! + ke(1,cellsOnEdge(2,iEdge)))
!!! tend_u(1,iEdge) = tend_u(1,iEdge) &
-!!! - 1.0e-3*u(1,iEdge) &
+!!! - 1.0e-3*unorm(1,iEdge) &
!!! *sqrt(2.0*ke_edge)/h_edge(1,iEdge)
!!! end do
!!! endif
@@ -605,7 +604,7 @@
do k=1,grid % nVertLevels
do iTracer=1,grid % nTracers
tracer_edge = 0.5 * (tracers(iTracer,k,cell1) + tracers(iTracer,k,cell2))
- flux = u(k,iEdge) * dvEdge(iEdge) * h_edge(k,iEdge) * tracer_edge
+ flux = unorm(k,iEdge) * dvEdge(iEdge) * h_edge(k,iEdge) * tracer_edge
tracer_tend(iTracer,k,cell1) = tracer_tend(iTracer,k,cell1) - flux/areaCell(cell1)
tracer_tend(iTracer,k,cell2) = tracer_tend(iTracer,k,cell2) + flux/areaCell(cell2)
end do
@@ -650,14 +649,14 @@
endif
!-- if u > 0:
- if (u(k,iEdge) > 0) then
- flux = dvEdge(iEdge) * u(k,iEdge) * h_edge(k,iEdge) * ( &
+ if (unorm(k,iEdge) > 0) then
+ flux = dvEdge(iEdge) * unorm(k,iEdge) * h_edge(k,iEdge) * ( &
0.5*(tracers(iTracer,k,cell1) + tracers(iTracer,k,cell2)) &
-(dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12. &
-(dcEdge(iEdge) **2) * coef_3rd_order*(d2fdx2_cell1 - d2fdx2_cell2) / 12. )
!-- else u <= 0:
else
- flux = dvEdge(iEdge) * u(k,iEdge) * h_edge(k,iEdge) * ( &
+ flux = dvEdge(iEdge) * unorm(k,iEdge) * h_edge(k,iEdge) * ( &
0.5*(tracers(iTracer,k,cell1) + tracers(iTracer,k,cell2)) &
-(dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12. &
+(dcEdge(iEdge) **2) * coef_3rd_order*(d2fdx2_cell1 - d2fdx2_cell2) / 12. )
@@ -707,7 +706,7 @@
endif
- flux = dvEdge(iEdge) * u(k,iEdge) * h_edge(k,iEdge) * ( &
+ flux = dvEdge(iEdge) * unorm(k,iEdge) * h_edge(k,iEdge) * ( &
0.5*(tracers(iTracer,k,cell1) + tracers(iTracer,k,cell2)) &
-(dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12. )
@@ -938,7 +937,7 @@
cell2 = cellsOnEdge(2,iEdge)
if (cell1 <= grid%nCells .and. cell2 <= grid%nCells) then
do k=1,grid % nVertLevels
- h_edge(k,iEdge) = 0.5 * (h(k,cell1) + h(k,cell2))
+ h_edge(k,iEdge) = 0.5 * (thck_layer(k,cell1) + thck_layer(k,cell2))
end do
end if
end do
@@ -960,33 +959,33 @@
!-- if not a boundary cell
if(boundaryCell(k,cell1).eq.0.and.boundaryCell(k,cell2).eq.0) then
- d2fdx2_cell1 = deriv_two(1,1,iEdge) * h(k,cell1)
- d2fdx2_cell2 = deriv_two(1,2,iEdge) * h(k,cell2)
+ d2fdx2_cell1 = deriv_two(1,1,iEdge) * thck_layer(k,cell1)
+ d2fdx2_cell2 = deriv_two(1,2,iEdge) * thck_layer(k,cell2)
!-- all edges of cell 1
do i=1, grid % nEdgesOnCell % array (cell1)
d2fdx2_cell1 = d2fdx2_cell1 + &
- deriv_two(i+1,1,iEdge) * h(k,grid % CellsOnCell % array (i,cell1))
+ deriv_two(i+1,1,iEdge) * thck_layer(k,grid % CellsOnCell % array (i,cell1))
end do
!-- all edges of cell 2
do i=1, grid % nEdgesOnCell % array (cell2)
d2fdx2_cell2 = d2fdx2_cell2 + &
- deriv_two(i+1,2,iEdge) * h(k,grid % CellsOnCell % array (i,cell2))
+ deriv_two(i+1,2,iEdge) * thck_layer(k,grid % CellsOnCell % array (i,cell2))
end do
endif
!-- if u > 0:
- if (u(k,iEdge) > 0) then
+ if (unorm(k,iEdge) > 0) then
h_edge(k,iEdge) = &
- 0.5*(h(k,cell1) + h(k,cell2)) &
+ 0.5*(thck_layer(k,cell1) + thck_layer(k,cell2)) &
-(dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12. &
-(dcEdge(iEdge) **2) * coef_3rd_order*(d2fdx2_cell1 - d2fdx2_cell2) / 12.
- !-- else u <= 0:
+ !-- else unorm <= 0:
else
h_edge(k,iEdge) = &
- 0.5*(h(k,cell1) + h(k,cell2)) &
+ 0.5*(thck_layer(k,cell1) + thck_layer(k,cell2)) &
-(dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12. &
+(dcEdge(iEdge) **2) * coef_3rd_order*(d2fdx2_cell1 - d2fdx2_cell2) / 12.
end if
@@ -1012,25 +1011,25 @@
!-- if not a boundary cell
if(boundaryCell(k,cell1).eq.0.and.boundaryCell(k,cell2).eq.0) then
- d2fdx2_cell1 = deriv_two(1,1,iEdge) * h(k,cell1)
- d2fdx2_cell2 = deriv_two(1,2,iEdge) * h(k,cell2)
+ d2fdx2_cell1 = deriv_two(1,1,iEdge) * thck_layer(k,cell1)
+ d2fdx2_cell2 = deriv_two(1,2,iEdge) * thck_layer(k,cell2)
!-- all edges of cell 1
do i=1, grid % nEdgesOnCell % array (cell1)
d2fdx2_cell1 = d2fdx2_cell1 + &
- deriv_two(i+1,1,iEdge) * h(k,grid % CellsOnCell % array (i,cell1))
+ deriv_two(i+1,1,iEdge) * thck_layer(k,grid % CellsOnCell % array (i,cell1))
end do
!-- all edges of cell 2
do i=1, grid % nEdgesOnCell % array (cell2)
d2fdx2_cell2 = d2fdx2_cell2 + &
- deriv_two(i+1,2,iEdge) * h(k,grid % CellsOnCell % array (i,cell2))
+ deriv_two(i+1,2,iEdge) * thck_layer(k,grid % CellsOnCell % array (i,cell2))
end do
endif
h_edge(k,iEdge) = &
- 0.5*(h(k,cell1) + h(k,cell2)) &
+ 0.5*(thck_layer(k,cell1) + thck_layer(k,cell2)) &
-(dcEdge(iEdge) **2) * (d2fdx2_cell1 + d2fdx2_cell2) / 12.
end do ! do k
@@ -1043,7 +1042,7 @@
! set the velocity in the nEdges+1 slot to zero, this is a dummy address
! used to when reading for edges that do not exist
!
- u(:,nEdges+1) = 0.0
+ unorm(:,nEdges+1) = 0.0
!
! Compute circulation and relative vorticity at each vertex
@@ -1051,8 +1050,8 @@
!!! circulation(:,:) = 0.0
!!! do iEdge=1,nEdges
!!! do k=1,nVertLevels
-!!! circulation(k,verticesOnEdge(1,iEdge)) = circulation(k,verticesOnEdge(1,iEdge)) - dcEdge(iEdge) * u(k,iEdge)
-!!! circulation(k,verticesOnEdge(2,iEdge)) = circulation(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * u(k,iEdge)
+!!! circulation(k,verticesOnEdge(1,iEdge)) = circulation(k,verticesOnEdge(1,iEdge)) - dcEdge(iEdge) * unorm(k,iEdge)
+!!! circulation(k,verticesOnEdge(2,iEdge)) = circulation(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * unorm(k,iEdge)
!!! end do
!!! end do
!!! do iVertex=1,nVertices
@@ -1071,12 +1070,12 @@
!!! cell2 = cellsOnEdge(2,iEdge)
!!! if (cell1 <= nCells) then
!!! do k=1,nVertLevels
-!!! divergence(k,cell1) = divergence(k,cell1) + u(k,iEdge)*dvEdge(iEdge)
+!!! divergence(k,cell1) = divergence(k,cell1) + unorm(k,iEdge)*dvEdge(iEdge)
!!! enddo
!!! endif
!!! if(cell2 <= nCells) then
!!! do k=1,nVertLevels
-!!! divergence(k,cell2) = divergence(k,cell2) - u(k,iEdge)*dvEdge(iEdge)
+!!! divergence(k,cell2) = divergence(k,cell2) - unorm(k,iEdge)*dvEdge(iEdge)
!!! enddo
!!! end if
!!! end do
@@ -1095,7 +1094,7 @@
!!! do i=1,nEdgesOnCell(iCell)
!!! iEdge = edgesOnCell(i,iCell)
!!! do k=1,nVertLevels
-!!! ke(k,iCell) = ke(k,iCell) + 0.25 * dcEdge(iEdge) * dvEdge(iEdge) * u(k,iEdge)**2.0
+!!! ke(k,iCell) = ke(k,iCell) + 0.25 * dcEdge(iEdge) * dvEdge(iEdge) * unorm(k,iEdge)**2.0
!!! end do
!!! end do
!!! do k=1,nVertLevels
@@ -1111,7 +1110,7 @@
!!! do i=1,nEdgesOnEdge(iEdge)
!!! eoe = edgesOnEdge(i,iEdge)
!!! do k = 1,nVertLevels
-!!! v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe)
+!!! v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * unorm(k, eoe)
!!! end do
!!! end do
!!! end do
@@ -1125,7 +1124,7 @@
do j=1,nEdgesOnEdge(iEdge)
eoe = edgesOnEdge(j,iEdge)
do k=1,nVertLevels
- vh(k,iEdge) = vh(k,iEdge) + weightsOnEdge(j,iEdge) * u(k,eoe) * h_edge(k,eoe)
+ vh(k,iEdge) = vh(k,iEdge) + weightsOnEdge(j,iEdge) * unorm(k,eoe) * h_edge(k,eoe)
end do
end do
end do
@@ -1140,7 +1139,7 @@
do k=1,nVertLevels
h_vertex(k,iVertex) = 0.0
do i=1,grid % vertexDegree
- h_vertex(k,iVertex) = h_vertex(k,iVertex) + h(k,cellsOnVertex(i,iVertex)) * kiteAreasOnVertex(i,iVertex)
+ h_vertex(k,iVertex) = h_vertex(k,iVertex) + thck_layer(k,cellsOnVertex(i,iVertex)) * kiteAreasOnVertex(i,iVertex)
end do
h_vertex(k,iVertex) = h_vertex(k,iVertex) / areaTriangle(iVertex)
@@ -1222,7 +1221,7 @@
!
!!! do iEdge = 1,nEdges
!!! do k = 1,nVertLevels
-!!! pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * u(k,iEdge) * dt * gradPVn(k,iEdge)
+!!! pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * unorm(k,iEdge) * dt * gradPVn(k,iEdge)
!!! enddo
!!! enddo
@@ -1237,11 +1236,11 @@
! if(boundaryEdge(k,iEdge).eq.1) then
! v(k,iEdge) = 0.0
! if(cell1.gt.0) then
- ! h1 = h(k,cell1)
+ ! h1 = thck_layer(k,cell1)
! pv_edge(k,iEdge) = fEdge(iEdge) / h1
! h_edge(k,iEdge) = h1
! else
- ! h2 = h(k,cell2)
+ ! h2 = thck_layer(k,cell2)
! pv_edge(k,iEdge) = fEdge(iEdge) / h2
! h_edge(k,iEdge) = h2
! endif
@@ -1280,7 +1279,7 @@
nVertLevels = grid % nVertLevels
boundaryEdge => grid % boundaryEdge % array
- tend_u => tend % u % array
+!!! tend_u => tend % u % array
if(maxval(boundaryEdge).le.0) return
@@ -1288,7 +1287,7 @@
do k = 1,nVertLevels
if(boundaryEdge(k,iEdge).eq.1) then
- tend_u(k,iEdge) = 0.0
+!!! tend_u(k,iEdge) = 0.0
endif
enddo
</font>
</pre>