<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("ocn_diagnostic_solve")
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 => state % nAccumulate % scalar
@@ -24,6 +25,8 @@
acc_uReconstructMeridional => state % acc_uReconstructMeridional % array
acc_uReconstructZonalVar => state % acc_uReconstructZonalVar % array
acc_uReconstructMeridionalVar => state % acc_uReconstructMeridionalVar % array
+ acc_u => state % acc_u % array
+ acc_uVar => 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 => state % ssh % array
uReconstructZonal => state % uReconstructZonal % array
uReconstructMeridional => state % uReconstructMeridional % array
+ u => state % u % array
acc_ssh => state % acc_ssh % array
acc_sshVar => state % acc_sshVar % array
@@ -59,6 +66,8 @@
acc_uReconstructMeridional => state % acc_uReconstructMeridional % array
acc_uReconstructZonalVar => state % acc_uReconstructZonalVar % array
acc_uReconstructMeridionalVar => state % acc_uReconstructMeridionalVar % array
+ acc_u => state % acc_u % array
+ acc_uVar => 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 => state % nAccumulate % scalar
@@ -86,6 +99,8 @@
acc_uReconstructMeridional => state % acc_uReconstructMeridional % array
acc_uReconstructZonalVar => state % acc_uReconstructZonalVar % array
acc_uReconstructMeridionalVar => state % acc_uReconstructMeridionalVar % array
+ acc_u => state % acc_u % array
+ acc_uVar => 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 => 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, &
block % state % time_levs(2) % state % uReconstructX % array, &
@@ -355,6 +360,8 @@
block % state % time_levs(2) % state % uReconstructMeridional % array &
)
+ call ocn_time_average_accumulate(block % state % time_levs(2) % state)
+
block => block % next
end do
call mpas_timer_stop("RK4-cleaup phase")
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 &
)
+ call ocn_time_average_accumulate(block % state % time_levs(2) % state)
+
block => block % next
end do
call mpas_timer_stop("split_explicit_timestep")
</font>
</pre>