<p><b>mpetersen@lanl.gov</b> 2012-02-02 09:43:04 -0700 (Thu, 02 Feb 2012)</p><p>BRANCH COMMIT<br>
<br>
Removed flags <br>
&split_explicit_ts<br>
config_SSH_from = 'avg_flux'<br>
config_new_btr_variables_from = 'btr_avg'<br>
<br>
that were no longer needed.<br>
<br>
Removed boundary update on tracers at end. This is no longer needed<br>
because I update on the tracer tendancy instead.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/ale_split_exp/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/ale_split_exp/src/core_ocean/Registry        2012-02-02 15:52:46 UTC (rev 1450)
+++ branches/ocean_projects/ale_split_exp/src/core_ocean/Registry        2012-02-02 16:43:04 UTC (rev 1451)
@@ -30,8 +30,6 @@
namelist logical split_explicit_ts config_u_correction true
namelist logical split_explicit_ts config_filter_btr_mode false
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
Modified: branches/ocean_projects/ale_split_exp/src/core_ocean/mpas_ocn_time_integration_split.F
===================================================================
--- branches/ocean_projects/ale_split_exp/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-02 15:52:46 UTC (rev 1450)
+++ branches/ocean_projects/ale_split_exp/src/core_ocean/mpas_ocn_time_integration_split.F        2012-02-02 16:43:04 UTC (rev 1451)
@@ -58,7 +58,7 @@
! ocn_time_integration_split
!
!> \brief MPAS ocean split explicit time integration scheme
-!> \author Doug Jacobsen
+!> \author Mark Petersen
!> \date 26 September 2011
!> \version SVN:$Id:$
!> \details
@@ -302,9 +302,6 @@
! For Split_Explicit unsplit, simply set uBtrNew=0, uBtrSubcycle=0, and uNew=uBclNew
block % state % time_levs(2) % state % uBtr % array(:) = 0.0
-! mrp 120131 remove h computed from SSH in current step
-! block % state % time_levs(newBtrSubcycleTime) % state % uBtrSubcycle % array(:) = 0.0
-
block % state % time_levs(2) % state % u % array(:,:) = block % state % time_levs(2) % state % uBcl % array(:,:)
block => block % next
@@ -636,30 +633,6 @@
allocate(uTemp(block % mesh % nVertLevels))
-!!!!!!!!!!!!!!!! do not delete this completely yet.
-!!!!!!!!! use this as a check to see if ssh from diag matches this from flux.
-! would need to be put at the end of the loop, after the ocn diag call.
-! if (config_SSH_from=='avg_flux') then
-! ! Accumulate fluxes in the tend % ssh variable
-! block % tend % ssh % array(:) = 0.0
-! do iEdge=1,block % mesh % nEdges
-! cell1 = block % mesh % cellsOnEdge % array(1,iEdge)
-! cell2 = block % mesh % cellsOnEdge % array(2,iEdge)
-! block % tend % ssh % array(cell1) = block % tend % ssh % array(cell1) &
-! - block % state % time_levs(1) % state % FBtr % array(iEdge) &
-! * block % mesh % dvEdge % array(iEdge)
-! block % tend % ssh % array(cell2) = block % tend % ssh % array(cell2) &
-! + block % state % time_levs(1) % state % FBtr % array(iEdge) &
-! * block % mesh % dvEdge % array(iEdge)
-! end do
-! do iCell=1,block % mesh % nCells
-! ! SSHnew = SSHold + dt*(-div(Flux))
-! block % state % time_levs(2) % state % ssh % array(iCell) = block % state % time_levs(1) % state % ssh % array(iCell) &
-! + dt * block % tend % ssh % array(iCell) / block % mesh % areaCell % array (iCell)
-! end do
-!!!!!!!!!!!!!!!! END do not delete this completely yet.
-
-
! Correction velocity uCorr = (Flux - Sum(h u*))/H
! or, for the full latex version:
!{\bf u}^{corr} = \left( {\overline {\bf F}}
@@ -782,28 +755,14 @@
end do
end do ! iCell
-
-! mrp 120131 remove h computed from SSH in current step
-! this next section is probably not needed - just u^{tr} should be fine.
- ! compute u*, the velocity for tendency terms. Put in uNew.
- ! uBclNew is at time n+1/2 here.
- ! This overwrites u^{tr}, the tracer transport velocity, which was in uNew.
- ! The following must occur after call OcnTendScalar
- do iEdge=1,block % mesh % nEdges
- do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
- block % state % time_levs(2) % state % u % array(k,iEdge) &
- = block % state % time_levs(2) % state % uBtr % array(iEdge) &
- + block % state % time_levs(2) % state % uBcl % array(k,iEdge)
- end do
- do k=block % mesh % maxLevelEdgeTop % array(iEdge)+1,block % mesh % nVertLevels
- block % state % time_levs(2) % state % u % array(k,iEdge) = 0.0
- end do
- end do ! iEdge
-
! uBclNew is u'_{n+1/2}
! uBtrNew is {\bar u}_{avg}
! uNew is u^{tr}
+ ! mrp 110512 I really only need this to compute h_edge, density, pressure, and SSH
+ ! I can par this down later.
+ call ocn_diagnostic_solve(dt, block % state % time_levs(2) % state, block % mesh)
+
!!!!!!!!!!!!!!! On last iteration: Compute all variables at time n+1
elseif (split_explicit_step == config_n_ts_iter) then
@@ -850,35 +809,6 @@
block => block % next
end do
-! mrp 120131 note: need to remove halo update on tracers themselves below, but later.
- ! 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.
- call mpas_timer_start("se halo tracers", .false., timer_halo_tracers)
- 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
- call mpas_timer_stop("se halo tracers", timer_halo_tracers)
-
-
- if (split_explicit_step < config_n_ts_iter) then
- ! mrp 110512 I really only need this to compute h_edge, density, pressure, and SSH
- ! 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>