<p><b>mpetersen@lanl.gov</b> 2011-09-30 13:38:22 -0600 (Fri, 30 Sep 2011)</p><p>Merged all of Doug's trunk changes to this new timestepping branch.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/split_explicit_timestepping/Makefile
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/Makefile        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/Makefile        2011-09-30 19:38:22 UTC (rev 1048)
@@ -83,7 +83,7 @@
 
 ifort:
         ( make all \
-        &quot;FC = ifort&quot; \
+        &quot;FC = /share/apps/intel-openmpi-1.4.3/bin/mpif90&quot; \
         &quot;CC = gcc&quot; \
         &quot;SFC = ifort&quot; \
         &quot;SCC = gcc&quot; \
@@ -91,7 +91,7 @@
         &quot;CFLAGS = -O3 -m64&quot; \
         &quot;LDFLAGS = -O3&quot; \
         &quot;CORE = $(CORE)&quot; \
-        &quot;CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)&quot; )
+        &quot;CPPFLAGS = -DRKIND=8 $(MODEL_FORMULATION) -D_MPI -DUNDERSCORE -m64 $(FILE_OFFSET) $(ZOLTAN_DEFINE)&quot; )
 
 gfortran:
         ( make all \

Modified: branches/ocean_projects/split_explicit_timestepping/namelist.input.ocean
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/namelist.input.ocean        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/namelist.input.ocean        2011-09-30 19:38:22 UTC (rev 1048)
@@ -29,17 +29,18 @@
    config_n_bcl_iter_end =  2
    config_n_btr_subcycles = 10
    config_n_btr_cor_iter = 2
-   config_compute_tr_midstage = .true.
    config_u_correction = .true.
    config_filter_btr_mode = .false.
    config_btr_mom_decay  = .false.
    config_btr_mom_decay_time =   3600.0
-   config_btr_flux_coef = 1.0
    config_btr_mom_eddy_visc2 =   0.0
    config_btr_subcycle_loop_factor =  2
    config_SSH_from =  'avg_flux'
    config_new_btr_variables_from = 'btr_avg'
-/
+   config_btr_gam1_uWt1   = 0.5
+   config_btr_gam2_SSHWt1 = 1.0
+   config_btr_gam3_uWt2   = 1.0
+   config_btr_solve_SSH2  = .false.
 &amp;hmix
    config_h_mom_eddy_visc2 = 1.0e5
    config_h_mom_eddy_visc4 = 0.0

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/Registry        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/Registry        2011-09-30 19:38:22 UTC (rev 1048)
@@ -26,16 +26,18 @@
 namelist integer   split_explicit_ts config_n_bcl_iter_end   4
 namelist integer   split_explicit_ts config_n_btr_subcycles  10
 namelist integer   split_explicit_ts config_n_btr_cor_iter  1
-namelist logical   split_explicit_ts config_compute_tr_midstage true
 namelist logical   split_explicit_ts config_u_correction true
 namelist logical   split_explicit_ts config_filter_btr_mode false
 namelist logical   split_explicit_ts config_btr_mom_decay         false 
 namelist real      split_explicit_ts config_btr_mom_decay_time    3600.0
-namelist real      split_explicit_ts config_btr_flux_coef         1.0
 namelist real      split_explicit_ts config_btr_mom_eddy_visc2    0.0
 namelist integer   split_explicit_ts config_btr_subcycle_loop_factor  2
 namelist character split_explicit_ts config_SSH_from  avg_flux
 namelist character split_explicit_ts config_new_btr_variables_from  btr_avg
+namelist real      split_explicit_ts config_btr_gam1_uWt1    0.5
+namelist real      split_explicit_ts config_btr_gam2_SSHWt1  1.0
+namelist real      split_explicit_ts config_btr_gam3_uWt2    1.0
+namelist logical   split_explicit_ts config_btr_solve_SSH2   false
 namelist logical   sw_model config_h_ScaleWithMesh     false
 namelist real      hmix     config_h_mom_eddy_visc2     0.0
 namelist real      hmix     config_h_mom_eddy_visc4     0.0
@@ -186,9 +188,9 @@
 var persistent real    h ( nVertLevels nCells Time ) 2 ir h state - -
 var persistent real    rho ( nVertLevels nCells Time ) 2 ir rho state - -
 var persistent real    temperature ( nVertLevels nCells Time ) 2 iro temperature state tracers dynamics
-var persistent real    salinity ( nVertLevels nCells Time ) 2 ir salinity state tracers dynamics
-var persistent real    tracer1 ( nVertLevels nCells Time ) 2 ir tracer1 state tracers testing
-var persistent real    tracer2 ( nVertLevels nCells Time ) 2 ir tracer2 state tracers testing
+var persistent real    salinity ( nVertLevels nCells Time ) 2 iro salinity state tracers dynamics
+var persistent real    tracer1 ( nVertLevels nCells Time ) 2 iro tracer1 state tracers testing
+var persistent real    tracer2 ( nVertLevels nCells Time ) 2 iro tracer2 state tracers testing
 
 # Tendency variables: neither read nor written to any files
 var persistent real    tend_u ( nVertLevels nEdges Time ) 1 - u tend - -

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -4,7 +4,7 @@
 !
 !&gt; \brief MPAS ocean equation of state driver
 !&gt; \author Doug Jacobsen
-!&gt; \date   19 September 2011
+!&gt; \date   29 September 2011
 !&gt; \version SVN:$Id:$
 !&gt; \details
 !&gt;  This module contains the main driver routine for calling
@@ -17,8 +17,8 @@
    use grid_types
    use configure
    use timer
-!  use ocn_equation_of_stateLinear
-!  use ocn_equation_of_stateJM
+   use ocn_equation_of_state_linear
+   use ocn_equation_of_state_jm
 
    implicit none
    private
@@ -46,6 +46,7 @@
    !--------------------------------------------------------------------
 
    logical :: eosON
+   logical :: linearEos, jmEos
 
 
 !***********************************************************************
@@ -58,14 +59,14 @@
 !
 !&gt; \brief   Calls equation of state
 !&gt; \author  Doug Jacobsen
-!&gt; \date    19 September 2011
+!&gt; \date    29 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine calls the equation of state to update the density
 !
 !-----------------------------------------------------------------------
 
-   subroutine ocn_equation_of_state_rho(s, grid, k_displaced, displacement_type)!{{{
+   subroutine ocn_equation_of_state_rho(s, grid, k_displaced, displacement_type, err)!{{{
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !  This module contains routines necessary for computing the density
    !  from model temperature and salinity using an equation of state.
@@ -84,6 +85,7 @@
 
       type (state_type), intent(inout) :: s
       type (mesh_type), intent(in) :: grid
+      integer, intent(out) :: err
       integer :: k_displaced
       character(len=8), intent(in) :: displacement_type
 
@@ -93,17 +95,22 @@
       integer :: nCells, iCell, k, indexT, indexS
       type (dm_info) :: dminfo
 
+      err = 0
+
+      if(.not.eosOn) return
+
       call timer_start(&quot;ocn_equation_of_state_rho&quot;)
 
-      if (config_eos_type.eq.'linear') then
+      tracers =&gt; s % tracers % array
+      indexT = s % index_temperature
+      indexS = s % index_salinity
 
-         call ocn_equation_of_state_linear_rho(s, grid, k_displaced, displacement_type)
+      if (linearEos) then
+         rho =&gt; s % rho % array
 
-      elseif (config_eos_type.eq.'jm') then
+         call ocn_equation_of_state_linear_rho(grid, indexT, indexS, tracers, rho, err)
 
-         tracers =&gt; s % tracers % array
-         indexT = s % index_temperature
-         indexS = s % index_salinity
+      elseif (jmEos) then
 
          if(k_displaced == 0) then
              rho =&gt; s % rho % array
@@ -111,13 +118,8 @@
              rho =&gt; s % rhoDisplaced % array
          endif
 
-         call ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho)
-!        call ocn_equation_of_state_rho_jm_bak(s, grid, k_displaced, displacement_type)
+         call ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho, err)
 
-      else 
-         print *, ' Incorrect choice of config_eos_type:',&amp;
-            config_eos_type
-         call dmpar_abort(dminfo)
       endif
 
       call timer_stop(&quot;ocn_equation_of_state_rho&quot;)
@@ -130,7 +132,7 @@
 !
 !&gt; \brief   Initializes ocean momentum horizontal mixing quantities
 !&gt; \author  Doug Jacobsen
-!&gt; \date    19 September 2011
+!&gt; \date    29 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
@@ -138,7 +140,7 @@
 !&gt;  parameterizations are available, this routine primarily calls the
 !&gt;  individual init routines for each parameterization. 
 !
-!-----------------------------------------------------------------------
+!----------------------------------------------------------------------
 
    subroutine ocn_equation_of_state_init(err)!{{{
 
@@ -152,324 +154,29 @@
 
       integer, intent(out) :: err
 
-      integer :: err1, err2
-
       err = 0
-      ! For an isopycnal model, density should remain constant.
-      ! For zlevel, calculate in-situ density
       eosON = .false.
+      linearEos = .false.
+      jmEos = .false.
 
       if(config_vert_grid_type.eq.'zlevel') then
           eosON = .true.
-!         call ocn_equation_of_stateLinearInit(err1)
-!         call ocn_equation_of_stateJMInit(err2)
 
-          err = err1 .or. err2
+          if (config_eos_type.eq.'linear') then
+              linearEos = .true.
+          elseif (config_eos_type.eq.'jm') then
+              jmEos = .true.
+          else
+              print *,'Invalid choice for config_eos_type.'
+              print *,'  Choices are: linear, jm'
+              err = 1
+          endif
       endif
 
-
    !--------------------------------------------------------------------
 
    end subroutine ocn_equation_of_state_init!}}}
 
-   subroutine ocn_equation_of_state_linear_rho(s, grid, k_displaced, displacement_type)!{{{
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   !  This module contains routines necessary for computing the density
-   !  from model temperature and salinity using an equation of state.
-   !
-   ! Input: grid - grid metadata
-   !        s - state: tracers
-   !        k_displaced 
-   !  If k_displaced&lt;=0, state % rho is returned with no displaced
-   !  If k_displaced&gt;0,the state % rhoDisplaced is returned, and is for
-   !  a parcel adiabatically displaced from its original level to level 
-   !  k_displaced.  This does not effect the linear EOS.
-   !
-   ! Output: s - state: computed density
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-      implicit none
-
-      type (state_type), intent(inout) :: s
-      type (mesh_type), intent(in) :: grid
-      integer :: k_displaced
-      character(len=8), intent(in) :: displacement_type
-
-      integer, dimension(:), pointer :: maxLevelCell
-      real (kind=RKIND), dimension(:,:), pointer :: rho
-      real (kind=RKIND), dimension(:,:,:), pointer :: tracers
-      integer :: nCells, iCell, k
-      type (dm_info) :: dminfo
-
-      call timer_start(&quot;ocn_equation_of_state_linear&quot;)
-
-      rho         =&gt; s % rho % array
-      tracers     =&gt; s % tracers % array
-      maxLevelCell      =&gt; grid % maxLevelCell % array
-      nCells      = grid % nCells
-
-      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(s % index_temperature,k,iCell) &amp;
-               + 7.6e-4*tracers(s % index_salinity,k,iCell))
-         end do
-      end do
-
-      call timer_stop(&quot;ocn_equation_of_state_linear&quot;)
-
-   end subroutine ocn_equation_of_state_linear_rho!}}}
-
-   subroutine ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho)!{{{
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-   !  This module contains routines necessary for computing the density
-   !  from model temperature and salinity using an equation of state.
-   !
-   !  The UNESCO equation of state computed using the
-   !  potential-temperature-based bulk modulus from Jackett and
-   !  McDougall, JTECH, Vol.12, pp 381-389, April, 1995.
-   !
-   ! Input: grid - grid metadata
-   !        s - state: tracers
-   !        k_displaced 
-
-   !  If k_displaced&lt;=0, density is returned with no displaced
-   !  If k_displaced&gt;0,the density returned is that for a parcel
-   !  adiabatically displaced from its original level to level 
-   !  k_displaced.
-
-   !
-   ! Output: s - state: computed density
-   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-
-      implicit none
-
-      type (mesh_type), intent(in) :: grid
-      integer :: k_displaced, indexT, indexS
-      character(len=8), intent(in) :: displacement_type
-
-      type (dm_info) :: dminfo
-      integer :: iEdge, iCell, iVertex, k
-
-      integer :: nCells, nEdges, nVertices, nVertLevels
-
-
-      real (kind=RKIND), dimension(:), pointer :: &amp;
-        zMidZLevel, pRefEOS
-      real (kind=RKIND), dimension(:,:), intent(inout) :: &amp;
-        rho
-      real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers
-
-      integer, dimension(:), pointer :: maxLevelCell
-
-   real (kind=RKIND) :: &amp;
-      TQ,SQ,             &amp;! adjusted T,S
-      BULK_MOD,          &amp;! Bulk modulus
-      RHO_S,             &amp;! density at the surface
-      DRDT0,             &amp;! d(density)/d(temperature), for surface
-      DRDS0,             &amp;! d(density)/d(salinity   ), for surface
-      DKDT,              &amp;! d(bulk modulus)/d(pot. temp.)
-      DKDS,              &amp;! d(bulk modulus)/d(salinity  )
-      SQR,DENOMK,        &amp;! work arrays
-      WORK1, WORK2, WORK3, WORK4, T2, depth
-
-   real (kind=RKIND) :: &amp; 
-      tmin, tmax,        &amp;! valid temperature range for level k
-      smin, smax          ! valid salinity    range for level k
-
-   real (kind=RKIND), dimension(:), allocatable :: &amp;
-      p, p2 ! temporary pressure scalars
-
-!-----------------------------------------------------------------------
-!
-!  UNESCO EOS constants and JMcD bulk modulus constants
-!
-!-----------------------------------------------------------------------
-
-   !*** for density of fresh water (standard UNESCO)
-
-   real (kind=RKIND), parameter ::              &amp;
-      unt0 =   999.842594,           &amp;
-      unt1 =  6.793952e-2,           &amp;
-      unt2 = -9.095290e-3,           &amp;
-      unt3 =  1.001685e-4,           &amp;
-      unt4 = -1.120083e-6,           &amp;
-      unt5 =  6.536332e-9
-
-   !*** for dependence of surface density on salinity (UNESCO)
-
-   real (kind=RKIND), parameter ::              &amp;
-      uns1t0 =  0.824493 ,           &amp;
-      uns1t1 = -4.0899e-3,           &amp;
-      uns1t2 =  7.6438e-5,           &amp;
-      uns1t3 = -8.2467e-7,           &amp;
-      uns1t4 =  5.3875e-9,           &amp;
-      unsqt0 = -5.72466e-3,          &amp;
-      unsqt1 =  1.0227e-4,           &amp;
-      unsqt2 = -1.6546e-6,           &amp;
-      uns2t0 =  4.8314e-4
-
-   !*** from Table A1 of Jackett and McDougall
-
-   real (kind=RKIND), parameter ::              &amp;
-      bup0s0t0 =  1.965933e+4,       &amp;
-      bup0s0t1 =  1.444304e+2,       &amp;
-      bup0s0t2 = -1.706103   ,       &amp;
-      bup0s0t3 =  9.648704e-3,       &amp;
-      bup0s0t4 = -4.190253e-5
-
-   real (kind=RKIND), parameter ::              &amp;
-      bup0s1t0 =  5.284855e+1,       &amp;
-      bup0s1t1 = -3.101089e-1,       &amp;
-      bup0s1t2 =  6.283263e-3,       &amp;
-      bup0s1t3 = -5.084188e-5
-
-   real (kind=RKIND), parameter ::              &amp;
-      bup0sqt0 =  3.886640e-1,       &amp;
-      bup0sqt1 =  9.085835e-3,       &amp;
-      bup0sqt2 = -4.619924e-4
-
-   real (kind=RKIND), parameter ::              &amp;
-      bup1s0t0 =  3.186519   ,       &amp;
-      bup1s0t1 =  2.212276e-2,       &amp;
-      bup1s0t2 = -2.984642e-4,       &amp;
-      bup1s0t3 =  1.956415e-6 
-
-   real (kind=RKIND), parameter ::              &amp;
-      bup1s1t0 =  6.704388e-3,       &amp;
-      bup1s1t1 = -1.847318e-4,       &amp;
-      bup1s1t2 =  2.059331e-7,       &amp;
-      bup1sqt0 =  1.480266e-4 
-
-   real (kind=RKIND), parameter ::              &amp;
-      bup2s0t0 =  2.102898e-4,       &amp;
-      bup2s0t1 = -1.202016e-5,       &amp;
-      bup2s0t2 =  1.394680e-7,       &amp;
-      bup2s1t0 = -2.040237e-6,       &amp;
-      bup2s1t1 =  6.128773e-8,       &amp;
-      bup2s1t2 =  6.207323e-10
-
-   integer :: k_test, k_ref
-
-      call timer_start(&quot;ocn_equation_of_state_jm&quot;)
-
-      nCells      = grid % nCells
-      maxLevelCell      =&gt; grid % maxLevelCell % array
-      nVertLevels = grid % nVertLevels
-      zMidZLevel        =&gt; grid % zMidZLevel % array
-
-
-!  Jackett and McDougall
-      tmin = -2.0  ! valid pot. temp. range
-      tmax = 40.0 
-      smin =  0.0  ! valid salinity, in psu   
-      smax = 42.0 
-
-      ! This could be put in a startup routine.
-      ! Note I am using zMidZlevel, so pressure on top level does
-      ! not include SSH contribution.  I am not sure if that matters.
-
-!  This function computes pressure in bars from depth in meters
-!  using a mean density derived from depth-dependent global 
-!  average temperatures and salinities from Levitus 1994, and 
-!  integrating using hydrostatic balance.
-
-      allocate(pRefEOS(nVertLevels),p(nVertLevels),p2(nVertLevels))
-      do k = 1,nVertLevels
-        depth = -zMidZLevel(k)
-        pRefEOS(k) = 0.059808*(exp(-0.025*depth) - 1.0) &amp;
-            + 0.100766*depth + 2.28405e-7*depth**2
-      enddo
-
-   !  If k_displaced=0, in-situ density is returned (no displacement)
-   !  If k_displaced/=0, potential density is returned
-
-   !  if displacement_type = 'relative', potential density is calculated
-   !     referenced to level k + k_displaced
-   !  if displacement_type = 'absolute', potential density is calculated
-   !     referenced to level k_displaced for all k
-   !  NOTE: k_displaced = 0 or &gt; nVertLevels is incompatible with 'absolute'
-   !     so abort if necessary
-
-   if (displacement_type == 'absolute' .and.   &amp;
-       (k_displaced &lt;= 0 .or. k_displaced &gt; nVertLevels) ) then
-      write(0,*) 'Abort: In ocn_equation_of_state_jm', &amp;
-         ' k_displaced must be between 1 and nVertLevels for ', &amp;
-         'displacement_type = absolute'
-      call dmpar_abort(dminfo)
-   endif
-
-   if (k_displaced == 0) then
-      do k=1,nVertLevels
-         p(k)   = pRefEOS(k)
-         p2(k)  = p(k)*p(k)
-      enddo
-   else ! k_displaced /= 0
-      do k=1,nVertLevels
-         if (displacement_type == 'relative') then
-            k_test = min(k + k_displaced, nVertLevels)
-            k_ref  = max(k_test, 1)
-         else
-            k_test = min(k_displaced, nVertLevels)
-            k_ref  = max(k_test, 1)
-         endif
-         p(k)   = pRefEOS(k_ref)
-         p2(k)  = p(k)*p(k)
-      enddo
-   endif
-
-  do iCell=1,nCells
-    do k=1,maxLevelCell(iCell)
-
-      SQ  = max(min(tracers(indexS,k,iCell),smax),smin)
-      TQ  = max(min(tracers(indexT,k,iCell),tmax),tmin)
-
-      SQR = sqrt(SQ)
-      T2  = TQ*TQ
-
-      !***
-      !*** first calculate surface (p=0) values from UNESCO eqns.
-      !***
-
-      WORK1 = uns1t0 + uns1t1*TQ + &amp; 
-             (uns1t2 + uns1t3*TQ + uns1t4*T2)*T2
-      WORK2 = SQR*(unsqt0 + unsqt1*TQ + unsqt2*T2)
-
-      RHO_S = unt1*TQ + (unt2 + unt3*TQ + (unt4 + unt5*TQ)*T2)*T2 &amp;
-                      + (uns2t0*SQ + WORK1 + WORK2)*SQ
-
-      !***
-      !*** now calculate bulk modulus at pressure p from 
-      !*** Jackett and McDougall formula
-      !***
-
-      WORK3 = bup0s1t0 + bup0s1t1*TQ +                    &amp;
-             (bup0s1t2 + bup0s1t3*TQ)*T2 +                &amp;
-              p(k) *(bup1s1t0 + bup1s1t1*TQ + bup1s1t2*T2) + &amp;
-              p2(k)*(bup2s1t0 + bup2s1t1*TQ + bup2s1t2*T2)
-      WORK4 = SQR*(bup0sqt0 + bup0sqt1*TQ + bup0sqt2*T2 + &amp;
-                   bup1sqt0*p(k))
-
-      BULK_MOD  = bup0s0t0 + bup0s0t1*TQ +                    &amp;
-                  (bup0s0t2 + bup0s0t3*TQ + bup0s0t4*T2)*T2 + &amp;
-                  p(k) *(bup1s0t0 + bup1s0t1*TQ +                &amp;
-                     (bup1s0t2 + bup1s0t3*TQ)*T2) +           &amp;
-                  p2(k)*(bup2s0t0 + bup2s0t1*TQ + bup2s0t2*T2) + &amp;
-                  SQ*(WORK3 + WORK4)
-
-      DENOMK = 1.0/(BULK_MOD - p(k))
-
-      rho(k,iCell) = (unt0 + RHO_S)*BULK_MOD*DENOMK
-
-    end do
-  end do
-
-   deallocate(pRefEOS,p,p2)
-
-   call timer_stop(&quot;ocn_equation_of_state_jm&quot;)
-
-   end subroutine ocn_equation_of_state_jm_rho!}}}
-
 !***********************************************************************
 
 end module ocn_equation_of_state

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_jm.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_jm.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_jm.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -60,7 +60,7 @@
 !
 !-----------------------------------------------------------------------
 
-   subroutine ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho)!{{{
+   subroutine ocn_equation_of_state_jm_rho(grid, k_displaced, displacement_type, indexT, indexS, tracers, rho, err)!{{{
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !  This module contains routines necessary for computing the density
    !  from model temperature and salinity using an equation of state.
@@ -87,6 +87,7 @@
       type (mesh_type), intent(in) :: grid
       integer :: k_displaced, indexT, indexS
       character(len=8), intent(in) :: displacement_type
+      integer, intent(out) :: err
 
       type (dm_info) :: dminfo
       integer :: iEdge, iCell, iVertex, k
@@ -191,6 +192,8 @@
 
    integer :: k_test, k_ref
 
+      err = 0
+
       call timer_start(&quot;equation_of_state_jm&quot;)
 
       nCells      = grid % nCells

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_linear.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_equation_of_state_linear.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -60,7 +60,7 @@
 !
 !-----------------------------------------------------------------------
 
-   subroutine ocn_equation_of_state_linear_rho(s, grid, k_displaced, displacement_type)!{{{
+   subroutine ocn_equation_of_state_linear_rho(grid, indexT, indexS, tracers, rho, err)!{{{
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !  This module contains routines necessary for computing the density
    !  from model temperature and salinity using an equation of state.
@@ -77,34 +77,33 @@
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
       implicit none
 
-      type (state_type), intent(inout) :: s
       type (mesh_type), intent(in) :: grid
-      integer :: k_displaced
-      character(len=8), intent(in) :: displacement_type
+      real (kind=RKIND), dimension(:,:), intent(inout) :: rho
+      real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers
+      integer, intent(in) :: indexT, indexS
+      integer, intent(out) :: err
 
       integer, dimension(:), pointer :: maxLevelCell
-      real (kind=RKIND), dimension(:,:), pointer :: rho
-      real (kind=RKIND), dimension(:,:,:), pointer :: tracers
       integer :: nCells, iCell, k
       type (dm_info) :: dminfo
 
-      call timer_start(&quot;equation_of_state_linear&quot;)
+      call timer_start(&quot;ocn_equation_of_state_linear&quot;)
 
-      rho         =&gt; s % rho % array
-      tracers     =&gt; s % tracers % array
       maxLevelCell      =&gt; grid % maxLevelCell % array
       nCells      = grid % nCells
 
+      err = 0
+
       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(s % index_temperature,k,iCell) &amp;
-               + 7.6e-4*tracers(s % index_salinity,k,iCell))
+               - 2.5e-4*tracers(indexT,k,iCell) &amp;
+               + 7.6e-4*tracers(indexS,k,iCell))
          end do
       end do
 
-      call timer_stop(&quot;equation_of_state_linear&quot;)
+      call timer_stop(&quot;ocn_equation_of_state_linear&quot;)
 
    end subroutine ocn_equation_of_state_linear_rho!}}}
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_mpas_core.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_mpas_core.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_mpas_core.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -52,6 +52,23 @@
 
       integer :: err
 
+      ! Initialize submodules before initializing blocks.
+      call ocn_timestep_init(err)
+
+      call ocn_vel_pressure_grad_init(err)
+      call ocn_vel_vadv_init(err)
+      call ocn_vel_hmix_init(err)
+      call ocn_vel_forcing_init(err)
+
+      call ocn_tracer_hadv_init(err)
+      call ocn_tracer_vadv_init(err)
+      call ocn_tracer_hmix_init(err)
+      call ocn_restoring_init(err)
+
+      call ocn_vmix_init(err)
+
+      call ocn_equation_of_state_init(err)
+
       if (.not. config_do_restart) call setup_sw_test_case(domain)
 
       call compute_maxLevel(domain)
@@ -74,7 +91,6 @@
          call dmpar_abort(dminfo)
       endif
 
-
       !
       ! Initialize core
       !
@@ -92,22 +108,6 @@
          ! temperature and salinity tracers from state.
       end do
 
-      call ocn_timestep_init(err)
-
-      call ocn_vel_pressure_grad_init(err)
-      call ocn_vel_vadv_init(err)
-      call ocn_vel_hmix_init(err)
-      call ocn_vel_forcing_init(err)
-
-      call ocn_tracer_hadv_init(err)
-      call ocn_tracer_vadv_init(err)
-      call ocn_tracer_hmix_init(err)
-      call ocn_restoring_init(err)
-
-      call ocn_vmix_init(err)
-
-      call ocn_equation_of_state_init(err)
-
    ! mrp 100316 In order for this to work, we need to pass domain % dminfo as an 
    ! input arguement into mpas_init.  Ask about that later.  For now, there will be
    ! no initial statistics write.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_restoring.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_restoring.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_restoring.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -42,9 +42,9 @@
    !
    !--------------------------------------------------------------------
 
-   logical :: restoringOn
+   logical :: restoringOn !&lt; Flag to turn on/off resotring
 
-   real (kind=RKIND) :: temperatureTimeScale, salinityTimeScale
+   real (kind=RKIND) :: temperatureTimeScale, salinityTimeScale !&lt; restoring timescales
 
 
 !***********************************************************************
@@ -82,7 +82,8 @@
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
         tracers !&lt; Input: tracer quantities
 
-      integer, intent(in) :: indexT, indexS
+      integer, intent(in) :: indexT !&lt; Input: index for temperature
+      integer, intent(in) :: indexS !&lt; Input: index for salinity
 
       !-----------------------------------------------------------------
       !
@@ -99,7 +100,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: Error flag
 
       !-----------------------------------------------------------------
       !
@@ -111,14 +112,6 @@
 
       real (kind=RKIND), dimension(:), pointer :: temperatureRestore, salinityRestore
 
-      !-----------------------------------------------------------------
-      !
-      ! call relevant routines for computing tendencies
-      ! note that the user can choose multiple options and the 
-      !   tendencies will be added together
-      !
-      !-----------------------------------------------------------------
-
       err = 0
 
       if(.not.restoringOn) return
@@ -154,31 +147,20 @@
 !
 !  routine ocn_restoring_init
 !
-!&gt; \brief   Initializes ocean tracer horizontal mixing quantities
+!&gt; \brief   Initializes ocean tracer restoring
 !&gt; \author  Doug Jacobsen
 !&gt; \date    19 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  horizontal velocity mixing in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  restoring in the ocean. 
 !
 !-----------------------------------------------------------------------
 
-
    subroutine ocn_restoring_init(err)!{{{
 
-   !--------------------------------------------------------------------
+      integer, intent(out) :: err !&lt; Output: error flag
 
-      !-----------------------------------------------------------------
-      !
-      ! call individual init routines for each parameterization
-      !
-      !-----------------------------------------------------------------
-
-      integer, intent(out) :: err
-
       err = 0
       restoringOn = .false.
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tendency.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tendency.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -610,7 +610,7 @@
       integer :: iEdge, iCell, iVertex, k, cell1, cell2, vertex1, vertex2, eoe, i, j, cov
       real (kind=RKIND) :: flux, vorticity_abs, h_vertex, workpv, rho0Inv
 
-      integer :: nCells, nEdges, nVertices, nVertLevels, vertexDegree, fCoef
+      integer :: nCells, nEdges, nVertices, nVertLevels, vertexDegree, fCoef, err
 
 
       real (kind=RKIND), dimension(:), pointer :: &amp;
@@ -1008,9 +1008,9 @@
       ! For an isopycnal model, density should remain constant.
       ! For zlevel, calculate in-situ density
       if (config_vert_grid_type.eq.'zlevel') then
-         call ocn_equation_of_state_rho(s, grid, 0, 'relative')
+         call ocn_equation_of_state_rho(s, grid, 0, 'relative', err)
       ! mrp 110324 In order to visualize rhoDisplaced, include the following
-         call ocn_equation_of_state_rho(s, grid, 1, 'relative')
+         call ocn_equation_of_state_rho(s, grid, 1, 'relative', err)
       endif
 
       !

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_hadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_hadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_hadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -93,7 +93,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -172,15 +172,13 @@
 !
 !  routine ocn_thick_hadv_init
 !
-!&gt; \brief   Initializes ocean forcings
+!&gt; \brief   Initializes ocean horizontal thickness advection
 !&gt; \author  Doug Jacobsen
 !&gt; \date    16 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
-!&gt;  This routine initializes quantities related to forcings 
-!&gt;  in the ocean. Since a multiple forcings are available, 
-!&gt;  this routine primarily calls the
-!&gt;  individual init routines for each forcing. 
+!&gt;  This routine initializes quantities related to horizontal thickness 
+!&gt;  advection in the ocean. 
 !
 !-----------------------------------------------------------------------
 
@@ -194,7 +192,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_vadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_vadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_thick_vadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -90,7 +90,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: Error flag
 
       !-----------------------------------------------------------------
       !
@@ -127,15 +127,13 @@
 !
 !  routine ocn_thick_vadv_init
 !
-!&gt; \brief   Initializes ocean forcings
+!&gt; \brief   Initializes ocean thickness vertical advection
 !&gt; \author  Doug Jacobsen
 !&gt; \date    16 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
-!&gt;  This routine initializes quantities related to forcings 
-!&gt;  in the ocean. Since a multiple forcings are available, 
-!&gt;  this routine primarily calls the
-!&gt;  individual init routines for each forcing. 
+!&gt;  This routine initializes quantities related to vertical advection of 
+!&gt;  thickness in the ocean. 
 !
 !-----------------------------------------------------------------------
 
@@ -149,7 +147,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
       
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -104,7 +104,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: Error flag
 
       !-----------------------------------------------------------------
       !
@@ -158,7 +158,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: Error flag
 
       integer :: err1, err2, err3
 
@@ -177,3 +177,4 @@
 end module ocn_tracer_hadv
 
 !|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+! vim: foldmetho=marker

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -43,7 +43,7 @@
    !
    !--------------------------------------------------------------------
 
-   logical :: hadv2On
+   logical :: hadv2On !&lt; Flag to turn on/off 2nd order hadv
 
 !***********************************************************************
 
@@ -53,17 +53,13 @@
 !
 !  routine ocn_tracer_hadv2_tend
 !
-!&gt; \brief   Computes tendency term for horizontal tracer advection
+!&gt; \brief   Computes tendency term for horizontal tracer advection 2nd order
 !&gt; \author  Phil Jones, Doug Jacobsen
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the horizontal advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 2nd order formulation.
 !
 !-----------------------------------------------------------------------
 
@@ -76,7 +72,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         u    !&lt; Input: velocity
+         u    !&lt; Input: tracer
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
          h_edge     !&lt; Input: thickness at edge
@@ -94,7 +90,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -102,7 +98,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: Error flag
 
       !-----------------------------------------------------------------
       !
@@ -168,9 +164,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  horizontal velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  2nd order horizontal tracer advection in the ocean.
 !
 !-----------------------------------------------------------------------
 
@@ -184,7 +178,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: Error flag
 
       err = 0
       hadv2On = .false.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv3.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv3.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv3.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -43,8 +43,8 @@
    !
    !--------------------------------------------------------------------
 
-   logical :: hadv3On
-   real (kind=RKIND) :: coef_3rd_order
+   logical :: hadv3On !&lt; Flag to turn on/off 3rd order hadv
+   real (kind=RKIND) :: coef_3rd_order !&lt; Coefficient for 3rd order hadv
 
 !***********************************************************************
 
@@ -54,17 +54,13 @@
 !
 !  routine ocn_tracer_hadv3_tend
 !
-!&gt; \brief   Computes tendency term for horizontal tracer advection
+!&gt; \brief   Computes tendency term for horizontal tracer advection 3rd order
 !&gt; \author  Phil Jones, Doug Jacobsen
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the horizontal advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 3rd order formulation.
 !
 !-----------------------------------------------------------------------
 
@@ -77,7 +73,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         u    !&lt; Input: velocity
+         u    !&lt; Input: tracer
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
          h_edge     !&lt; Input: thickness at edge
@@ -95,7 +91,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -103,7 +99,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -214,9 +210,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  horizontal velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  3rd order horizontal tracer advection in the ocean. 
 !
 !-----------------------------------------------------------------------
 
@@ -230,7 +224,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
       hadv3On = .false.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hadv4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -43,7 +43,7 @@
    !
    !--------------------------------------------------------------------
 
-   logical :: hadv4On
+   logical :: hadv4On !&lt; Flag to turning on/off 4th order hadv
 
 !***********************************************************************
 
@@ -53,17 +53,13 @@
 !
 !  routine ocn_tracer_hadv4_tend
 !
-!&gt; \brief   Computes tendency term for horizontal tracer advection
+!&gt; \brief   Computes tendency term for horizontal tracer advection 4th order
 !&gt; \author  Phil Jones, Doug Jacobsen
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the horizontal advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 4th order formulation.
 !
 !-----------------------------------------------------------------------
 
@@ -76,7 +72,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         u    !&lt; Input: velocity
+         u    !&lt; Input: tracer
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
          h_edge     !&lt; Input: thickness at edge
@@ -94,7 +90,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -102,7 +98,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -201,10 +197,8 @@
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
-!&gt;  This routine initializes a variety of quantities related to 
-!&gt;  horizontal velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  This routine initializes the 4th order formulation for 
+!&gt;  horizontal tracer advection in the ocean. 
 !
 !-----------------------------------------------------------------------
 
@@ -218,7 +212,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: Error flag
 
       err = 0
       hadv4On = .false.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -101,7 +101,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -154,7 +154,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -100,7 +100,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -209,7 +209,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_hmix_del4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -100,7 +100,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -241,7 +241,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
       Del4on = .false.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -79,7 +79,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -94,7 +94,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -102,7 +102,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -143,7 +143,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
+!&gt;  vertical tracer advection in the ocean. Since a variety of 
 !&gt;  parameterizations are available, this routine primarily calls the
 !&gt;  individual init routines for each parameterization. 
 !
@@ -159,7 +159,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -79,7 +79,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -94,7 +94,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -102,7 +102,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -143,7 +143,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
+!&gt;  vertical tracer advection in the ocean. Since a variety of 
 !&gt;  parameterizations are available, this routine primarily calls the
 !&gt;  individual init routines for each parameterization. 
 !
@@ -159,7 +159,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
 !
 !  routine ocn_tracer_vadv_spline2_tend
 !
-!&gt; \brief   Computes tendency term for vertical tracer advection
+!&gt; \brief   Computes tendency term for vertical tracer advection 2nd order spline
 !&gt; \author  Doug Jacobsen
 !&gt; \date    16 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the vertical advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 2nd order spline.
 !
 !-----------------------------------------------------------------------
 
@@ -77,7 +73,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -92,7 +88,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -100,7 +96,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -181,9 +177,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  2nd order spline based vertical tracer advection in the ocean.
 !
 !-----------------------------------------------------------------------
 
@@ -197,7 +191,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_spline3.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -55,17 +55,13 @@
 !
 !  routine ocn_tracer_vadv_spline3_tend
 !
-!&gt; \brief   Computes tendency term for vertical tracer advection
+!&gt; \brief   Computes tendency term for vertical tracer advection 3rd order spline
 !&gt; \author  Doug Jacobsen
 !&gt; \date    16 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the vertical advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 3rd order spline.
 !
 !-----------------------------------------------------------------------
 
@@ -78,7 +74,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -93,7 +89,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -101,7 +97,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -210,9 +206,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  3rd order spline based vertical tracer advection in the ocean.
 !
 !-----------------------------------------------------------------------
 
@@ -226,7 +220,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -62,8 +62,8 @@
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
-!&gt;  This routine computes the vertical advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
+!&gt;  This routine computes the vertical advection tendency for tracers
+!&gt;  based on current state and user choices of stencil based advection parameterization.
 !&gt;  Multiple parameterizations may be chosen and added together.  These
 !&gt;  tendencies are generally computed by calling the specific routine
 !&gt;  for the chosen parameterization, so this routine is primarily a
@@ -80,7 +80,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -95,7 +95,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -103,7 +103,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -145,7 +145,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
+!&gt;  stencil based vertical tracer advection in the ocean. Since a variety of 
 !&gt;  parameterizations are available, this routine primarily calls the
 !&gt;  individual init routines for each parameterization. 
 !
@@ -161,7 +161,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2, err3
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
 !
 !  routine ocn_tracer_vadv_stencil2_tend
 !
-!&gt; \brief   Computes tendency term for vertical tracer advection
+!&gt; \brief   Computes tendency term for vertical tracer advection 2nd order stencil
 !&gt; \author  Phil Jones, Doug Jacobsen
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the vertical advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 2nd order stencil.
 !
 !-----------------------------------------------------------------------
 
@@ -77,7 +73,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -92,7 +88,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -100,7 +96,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -178,9 +174,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  a 2nd order stencil based vertical tracer advection in the ocean.
 !
 !-----------------------------------------------------------------------
 
@@ -194,7 +188,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2, err3
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil3.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
 !
 !  routine ocn_tracer_vadv_stencil3_tend
 !
-!&gt; \brief   Computes tendency term for vertical tracer advection
+!&gt; \brief   Computes tendency term for vertical tracer advection 3rd order stencil
 !&gt; \author  Phil Jones, Doug Jacobsen
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the vertical advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 3rd order stencil.
 !
 !-----------------------------------------------------------------------
 
@@ -77,7 +73,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -92,7 +88,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -100,7 +96,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -201,9 +197,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  3rd order stencil based vertical tracer advection in the ocean. 
 !
 !-----------------------------------------------------------------------
 
@@ -217,7 +211,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
       stencil3On = .false.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_tracer_vadv_stencil4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -54,17 +54,13 @@
 !
 !  routine ocn_tracer_vadv_stencil4_tend
 !
-!&gt; \brief   Computes tendency term for vertical tracer advection
+!&gt; \brief   Computes tendency term for vertical tracer advection 4th order stencil
 !&gt; \author  Phil Jones, Doug Jacobsen
 !&gt; \date    15 September 2011
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the vertical advection tendency for tracer
-!&gt;  based on current state and user choices of advection parameterization.
-!&gt;  Multiple parameterizations may be chosen and added together.  These
-!&gt;  tendencies are generally computed by calling the specific routine
-!&gt;  for the chosen parameterization, so this routine is primarily a
-!&gt;  driver for managing these choices.
+!&gt;  based on current state using a 4th order stencil.
 !
 !-----------------------------------------------------------------------
 
@@ -77,7 +73,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         wTop    !&lt; Input: vertical velocity in top layer
+         wTop    !&lt; Input: vertical tracer in top layer
 
       real (kind=RKIND), dimension(:,:,:), intent(in) :: &amp;
          tracers     !&lt; Input: tracers
@@ -92,7 +88,7 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:,:), intent(inout) :: &amp;
-         tend          !&lt; Input/Output: velocity tendency
+         tend          !&lt; Input/Output: tracer tendency
 
       !-----------------------------------------------------------------
       !
@@ -100,7 +96,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -196,9 +192,7 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine initializes a variety of quantities related to 
-!&gt;  vertical velocity advection in the ocean. Since a variety of 
-!&gt;  parameterizations are available, this routine primarily calls the
-!&gt;  individual init routines for each parameterization. 
+!&gt;  4th order stencil based vertical tracer advection in the ocean.
 !
 !-----------------------------------------------------------------------
 
@@ -212,7 +206,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
       stencil4On = .false.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_coriolis.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_coriolis.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_coriolis.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -71,7 +71,13 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         pv_edge, h_edge, u, ke 
+         pv_edge  !&lt; Input: Potential vorticity on edge
+      real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
+         h_edge  !&lt; Input: Thickness on edge
+      real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
+         u  !&lt; Input: Horizontal velocity
+      real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
+         ke  !&lt; Input: Kinetic Energy
 
       type (mesh_type), intent(in) :: &amp;
          grid          !&lt; Input: grid information
@@ -169,7 +175,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -106,7 +106,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -159,7 +159,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_bottomdrag.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -99,7 +99,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -177,7 +177,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
 
       err = 0

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_windstress.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_forcing_windstress.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -96,7 +96,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -169,7 +169,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
 
       windStressOn = .true.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -101,7 +101,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -154,7 +154,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del2.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del2.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -64,11 +64,11 @@
 !&gt; \version SVN:$Id$
 !&gt; \details 
 !&gt;  This routine computes the horizontal mixing tendency for momentum
-!&gt;  based on a Laplacian form for the mixing, </font>
<font color="black">u_2 </font>
<font color="blue">abla^2 u
+!&gt;  based on a Laplacian form for the mixing, \f$</font>
<font color="black">u_2 </font>
<font color="red">abla^2 u\f$
 !&gt;  This tendency takes the
-!&gt;  form </font>
<font color="black">u( </font>
<font color="black">abla divergence + k \times </font>
<font color="red">abla vorticity ),
-!&gt;  where </font>
<font color="red">u is a viscosity and k is the vertical unit vector.
-!&gt;  This form is strictly only valid for constant </font>
<font color="blue">u .
+!&gt;  form \f$</font>
<font color="black">u( </font>
<font color="black">abla divergence + k \times </font>
<font color="blue">abla vorticity )\f$,
+!&gt;  where \f$</font>
<font color="blue">u\f$ is a viscosity and \f$k\f$ is the vertical unit vector.
+!&gt;  This form is strictly only valid for constant \f$</font>
<font color="gray">u\f$ .
 !
 !-----------------------------------------------------------------------
 
@@ -105,7 +105,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -188,7 +188,7 @@
    subroutine ocn_vel_hmix_del2_init(err)!{{{
 
 
-   integer, intent(out) :: err
+   integer, intent(out) :: err !&lt; Output: error flag
 
    !--------------------------------------------------------------------
    !

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del4.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_hmix_del4.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -66,11 +66,11 @@
 !&gt; \details 
 !&gt;  This routine computes the horizontal mixing tendency for momentum
 !&gt;  based on a biharmonic form for the mixing.  This mixing tendency
-!&gt;  takes the form  -</font>
<font color="black">u_4 </font>
<font color="blue">abla^4 u
+!&gt;  takes the form  \f$-</font>
<font color="black">u_4 </font>
<font color="red">abla^4 u\f$
 !&gt;  but is computed as 
-!&gt;  </font>
<font color="black">abla^2 u = </font>
<font color="black">abla divergence + k \times </font>
<font color="blue">abla vorticity
+!&gt;  \f$</font>
<font color="black">abla^2 u = </font>
<font color="black">abla divergence + k \times </font>
<font color="red">abla vorticity\f$
 !&gt;  applied recursively.
-!&gt;  This formulation is only valid for constant </font>
<font color="blue">u_4 .
+!&gt;  This formulation is only valid for constant \f$</font>
<font color="gray">u_4\f$ .
 !
 !-----------------------------------------------------------------------
 
@@ -106,7 +106,7 @@
       !
       !-----------------------------------------------------------------
     
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -265,7 +265,7 @@
 
    subroutine ocn_vel_hmix_del4_init(err)!{{{
 
-   integer, intent(out) :: err
+   integer, intent(out) :: err !&lt; Output: error flag
 
    !--------------------------------------------------------------------
    !

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_vadv.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_vadv.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vel_vadv.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -73,7 +73,9 @@
       !-----------------------------------------------------------------
 
       real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
-         u, wTop 
+         u     !&lt; Input: Horizontal velocity
+      real (kind=RKIND), dimension(:,:), intent(in) :: &amp;
+         wTop  !&lt; Input: Vertical velocity on top layer
 
       type (mesh_type), intent(in) :: &amp;
          grid          !&lt; Input: grid information
@@ -172,7 +174,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
       velVadvOn = .false.

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -104,7 +104,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -181,7 +181,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -285,7 +285,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -400,7 +400,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -510,7 +510,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -591,7 +591,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       integer :: err1, err2, err3
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_const.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_const.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_const.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -99,7 +99,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -171,9 +171,9 @@
       !
       !-----------------------------------------------------------------
 
-      real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge
+      real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge !&lt; Output: vertical viscosity
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -227,9 +227,9 @@
       !
       !-----------------------------------------------------------------
 
-      real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell
+      real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell !&lt; Output: Vertical diffusion
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -275,7 +275,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_rich.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_rich.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -96,7 +96,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -139,8 +139,8 @@
       rhoDisplaced =&gt; s % rhoDisplaced % array
       tracers =&gt; s % tracers % array
 
-      call ocn_equation_of_state_rho(s, grid, 0, 'relative')
-      call ocn_equation_of_state_rho(s, grid, 1, 'relative')
+      call ocn_equation_of_state_rho(s, grid, 0, 'relative', err)
+      call ocn_equation_of_state_rho(s, grid, 1, 'relative', err)
 
       call ocn_vmix_get_rich_numbers(grid, indexT, indexS, u, h, h_edge, &amp; 
                                   rho, rhoDisplaced, tracers, RiTopOfEdge, RiTopOfCell, err1)
@@ -196,9 +196,9 @@
       !
       !-----------------------------------------------------------------
 
-      real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge
+      real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge !&lt; Output: vertical viscosity
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -300,9 +300,9 @@
       !
       !-----------------------------------------------------------------
 
-      real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell
+      real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell !&lt; Output: vertical diffusions
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -393,11 +393,14 @@
       type (mesh_type), intent(in) :: &amp;
          grid          !&lt; Input: grid information
 
-      integer, intent(in) :: indexT, indexS
+      integer, intent(in) :: indexT !&lt; Input: index for temperature
+      integer, intent(in) :: indexS !&lt; Input: index for salinity
 
-      real (kind=RKIND), dimension(:,:), intent(in) :: u, h, h_edge
+      real (kind=RKIND), dimension(:,:), intent(in) :: u       !&lt; Input: horizontal velocity
+      real (kind=RKIND), dimension(:,:), intent(in) :: h       !&lt; Input: thickness
+      real (kind=RKIND), dimension(:,:), intent(in) :: h_edge  !&lt; Input: thickness at edge 
 
-      real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers
+      real (kind=RKIND), dimension(:,:,:), intent(in) :: tracers !&lt; Input: tracers
 
       !-----------------------------------------------------------------
       !
@@ -411,10 +414,12 @@
       !
       !-----------------------------------------------------------------
 
-      real (kind=RKIND), dimension(:,:), intent(inout) :: rho, rhoDisplaced, &amp;
-                                                        RiTopOfEdge, RiTopOfCell
+      real (kind=RKIND), dimension(:,:), intent(inout) :: rho    !&lt; Input/output: density
+      real (kind=RKIND), dimension(:,:), intent(inout) :: rhoDisplaced    !&lt; Input/output: displaced density
+      real (kind=RKIND), dimension(:,:), intent(inout) :: RiTopOfEdge     !&lt; Input/output: Richardson number top of cell
+      real (kind=RKIND), dimension(:,:), intent(inout) :: RiTopOfCell     !&lt; Input/output: Richardson number top of cell
 
-      integer, intent(inout) :: err
+      integer, intent(inout) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -567,7 +572,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

Modified: branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F
===================================================================
--- branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F        2011-09-30 18:20:19 UTC (rev 1047)
+++ branches/ocean_projects/split_explicit_timestepping/src/core_ocean/mpas_ocn_vmix_coefs_tanh.F        2011-09-30 19:38:22 UTC (rev 1048)
@@ -93,7 +93,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -165,9 +165,9 @@
       !
       !-----------------------------------------------------------------
 
-      real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge
+      real (kind=RKIND), dimension(:,:), intent(out) :: vertViscTopOfEdge !&lt; Output: Vertical viscosity
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -234,9 +234,9 @@
       !
       !-----------------------------------------------------------------
 
-      real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell
+      real (kind=RKIND), dimension(:,:), intent(out) :: vertDiffTopOfCell !&lt; Output: Vertical diffusion
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       !-----------------------------------------------------------------
       !
@@ -293,7 +293,7 @@
       !
       !-----------------------------------------------------------------
 
-      integer, intent(out) :: err
+      integer, intent(out) :: err !&lt; Output: error flag
 
       err = 0
 

</font>
</pre>