<p><b>mpetersen@lanl.gov</b> 2010-05-24 14:55:28 -0600 (Mon, 24 May 2010)</p><p>Changed tracer diffusion terms to be thickness-weighted. Now terms are div(h \kappa_h \nabla\phi ) for horizontal tracer diffusion, and d/dz(h \kappa_v d\phi/dz)) for vertical tracer diffusion.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_time_integration.F
===================================================================
--- branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_time_integration.F        2010-05-24 19:48:08 UTC (rev 306)
+++ branches/ocean_projects/z_level_mrp/mpas/src/core_ocean/module_time_integration.F        2010-05-24 20:55:28 UTC (rev 307)
@@ -681,7 +681,7 @@
!
! tracer tendency: horizontal tracer diffusion
- ! div(\kappa_h </font>
<font color="blue">abla\phi )
+ ! div(h \kappa_h </font>
<font color="black">abla\phi )
!
! first compute \kappa_h </font>
<font color="gray">abla\phi at horizontal edges.
allocate(tr_flux(num_tracers,nVertLevels,nEdges))
@@ -692,14 +692,14 @@
if (cell1 <= nCells .and. cell2 <= nCells) then
do k=1,nVertLevels
do iTracer=1,num_tracers
- tr_flux(iTracer,k,iEdge) = config_hor_diffusion * &
+ tr_flux(iTracer,k,iEdge) = h_edge(k,iEdge)*config_hor_diffusion * &
(Tracers(iTracer,k,cell2) - Tracers(iTracer,k,cell1))/dcEdge(iEdge)
enddo
enddo
endif
enddo
- ! Compute the divergence, div(\kappa_h </font>
<font color="blue">abla\phi) at cell centers
+ ! Compute the divergence, div(h \kappa_h </font>
<font color="gray">abla\phi) at cell centers
allocate(tr_div(num_tracers,nVertLevels,nCells))
tr_div(:,:,:) = 0.0
do iEdge=1,nEdges
@@ -723,7 +723,7 @@
end if
end do
- ! add div(\kappa_h </font>
<font color="blue">abla\phi ) to tracer tendency
+ ! add div(h \kappa_h </font>
<font color="gray">abla\phi ) to tracer tendency
do iCell = 1,nCells
r = 1.0 / areaCell(iCell)
do k = 1,nVertLevels
@@ -736,7 +736,7 @@
deallocate(tr_flux, tr_div)
!
- ! tracer tendency: vertical mixing d/dz( \kappa_v d\phi/dz))
+ ! tracer tendency: vertical mixing d/dz(h \kappa_v d\phi/dz))
!
allocate(vertDiff(nVertLevels))
if (config_vert_diff_type.eq.'const') then
@@ -765,7 +765,7 @@
do iCell=1,grid % nCellsSolve
do k=2,nVertLevels
do iTracer=1,num_tracers
- fluxVertTop(iTracer,k) = vertDiff(k) &
+ fluxVertTop(iTracer,k) = h(k,iCell)*vertDiff(k) &
* (tracers(iTracer,k-1,iCell) - tracers(iTracer,k,iCell) )&
/ (zMid(k-1,iCell) -zMid(k,iCell))
enddo
</font>
</pre>