<p><b>qchen3@fsu.edu</b> 2010-11-10 12:14:40 -0700 (Wed, 10 Nov 2010)</p><p>BRANCH COMMIT<br>
<br>
1. In core_sw/module_time_integration.F, deallocate boundaryMask after the del4 calculation (pointed by Todd Ringler).<br>
<br>
2. In core_sw/module_time_integration.F, deleted the redundant variables h_mom_eddy_visc2, h_mom_eddy_visc4, h_tracer_eddy_diff2 and h_tracer_eddy_diff4, and use the corresponding variables from namelist or Registry directly (suggested by Mark Petersen).<br>
 <br>
</p><hr noshade><pre><font color="gray">Modified: branches/swmodel_del4/src/core_sw/module_time_integration.F
===================================================================
--- branches/swmodel_del4/src/core_sw/module_time_integration.F        2010-11-09 18:01:32 UTC (rev 604)
+++ branches/swmodel_del4/src/core_sw/module_time_integration.F        2010-11-10 19:14:40 UTC (rev 605)
@@ -263,7 +263,7 @@
                                                     circulation, vorticity, ke, pv_edge, divergence, h_vertex
       integer, dimension(:,:), pointer :: cellsOnEdge, cellsOnVertex, verticesOnEdge, edgesOnCell, edgesOnEdge, edgesOnVertex
       integer, dimension(:), pointer :: nEdgesOnCell, nEdgesOnEdge
-      real (kind=RKIND) :: r, u_diffusion, h_mom_eddy_visc2, h_mom_eddy_visc4
+      real (kind=RKIND) :: r, u_diffusion
 
       real (kind=RKIND), allocatable, dimension(:,:) :: delsq_divergence
       real (kind=RKIND), allocatable, dimension(:,:) :: delsq_u
@@ -308,10 +308,7 @@
       nVertices   = grid % nVertices
       nVertLevels = grid % nVertLevels
 
-      h_mom_eddy_visc2 = config_h_mom_eddy_visc2
-      h_mom_eddy_visc4 = config_h_mom_eddy_visc4
 
-
       !
       ! Compute height tendency for each cell
       !
@@ -396,7 +393,7 @@
 
      ! Compute diffusion, computed as </font>
<font color="black">abla divergence - k \times </font>
<font color="gray">abla vorticity
      !                    only valid for visc == constant
-     if (h_mom_eddy_visc2 &gt; 0.0) then
+     if (config_h_mom_eddy_visc2 &gt; 0.0) then
         do iEdge=1,grid % nEdgesSolve
            cell1 = cellsOnEdge(1,iEdge)
            cell2 = cellsOnEdge(2,iEdge)
@@ -406,7 +403,7 @@
            do k=1,nVertLevels
               u_diffusion =   ( divergence(k,cell2)  -  divergence(k,cell1) ) / dcEdge(iEdge) &amp;
                    -(vorticity(k,vertex2)  - vorticity(k,vertex1) ) / dvEdge(iEdge)
-              u_diffusion = h_mom_eddy_visc2 * u_diffusion
+              u_diffusion = config_h_mom_eddy_visc2 * u_diffusion
               tend_u(k,iEdge) = tend_u(k,iEdge) + u_diffusion
            end do
         end do
@@ -418,7 +415,7 @@
      !   applied recursively.
      !   strictly only valid for h_mom_eddy_visc4 == constant
      !
-     if (h_mom_eddy_visc4 &gt; 0.0) then
+     if (config_h_mom_eddy_visc4 &gt; 0.0) then
         allocate(delsq_divergence(nVertLevels, nCells+1))
         allocate(delsq_u(nVertLevels, nEdges+1))
         allocate(delsq_circulation(nVertLevels, nVertices+1))
@@ -494,7 +491,7 @@
                    -(  delsq_vorticity(k,vertex2) &amp;
                    - delsq_vorticity(k,vertex1) ) / dvEdge(iEdge)
 
