<p><b>dwj07@fsu.edu</b> 2012-07-27 11:34:31 -0600 (Fri, 27 Jul 2012)</p><p><br>
        -- TRUNK COMMIT --<br>
        core_ocean only.<br>
<br>
        Changing instances of rho_0 to use namelist parameter.<br>
        Updated linear EOS to be in line with POP's linear EOS.<br>
</p><hr noshade><pre><font color="gray">Modified: trunk/mpas/src/core_ocean/mpas_ocn_equation_of_state_linear.F
===================================================================
--- trunk/mpas/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2012-07-27 00:04:31 UTC (rev 2069)
+++ trunk/mpas/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2012-07-27 17:34:31 UTC (rev 2070)
@@ -82,6 +82,13 @@
       integer, intent(in) :: indexT, indexS
       integer, intent(out) :: err
 
+      real (kind=RKIND), parameter :: rho_ref = 1025.022 ! kg / m^3
+      real (kind=RKIND), parameter :: alpha =  2.55e-1 ! kg / m^3 / K (dT/dRho)
+      real (kind=RKIND), parameter :: beta = 7.64e-1 ! kg / m^3 / psu (dS/dRho)
+      real (kind=RKIND), parameter :: T_ref = 19.0 ! K
+      real (kind=RKIND), parameter :: S_ref = 35.0 ! psu
+      real (kind=RKIND), parameter :: rho_prime_ref = rho_ref + alpha * T_ref - beta * S_ref
+
       integer, dimension(:), pointer :: maxLevelCell
       integer :: nCells, iCell, k
       type (dm_info) :: dminfo
@@ -94,9 +101,8 @@
       do iCell=1,nCells
          do k=1,maxLevelCell(iCell)
             ! Linear equation of state
-            rho(k,iCell) = 1000.0*(  1.0 &amp;
-               - 2.5e-4*tracers(indexT,k,iCell) &amp;
-               + 7.6e-4*tracers(indexS,k,iCell))
+            ! rho = rho_ref - alpha * (T - T_ref) + beta * (S - S_ref)
+            rho(k,iCell) = rho_prime_ref - alpha*tracers(indexT,k,iCell) + beta*tracers(indexS,k,iCell)
          end do
       end do
 

Modified: trunk/mpas/src/core_ocean/mpas_ocn_vel_forcing_windstress.F
===================================================================
--- trunk/mpas/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-07-27 00:04:31 UTC (rev 2069)
+++ trunk/mpas/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2012-07-27 17:34:31 UTC (rev 2070)
@@ -43,9 +43,7 @@
    !--------------------------------------------------------------------
 
    logical :: windStressOn
-   real (kind=RKIND) :: rho_ref
 
-
 !***********************************************************************
 
 contains
@@ -125,7 +123,6 @@
       edgeMask =&gt; grid % edgeMask % array
 
       do iEdge=1,nEdgesSolve
-
         ! efficiency note: it would be nice to avoid this
         ! if within a do.  This could be done with
         ! k =  max(maxLevelEdgeTop(iEdge),1)
@@ -133,7 +130,7 @@
 
         do k = 1,min(maxLevelEdgeTop(iEdge),1)
            ! forcing in top layer only
-           tend(k,iEdge) =  tend(k,iEdge) + edgeMask(k, iEdge) * (u_src(k,iEdge)/rho_ref/h_edge(k,iEdge))
+           tend(k,iEdge) =  tend(k,iEdge) + edgeMask(k, iEdge) * (u_src(k,iEdge) / config_rho0 / h_edge(k,iEdge))
         enddo
 
       enddo
@@ -170,7 +167,6 @@
       integer, intent(out) :: err !&lt; Output: error flag
 
       windStressOn = .true.
-      rho_ref = 1000.0
 
       err = 0
 

Modified: trunk/mpas/src/core_ocean/mpas_ocn_vmix_coefs_rich.F
===================================================================
--- trunk/mpas/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2012-07-27 00:04:31 UTC (rev 2069)
+++ trunk/mpas/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2012-07-27 17:34:31 UTC (rev 2070)
@@ -327,7 +327,7 @@
       maxLevelCell =&gt; grid % maxLevelCell % array
 
       vertDiffTopOfCell = 0.0
-      coef = -gravity/1000.0/2.0
+      coef = -gravity/config_rho0/2.0
       do iCell = 1,nCells
          do k = 2,maxLevelCell(iCell)
             ! mrp 110324 efficiency note: this if is inside iCell and k loops.
@@ -517,7 +517,7 @@
       ! compute RiTopOfEdge using drhoTopOfEdge and du2TopOfEdge
       ! coef = -g/rho_0/2
       RiTopOfEdge = 0.0
-      coef = -gravity/1000.0/2.0
+      coef = -gravity/config_rho0/2.0
       do iEdge = 1,nEdges
          do k = 2,maxLevelEdgeTop(iEdge)
             RiTopOfEdge(k,iEdge) = coef*drhoTopOfEdge(k,iEdge) &amp;
@@ -529,7 +529,6 @@
       ! compute RiTopOfCell using drhoTopOfCell and du2TopOfCell
       ! coef = -g/rho_0/2
       RiTopOfCell = 0.0
-      coef = -gravity/1000.0/2.0
       do iCell = 1,nCells
          do k = 2,maxLevelCell(iCell)
             RiTopOfCell(k,iCell) = coef*drhoTopOfCell(k,iCell) &amp;

</font>
</pre>