<p><b>dwj07@fsu.edu</b> 2011-12-22 08:30:21 -0700 (Thu, 22 Dec 2011)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Fixing time average module. It now reports noramlized time averages of the following quantities.<br>
<br>
        ssh<br>
        sshVar<br>
        u<br>
        uVar<br>
        uReconstructZonal<br>
        uReconstructZonalVar<br>
        uReconstructMeridional<br>
        uReconstructMeridionalVar<br>
<br>
<br>
        The averages are accumulated once per timestep. The calls to accumulate have to be in the time step module<br>
        in order to accumulate the reconstructed velocity field, since it's not up-to-date during ocn_diagnostic_solve.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/time_averaging/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/time_averaging/src/core_ocean/Registry        2011-12-21 23:07:11 UTC (rev 1273)
+++ branches/ocean_projects/time_averaging/src/core_ocean/Registry        2011-12-22 15:30:21 UTC (rev 1274)
@@ -266,3 +266,5 @@
 var persistent real    acc_uReconstructMeridional ( nVertLevels nCells Time ) 1 o acc_uReconstructMeridional state - -
 var persistent real    acc_uReconstructZonalVar ( nVertLevels nCells Time ) 1 o acc_uReconstructZonalVar state - -
 var persistent real    acc_uReconstructMeridionalVar ( nVertLevels nCells Time ) 1 o acc_uReconstructMeridionalVar state - -
+var persistent real           acc_u ( nVertLevels nEdges Time ) 1 o acc_u state - -
+var persistent real           acc_uVar ( nVertLevels nEdges Time ) 1 o acc_uVar state - -

Modified: branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_tendency.F
===================================================================
--- branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_tendency.F        2011-12-21 23:07:11 UTC (rev 1273)
+++ branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_tendency.F        2011-12-22 15:30:21 UTC (rev 1274)
@@ -1109,8 +1109,6 @@
 
       call ocn_wtop(s,grid)
 
-      call ocn_time_average_accumulate(s)
-
       call mpas_timer_stop(&quot;ocn_diagnostic_solve&quot;)
 
    end subroutine ocn_diagnostic_solve!}}}

Modified: branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_average.F
===================================================================
--- branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_average.F        2011-12-21 23:07:11 UTC (rev 1273)
+++ branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_average.F        2011-12-22 15:30:21 UTC (rev 1274)
@@ -15,6 +15,7 @@
 
         real (kind=RKIND), dimension(:), pointer :: acc_ssh, acc_sshVar
         real (kind=RKIND), dimension(:,:), pointer :: acc_uReconstructZonal, acc_uReconstructMeridional, acc_uReconstructZonalVar, acc_uReconstructMeridionalVar
+        real (kind=RKIND), dimension(:,:), pointer :: acc_u, acc_uVar
 
         nAccumulate =&gt; state % nAccumulate % scalar
 
@@ -24,6 +25,8 @@
         acc_uReconstructMeridional =&gt; state % acc_uReconstructMeridional % array
         acc_uReconstructZonalVar =&gt; state % acc_uReconstructZonalVar % array
         acc_uReconstructMeridionalVar =&gt; state % acc_uReconstructMeridionalVar % array
+        acc_u =&gt; state % acc_u % array
+        acc_uVar =&gt; state % acc_uVar % array
 
         nAccumulate = 0
 
@@ -33,6 +36,8 @@
         acc_uReconstructMeridional = 0.0
         acc_uReconstructZonalVar = 0.0
         acc_uReconstructMeridionalVar = 0.0
+        acc_u = 0.0
+        acc_uVar = 0.0
 
     end subroutine ocn_time_average_init!}}}
 
@@ -42,8 +47,9 @@
         real, pointer :: nAccumulate
 
         real (kind=RKIND), dimension(:), pointer :: ssh
-        real (kind=RKIND), dimension(:,:), pointer :: uReconstructZonal, uReconstructMeridional
+        real (kind=RKIND), dimension(:,:), pointer :: uReconstructZonal, uReconstructMeridional, u
 
+        real (kind=RKIND), dimension(:,:), pointer :: acc_u, acc_uVar
         real (kind=RKIND), dimension(:,:), pointer :: acc_uReconstructZonal, acc_uReconstructMeridional, acc_uReconstructZonalVar, acc_uReconstructMeridionalVar
         real (kind=RKIND), dimension(:), pointer :: acc_ssh, acc_sshVar
 
@@ -52,6 +58,7 @@
         ssh =&gt; state % ssh % array
         uReconstructZonal =&gt; state % uReconstructZonal % array
         uReconstructMeridional =&gt; state % uReconstructMeridional % array
+        u =&gt; state % u % array
 
         acc_ssh =&gt; state % acc_ssh % array
         acc_sshVar =&gt; state % acc_sshVar % array
