<p><b>qchen3@fsu.edu</b> 2010-11-11 13:36:40 -0700 (Thu, 11 Nov 2010)</p><p>BRANCH COMMIT<br>
<br>
Last branch commit before merging back to trunk.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/swmodel_del4/namelist.input.sw
===================================================================
--- branches/swmodel_del4/namelist.input.sw        2010-11-10 19:14:40 UTC (rev 605)
+++ branches/swmodel_del4/namelist.input.sw        2010-11-11 20:36:40 UTC (rev 606)
@@ -13,10 +13,6 @@
    config_tracer_adv_order = 2
    config_positive_definite = .false.
    config_monotonic = .false.
-   config_thickness_adv_order = 2
-   config_tracer_adv_order = 2
-   config_positive_definite = .false.
-   config_monotonic = .false.
 /
 
 &amp;io

Modified: branches/swmodel_del4/src/core_hyd_atmos/Registry
===================================================================
--- branches/swmodel_del4/src/core_hyd_atmos/Registry        2010-11-10 19:14:40 UTC (rev 605)
+++ branches/swmodel_del4/src/core_hyd_atmos/Registry        2010-11-11 20:36:40 UTC (rev 606)
@@ -18,6 +18,7 @@
 namelist logical   sw_model config_positive_definite    false
 namelist logical   sw_model config_monotonic            true
 namelist integer   sw_model config_mp_physics           0
+namelist real      sw_model config_apvm_upwinding       0.5
 namelist integer   dimensions config_nvertlevels        26
 namelist character io       config_input_name           grid.nc
 namelist character io       config_output_name          output.nc

Modified: branches/swmodel_del4/src/core_hyd_atmos/module_time_integration.F
===================================================================
--- branches/swmodel_del4/src/core_hyd_atmos/module_time_integration.F        2010-11-10 19:14:40 UTC (rev 605)
+++ branches/swmodel_del4/src/core_hyd_atmos/module_time_integration.F        2010-11-11 20:36:40 UTC (rev 606)
@@ -1988,7 +1988,7 @@
       !
       do iEdge = 1,nEdges
          do k = 1,nVertLevels
-           pv_edge(k,iEdge) = pv_edge(k,iEdge) - 0.5 * v(k,iEdge) * dt * gradPVt(k,iEdge)
+           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * v(k,iEdge) * dt * gradPVt(k,iEdge)
          end do
       end do
 
@@ -2027,7 +2027,7 @@
       !
      do iEdge = 1,nEdges
         do k = 1,nVertLevels
-          pv_edge(k,iEdge) = pv_edge(k,iEdge) - 0.5 * u(k,iEdge) * dt * gradPVn(k,iEdge)
+          pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * u(k,iEdge) * dt * gradPVn(k,iEdge)
         end do
      end do
 

Modified: branches/swmodel_del4/src/core_ocean/Registry
===================================================================
--- branches/swmodel_del4/src/core_ocean/Registry        2010-11-10 19:14:40 UTC (rev 605)
+++ branches/swmodel_del4/src/core_ocean/Registry        2010-11-11 20:36:40 UTC (rev 606)
@@ -19,6 +19,7 @@
 namelist real      hmix     config_h_mom_eddy_visc4     0.0
 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
 namelist character vmix     config_vert_visc_type    const
 namelist character vmix     config_vert_diff_type    const
 namelist real      vmix     config_vert_viscosity    2.5e-4

Modified: branches/swmodel_del4/src/core_ocean/module_time_integration.F
===================================================================
--- branches/swmodel_del4/src/core_ocean/module_time_integration.F        2010-11-10 19:14:40 UTC (rev 605)
+++ branches/swmodel_del4/src/core_ocean/module_time_integration.F        2010-11-11 20:36:40 UTC (rev 606)
@@ -611,7 +611,7 @@
          ! see POP Reference guide, section 3.4.4.
          tend_u(nVertLevels,iEdge) = tend_u(nVertLevels,iEdge)  &amp;
            - 1.0e-3*u(nVertLevels,iEdge) &amp;
-             *sqrt(2.0*ke_edge(nVertLevels,iEdge))
+             *sqrt(2.0*ke_edge(nVertLevels,iEdge))/h_edge(k,iEdge)
 
          ! old bottom drag, just linear friction
          ! du/dt = u/tau where tau=100 days.
@@ -1470,7 +1470,7 @@
       !
       do iEdge = 1,nEdges
          do k = 1,nVertLevels
-           pv_edge(k,iEdge) = pv_edge(k,iEdge) - 0.5 * v(k,iEdge) * dt * gradPVt(k,iEdge)
+           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * v(k,iEdge) * dt * gradPVt(k,iEdge)
          enddo
       enddo
 
