<p><b>duda</b> 2009-10-29 11:01:25 -0600 (Thu, 29 Oct 2009)</p><p>Minor changes to no-slip boundary condition: for boundary edges, just <br>
set tendencies for normal velocity to zero in enforce_uBC() and set <br>
tangential velocities to zero in compute_solve_diagnostics(). It is<br>
assumed that velocities will initially be zero for boundary edges.<br>
<br>
M src/module_time_integration.F<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/swmodel/src/module_time_integration.F
===================================================================
--- trunk/swmodel/src/module_time_integration.F        2009-10-27 23:35:15 UTC (rev 68)
+++ trunk/swmodel/src/module_time_integration.F        2009-10-29 17:01:25 UTC (rev 69)
@@ -124,7 +124,7 @@
do while (associated(block))
call compute_tend(block % intermediate_step(TEND), block % intermediate_step(PROVIS), block % mesh)
call compute_scalar_tend(block % intermediate_step(TEND), block % intermediate_step(PROVIS), block % mesh)
- call enforce_uBC(block % intermediate_step(TEND), block % intermediate_step(PROVIS), block % mesh)
+ call enforce_uBC(block % intermediate_step(TEND), block % mesh)
block => block % next
end do
@@ -212,7 +212,6 @@
end if
call compute_solve_diagnostics(dt, block % time_levs(2) % state, block % mesh)
- call enforce_uBC(block % time_levs(2) % state, block % time_levs(1) % state, block % mesh)
block => block % next
end do
@@ -721,6 +720,7 @@
if(cell1.gt.0) h1 = h(k,cell1)
if(cell2.gt.0) h2 = h(k,cell2)
pv_edge(k,iEdge) = fEdge(iEdge) / ( max(h1,h2) )
+ v(k,iEdge) = 0.0
endif
enddo
enddo
@@ -729,26 +729,24 @@
end subroutine compute_solve_diagnostics
- subroutine enforce_uBC(tend, s, grid)
+
+ subroutine enforce_uBC(tend, grid)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! Enforce any boundary conditions on the normal velocity at each edge
!
! Input: grid - grid metadata
!
! Output: tend_u set to zero at uBC == 1 locations
- ! u set to zero at uBC == 1 locations
- ! v set to zero at uBC == 1 locations
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
implicit none
type (grid_state), intent(inout) :: tend
- type (grid_state), intent(inout) :: s
type (grid_meta), intent(in) :: grid
integer, dimension(:,:), pointer :: uBC
- real (kind=RKIND), dimension(:,:), pointer :: u, tend_u, v, tend_v
+ real (kind=RKIND), dimension(:,:), pointer :: tend_u
integer :: nCells, nEdges, nVertices, nVertLevels
integer :: iEdge, k
@@ -758,10 +756,7 @@
nVertLevels = grid % nVertLevels
uBC => grid % uBC % array
- u => s % u % array
- v => s % v % array
tend_u => tend % u % array
- tend_v => tend % v % array
if(maxval(uBC).le.0) return
@@ -769,10 +764,7 @@
do k = 1,nVertLevels
if(uBC(k,iEdge).eq.1) then
- u(k,iEdge) = 0.0
- v(k,iEdge) = 0.0
tend_u(k,iEdge) = 0.0
- tend_v(k,iEdge) = 0.0
endif
enddo
</font>
</pre>