<p><b>dwj07@fsu.edu</b> 2011-10-26 09:47:20 -0600 (Wed, 26 Oct 2011)</p><p><br>
        -- BRANCH COMMIT --<br>
<br>
        Merged trunk to branch.<br>
</p><hr noshade><pre><font color="gray">
Property changes on: branches/ocean_projects/performance/src
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/ocean_projects/imp_vert_mix_mrp/src:754-986
/branches/ocean_projects/split_explicit_timestepping/src:1044-1097
/branches/ocean_projects/vert_adv_mrp/src:704-745
/branches/source_renaming/src:1082-1113
/branches/time_manager/src:924-962
/trunk/mpas/src:1109-1139
Modified: branches/ocean_projects/performance/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/Registry        2011-10-26 15:31:54 UTC (rev 1139)
+++ branches/ocean_projects/performance/src/core_ocean/Registry        2011-10-26 15:47:20 UTC (rev 1140)
@@ -187,7 +187,7 @@
# Prognostic variables: read from input, saved in restart, and written to output
var persistent real u ( nVertLevels nEdges Time ) 2 ir u state - -
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 rho ( nVertLevels nCells Time ) 2 iro rho state - -
var persistent real temperature ( nVertLevels nCells Time ) 2 iro temperature state tracers dynamics
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
@@ -217,8 +217,8 @@
# Diagnostic fields: only written to output
var persistent real v ( nVertLevels nEdges Time ) 2 - v state - -
-var persistent real divergence ( nVertLevels nCells Time ) 2 - divergence state - -
-var persistent real vorticity ( nVertLevels nVertices Time ) 2 - vorticity state - -
+var persistent real divergence ( nVertLevels nCells Time ) 2 o divergence state - -
+var persistent real vorticity ( nVertLevels nVertices Time ) 2 o vorticity state - -
var persistent real pv_edge ( nVertLevels nEdges Time ) 2 - pv_edge state - -
var persistent real h_edge ( nVertLevels nEdges Time ) 2 - h_edge state - -
var persistent real h_vertex ( nVertLevels nVertices Time ) 2 - h_vertex state - -
@@ -229,8 +229,8 @@
var persistent real uReconstructX ( nVertLevels nCells Time ) 2 - uReconstructX state - -
var persistent real uReconstructY ( nVertLevels nCells Time ) 2 - uReconstructY state - -
var persistent real uReconstructZ ( nVertLevels nCells Time ) 2 - uReconstructZ state - -
-var persistent real uReconstructZonal ( nVertLevels nCells Time ) 2 - uReconstructZonal state - -
-var persistent real uReconstructMeridional ( nVertLevels nCells Time ) 2 - uReconstructMeridional state - -
+var persistent real uReconstructZonal ( nVertLevels nCells Time ) 2 o uReconstructZonal state - -
+var persistent real uReconstructMeridional ( nVertLevels nCells Time ) 2 o uReconstructMeridional state - -
var persistent real MontPot ( nVertLevels nCells Time ) 2 - MontPot state - -
var persistent real pressure ( nVertLevels nCells Time ) 2 - pressure state - -
var persistent real wTop ( nVertLevelsP1 nCells Time ) 2 - wTop state - -
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_rk4.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_rk4.F        2011-10-26 15:31:54 UTC (rev 1139)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_rk4.F        2011-10-26 15:47:20 UTC (rev 1140)
@@ -30,8 +30,6 @@
private
save
- type (timer_node), pointer :: diagSolveTimer
-
!--------------------------------------------------------------------
!
! Public parameters
@@ -150,10 +148,10 @@
block % parinfo % edgesToSend, block % parinfo % edgesToRecv)
if (config_h_mom_eddy_visc4 > 0.0) then
- call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % state % time_levs(2) % state % divergence % array(:,:), &
+ call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % divergence % array(:,:), &
block % mesh % nVertLevels, block % mesh % nCells, &
block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
- call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % state % time_levs(2) % state % vorticity % array(:,:), &
+ call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, provis % vorticity % array(:,:), &
block % mesh % nVertLevels, block % mesh % nVertices, &
block % parinfo % verticesToSend, block % parinfo % verticesToRecv)
end if
@@ -229,9 +227,7 @@
provis % u % array(:,:) = block % state % time_levs(1) % state % u % array(:,:)
end if
- call mpas_timer_start("diagnostic solve", .false., diagSolveTimer)
call ocn_diagnostic_solve(dt, provis, block % mesh)
- call mpas_timer_stop("diagnostic solve", diagSolveTimer)
block => block % next
end do
Modified: branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_split.F        2011-10-26 15:31:54 UTC (rev 1139)
+++ branches/ocean_projects/performance/src/core_ocean/mpas_ocn_time_integration_split.F        2011-10-26 15:47:20 UTC (rev 1140)
@@ -963,20 +963,18 @@
block => block % next
end do
- ! --- update halos for prognostic variables
+ ! update halo for thicknes for unsplit only
+ if (trim(config_time_integration) == 'unsplit_explicit') then
+ block => domain % blocklist
+ do while (associated(block))
+ call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % tend % h % array(:,:), &
+ block % mesh % nVertLevels, block % mesh % nCells, &
+ block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+ block => block % next
+ end do
+ endif ! unsplit_explicit
- block => domain % blocklist
- do while (associated(block))
- call mpas_dmpar_exch_halo_field2d_real(domain % dminfo, block % tend % h % array(:,:), &
- block % mesh % nVertLevels, block % mesh % nCells, &
- block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
- call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % tend % tracers % array(:,:,:), &
- block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, &
- block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
- block => block % next
- end do
-
block => domain % blocklist
do while (associated(block))
allocate(hNew(block % mesh % nVertLevels))
@@ -1056,11 +1054,6 @@
+ block % state % time_levs(2) % state % uBcl % array(:,iEdge)
end do ! iEdge
- ! mrp 110512 I really only need this to compute h_edge, density, pressure.
- ! I can par this down later.
- call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
-
-
elseif (split_explicit_step == config_n_ts_iter) then
hNew(:) = block % mesh % hZLevel % array(:)
@@ -1086,6 +1079,30 @@
block => block % next
end do
+ ! Boundary update on tracers. This is placed here, rather than
+ ! on tend % tracers as in RK4, because I needed to update
+ ! afterwards for the del4 diffusion operator.
+ block => domain % blocklist
+ do while (associated(block))
+ call mpas_dmpar_exch_halo_field3d_real(domain % dminfo, block % state % time_levs(2) % state % tracers % array(:,:,:), &
+ block % tend % num_tracers, block % mesh % nVertLevels, block % mesh % nCells, &
+ block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
+ block => block % next
+ end do
+
+
+ if (split_explicit_step < config_n_ts_iter) then
+ ! mrp 110512 I really only need this to compute h_edge, density, pressure.
+ ! I can par this down later.
+ block => domain % blocklist
+ do while (associated(block))
+
+ call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
+
+ block => block % next
+ end do
+ endif
+
end do ! split_explicit_step = 1, config_n_ts_iter
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
! END large iteration loop
</font>
</pre>