@@ -1510,7 +1510,7 @@
       !
       do iEdge = 1,nEdges
          do k = 1,nVertLevels
-           pv_edge(k,iEdge) = pv_edge(k,iEdge) - 0.5 * u(k,iEdge) * dt * gradPVn(k,iEdge)
+           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * u(k,iEdge) * dt * gradPVn(k,iEdge)
          enddo
       enddo
 

Modified: branches/swmodel_del4/src/core_sw/Registry
===================================================================
--- branches/swmodel_del4/src/core_sw/Registry        2010-11-10 19:14:40 UTC (rev 605)
+++ branches/swmodel_del4/src/core_sw/Registry        2010-11-11 20:36:40 UTC (rev 606)
@@ -15,6 +15,7 @@
 namelist integer   sw_model config_tracer_adv_order     2
 namelist logical   sw_model config_positive_definite    false
 namelist logical   sw_model config_monotonic            false
+namelist real      sw_model config_apvm_upwinding       0.5
 namelist character io       config_input_name        grid.nc
 namelist character io       config_output_name       output.nc
 namelist character io       config_restart_name      restart.nc

Modified: branches/swmodel_del4/src/core_sw/module_time_integration.F
===================================================================
--- branches/swmodel_del4/src/core_sw/module_time_integration.F        2010-11-10 19:14:40 UTC (rev 605)
+++ branches/swmodel_del4/src/core_sw/module_time_integration.F        2010-11-11 20:36:40 UTC (rev 606)
@@ -1006,16 +1006,10 @@
       !
       circulation(:,:) = 0.0
       do iEdge=1,nEdges
-         if (verticesOnEdge(1,iEdge) &lt;= nVertices) then
-            do k=1,nVertLevels
-               circulation(k,verticesOnEdge(1,iEdge)) = circulation(k,verticesOnEdge(1,iEdge)) - dcEdge(iEdge) * u(k,iEdge)
-            end do
-         end if
-         if (verticesOnEdge(2,iEdge) &lt;= nVertices) then
-            do k=1,nVertLevels
-               circulation(k,verticesOnEdge(2,iEdge)) = circulation(k,verticesOnEdge(2,iEdge)) + dcEdge(iEdge) * u(k,iEdge)
-            end do
-         end if
+         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)
+         end do
       end do
       do iVertex=1,nVertices
          do k=1,nVertLevels
@@ -1072,11 +1066,9 @@
       do iEdge = 1,nEdges
          do i=1,nEdgesOnEdge(iEdge)
             eoe = edgesOnEdge(i,iEdge)
-            if (eoe &lt;= nEdges) then
-               do k = 1,nVertLevels
-                 v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe)
-              end do
-            end if
+            do k = 1,nVertLevels
+               v(k,iEdge) = v(k,iEdge) + weightsOnEdge(i,iEdge) * u(k, eoe)
+            end do
          end do
       end do
 
@@ -1129,26 +1121,25 @@
 
       !
       ! Compute pv at the edges
-      !   ( this computes pv_edge at all edges bounding real cells and distance-1 ghost cells )
+      !   ( this computes pv_edge at all edges bounding real cells )
       !
       pv_edge(:,:) = 0.0
       do iVertex = 1,nVertices
         do i=1,grid % vertexDegree
-          iEdge = edgesOnVertex(i,iVertex)
-          if(iEdge &lt;= nEdges) then
-            do k=1,nVertLevels
+           iEdge = edgesOnVertex(i,iVertex)
+           do k=1,nVertLevels
               pv_edge(k,iEdge) =  pv_edge(k,iEdge)  + 0.5 * pv_vertex(k,iVertex)
-            enddo
-          endif
+           end do
         end do
       end do
 
+
       !
       ! Modify PV edge with upstream bias. 
       !
       do iEdge = 1,nEdges
          do k = 1,nVertLevels
-           pv_edge(k,iEdge) = pv_edge(k,iEdge) - 0.5 * v(k,iEdge) * dt * gradPVt(k,iEdge)
+           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * v(k,iEdge) * dt * gradPVt(k,iEdge)
          enddo
       enddo
 
@@ -1190,7 +1181,7 @@
       !
       do iEdge = 1,nEdges
          do k = 1,nVertLevels
-           pv_edge(k,iEdge) = pv_edge(k,iEdge) - 0.5 * u(k,iEdge) * dt * gradPVn(k,iEdge)
+           pv_edge(k,iEdge) = pv_edge(k,iEdge) - config_apvm_upwinding * u(k,iEdge) * dt * gradPVn(k,iEdge)
          enddo
       enddo
 

</font>
</pre>