@@ -59,6 +66,8 @@
         acc_uReconstructMeridional =&gt; state % acc_uReconstructMeridional % array
         acc_uReconstructZonalVar =&gt; state % acc_uReconstructZonalVar % array
         acc_uReconstructMeridionalVar =&gt; state % acc_uReconstructMeridionalVar % array
+        acc_u =&gt; state % acc_u % array
+        acc_uVar =&gt; state % acc_uVar % array
 
         acc_ssh = acc_ssh + ssh
         acc_sshVar = acc_sshVar + ssh**2
@@ -66,8 +75,11 @@
         acc_uReconstructMeridional = acc_uReconstructMeridional + uReconstructMeridional
         acc_uReconstructZonalVar = acc_uReconstructZonalVar + uReconstructZonal**2
         acc_uReconstructMeridionalVar = acc_uReconstructMeridionalVar + uReconstructMeridional**2
+        acc_u = acc_u + u
+        acc_uVar = acc_uVar + u**2
 
         nAccumulate = nAccumulate + 1
+        print *,'accumulate done'
     end subroutine ocn_time_average_accumulate!}}}
 
     subroutine ocn_time_average_normalize(state)!{{{
@@ -77,6 +89,7 @@
 
         real (kind=RKIND), dimension(:), pointer :: acc_ssh, acc_sshVar
         real (kind=RKIND), dimension(:,:), pointer :: acc_uReconstructZonal, acc_uReconstructMeridional, acc_uReconstructZonalVar, acc_uReconstructMeridionalVar
+        real (kind=RKIND), dimension(:,:), pointer :: acc_u, acc_uVar
 
         nAccumulate =&gt; state % nAccumulate  % scalar
 
@@ -86,6 +99,8 @@
         acc_uReconstructMeridional =&gt; state % acc_uReconstructMeridional % array
         acc_uReconstructZonalVar =&gt; state % acc_uReconstructZonalVar % array
         acc_uReconstructMeridionalVar =&gt; state % acc_uReconstructMeridionalVar % array
+        acc_u =&gt; state % acc_u % array
+        acc_uVar =&gt; state % acc_uVar % array
 
         acc_ssh = acc_ssh / nAccumulate
         acc_sshVar = acc_sshVar / nAccumulate
@@ -93,6 +108,8 @@
         acc_uReconstructMeridional = acc_uReconstructMeridional / nAccumulate
         acc_uReconstructZonalVar = acc_uReconstructZonalVar / nAccumulate
         acc_uReconstructMeridionalVar = acc_uReconstructMeridionalVar / nAccumulate
+        acc_u = acc_u / nAccumulate
+        acc_uVar = acc_uVar / nAccumulate
     end subroutine ocn_time_average_normalize!}}}
 
 end module ocn_time_average

Modified: branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_integration_rk4.F        2011-12-21 23:07:11 UTC (rev 1273)
+++ branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_integration_rk4.F        2011-12-22 15:30:21 UTC (rev 1274)
@@ -24,7 +24,8 @@
    use ocn_tendency
 
    use ocn_equation_of_state
-   use ocn_Vmix
+   use ocn_vmix
+   use ocn_time_average
 
    implicit none
    private
@@ -227,7 +228,9 @@
                  provis % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
               end if
 
+              print *,'First diag solve'
               call ocn_diagnostic_solve(dt, provis, block % mesh)
+              print *,'First diag solve done'
 
               block =&gt; block % next
            end do
@@ -345,7 +348,9 @@
             block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
          end if
 
+         print *,'Second diag solve'
          call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
+         print *,'Second diag solve done'
 
          call mpas_reconstruct(block % mesh, block % state % time_levs(2) % state % u % array,          &amp;
                           block % state % time_levs(2) % state % uReconstructX % array,            &amp;
@@ -355,6 +360,8 @@
                           block % state % time_levs(2) % state % uReconstructMeridional % array    &amp;
                          )
 
+         call ocn_time_average_accumulate(block % state % time_levs(2) % state)
+
          block =&gt; block % next
       end do
       call mpas_timer_stop(&quot;RK4-cleaup phase&quot;)

Modified: branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_integration_split.F        2011-12-21 23:07:11 UTC (rev 1273)
+++ branches/ocean_projects/time_averaging/src/core_ocean/mpas_ocn_time_integration_split.F        2011-12-22 15:30:21 UTC (rev 1274)
@@ -27,8 +27,8 @@
 
    use ocn_equation_of_state
    use ocn_vmix
+   use ocn_time_average
 
-
    implicit none
    private
    save
@@ -1251,6 +1251,8 @@
                           block % state % time_levs(2) % state % uReconstructMeridional % array    &amp;
                          )
 
+         call ocn_time_average_accumulate(block % state % time_levs(2) % state)
+
          block =&gt; block % next
       end do
       call mpas_timer_stop(&quot;split_explicit_timestep&quot;)

</font>
</pre>