<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 &
- - 2.5e-4*tracers(indexT,k,iCell) &
- + 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 => 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 !< 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 => 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) &
@@ -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) &
</font>
</pre>