-              u_diffusion = h_mom_eddy_visc4 * u_diffusion
+              u_diffusion = config_h_mom_eddy_visc4 * u_diffusion
               tend_u(k,iEdge) = tend_u(k,iEdge) - u_diffusion
 
            end do
@@ -527,7 +524,7 @@
 
       integer :: iCell, iEdge, k, iTracer, cell1, cell2, i
       real (kind=RKIND) :: flux, tracer_edge, r
-      real (kind=RKIND) :: h_tracer_eddy_diff2, h_tracer_eddy_diff4, invAreaCell1, invAreaCell2, tracer_turb_flux
+      real (kind=RKIND) :: invAreaCell1, invAreaCell2, tracer_turb_flux
       integer, dimension(:,:), pointer :: boundaryEdge
       real (kind=RKIND), dimension(:,:), allocatable :: boundaryMask
       real (kind=RKIND), dimension(:,:,:), allocatable:: delsq_tracer
@@ -556,8 +553,6 @@
       if (config_tracer_adv_order == 3) coef_3rd_order = 1.0
       if (config_tracer_adv_order == 3 .and. config_monotonic) coef_3rd_order = 0.25
 
-      h_tracer_eddy_diff2 = config_h_tracer_eddy_diff2
-      h_tracer_eddy_diff4 = config_h_tracer_eddy_diff4
 
       tracer_tend(:,:,:) = 0.0
 
@@ -689,7 +684,7 @@
       !
       ! tracer tendency: del2 horizontal tracer diffusion, div(h \kappa_2 </font>
<font color="gray">abla \phi)
       !
-      if ( h_tracer_eddy_diff2 &gt; 0.0 ) then
+      if ( config_h_tracer_eddy_diff2 &gt; 0.0 ) then
 
          !
          ! compute a boundary mask to enforce insulating boundary conditions in the horizontal
@@ -707,7 +702,7 @@
             do k=1,grid % nVertLevels
               do iTracer=1, grid % nTracers
                  ! \kappa_2 </font>
<font color="red">abla \phi on edge
-                 tracer_turb_flux = h_tracer_eddy_diff2 &amp;
+                 tracer_turb_flux = config_h_tracer_eddy_diff2 &amp;
                     *( tracers(iTracer,k,cell2) - tracers(iTracer,k,cell1)) / dcEdge(iEdge)
 
                  ! div(h \kappa_2 </font>
<font color="gray">abla \phi) at cell center
@@ -727,7 +722,7 @@
       ! tracer tendency: del4 horizontal tracer diffusion, &amp;
       !    div(h \kappa_4 </font>
<font color="black">abla [div(h </font>
<font color="gray">abla \phi)])
       !
-      if ( h_tracer_eddy_diff4 &gt; 0.0 ) then
+      if ( config_h_tracer_eddy_diff4 &gt; 0.0 ) then
 
          !
          ! compute a boundary mask to enforce insulating boundary conditions in the horizontal
@@ -774,7 +769,7 @@
 
             do k=1,grid % nVertLevels
             do iTracer=1,grid % nTracers
-               tracer_turb_flux = h_tracer_eddy_diff4 * (delsq_tracer(iTracer,k,cell2) - delsq_tracer(iTracer,k,cell1)) / dcEdge(iEdge)
+               tracer_turb_flux = config_h_tracer_eddy_diff4 * (delsq_tracer(iTracer,k,cell2) - delsq_tracer(iTracer,k,cell1)) / dcEdge(iEdge)
                flux = dvEdge(iEdge) * tracer_turb_flux
                tracer_tend(iTracer,k,cell1) = tracer_tend(iTracer,k,cell1) - flux * invAreaCell1 * boundaryMask(k,iEdge)
                tracer_tend(iTracer,k,cell2) = tracer_tend(iTracer,k,cell2) + flux * invAreaCell2 * boundaryMask(k,iEdge)
@@ -784,6 +779,7 @@
          end do
 
          deallocate(delsq_tracer)
+         deallocate(boundaryMask)
 
       end if
 

</font>
</pre>