<p><b>mpetersen@lanl.gov</b> 2011-05-17 10:38:11 -0600 (Tue, 17 May 2011)</p><p>Check-in with debugging print statements.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-05-16 19:34:10 UTC (rev 836)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/Registry        2011-05-17 16:38:11 UTC (rev 837)
@@ -177,9 +177,9 @@
 
 # state variables for Higdon timesplitting
 var persistent real   uBtr ( nEdges Time )         2 o  uBtr state - -
-var persistent real   eta ( nCells Time )          2 o  eta state - - 
+var persistent real   ssh ( nCells Time )          2 o  ssh state - - 
 var persistent real   uBtrSubcycle ( nEdges Time ) 2 o  uBtrSubcycle state - -
-var persistent real   etaSubcycle ( nCells Time )  2 o  etaSubcycle state - - 
+var persistent real   sshSubcycle ( nCells Time )  2 o  sshSubcycle state - - 
 var persistent real   FBtr ( nEdges Time )         1 o  FBtr state - - 
 var persistent real   GBtrForcing ( nEdges Time )  1 o  GBtrForcing state - -
 var persistent real   uBcl ( nVertLevels nEdges Time )  2 o  uBcl state - - 

Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F        2011-05-16 19:34:10 UTC (rev 836)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_mpas_core.F        2011-05-17 16:38:11 UTC (rev 837)
@@ -109,8 +109,12 @@
               :block % mesh % nVertLevels,iCell) =  0.0
 ! mrp changed to 0
 !              :block % mesh % nVertLevels,iCell) =  -1e34
+
+! mrp 110516 temp, added just to test for conservation of tracers
+         block % state % time_levs(1) % state % tracers % array(3,:,iCell) = 1.0
+
       end do
-   
+
       if (.not. config_do_restart) then 
           block % state % time_levs(1) % state % xtime % scalar = 0.0
       else

Modified: branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F
===================================================================
--- branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-05-16 19:34:10 UTC (rev 836)
+++ branches/ocean_projects/timesplitting_mrp/src/core_ocean/module_time_integration.F        2011-05-17 16:38:11 UTC (rev 837)
@@ -381,7 +381,7 @@
       real (kind=RKIND), dimension(:), allocatable:: A,C,uTemp, G
       real (kind=RKIND), dimension(:,:), allocatable:: tracersTemp
 
-print *, '1'
+!print *, '1'
 
 
       !
@@ -391,17 +391,17 @@
       do while (associated(block))
 
 ! printing:
-         nCells      = block % mesh % nCells
-         nEdges      = block % mesh % nEdges
-         nVertLevels = block % mesh % nVertLevels
-print *, 'uold',minval(block % state % time_levs(1) % state % u % array(:,1:nEdges)),&amp;
-                maxval(block % state % time_levs(1) % state % u % array(:,1:nEdges))
-print *, 'hold',minval(block % state % time_levs(1) % state % h % array(:,1:nCells)),&amp;
-                maxval(block % state % time_levs(1) % state % h % array(:,1:nCells))
-print *, 'Told',minval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells)),&amp;
-                maxval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells))
-print *, 'Sold',minval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells)),&amp;
-                maxval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells))
+!         nCells      = block % mesh % nCells
+!         nEdges      = block % mesh % nEdges
+!         nVertLevels = block % mesh % nVertLevels
+!print *, 'uold',minval(block % state % time_levs(1) % state % u % array(:,1:nEdges)),&amp;
+!                maxval(block % state % time_levs(1) % state % u % array(:,1:nEdges))
+!print *, 'hold',minval(block % state % time_levs(1) % state % h % array(:,1:nCells)),&amp;
+!                maxval(block % state % time_levs(1) % state % h % array(:,1:nCells))
+!print *, 'Told',minval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells)),&amp;
+!                maxval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells))
+!print *, 'Sold',minval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells)),&amp;
+!                maxval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells))
 ! printing end
 
          do iEdge=1,block % mesh % nEdges
@@ -442,11 +442,11 @@
             end do
          end do
 
-!mrp 110512 need to add w, p, and eta here?
+!mrp 110512 need to add w, p, and ssh here?
 
          block =&gt; block % next
       end do
-print *, '2'
+!print *, '2'
 
 
       !
@@ -473,7 +473,7 @@
 
            block =&gt; block % next
         end do
-print *, '3'
+!print *, '3'
 
       !
       !  Stage 1: Baroclinic velocity (3D) prediction, explicit with long timestep
@@ -487,7 +487,7 @@
             call compute_vertical_mix_coefficients(block % state % time_levs(2) % state, block % diagnostics, block % mesh)
          end if
          call compute_tend_u(block % tend, block % state % time_levs(2) % state , block % diagnostics, block % mesh)
-! mrp soon: for split version: add g/rho grad eta to tend_u
+! mrp soon: for split version: add g/rho grad ssh to tend_u
          call enforce_boundaryEdge(block % tend, block % mesh)
          block =&gt; block % next
       end do
@@ -501,7 +501,7 @@
 !  call compute_uPerp(uBclNew,uBclPerp)
 !  need subroutine and variable just for perp, say uBclPerp - may already be there.
 
-print *, '4'
+!print *, '4'
 
          block =&gt; domain % blocklist
          do while (associated(block))
@@ -510,7 +510,7 @@
            do iEdge=1,block % mesh % nEdges
               G = 0.0  ! could put this after with G(maxleveledgetop+1:nvertlevels)=0
               do k=1,block % mesh % maxLevelEdgeTop % array(iEdge)
-                 !{\bf G}_k = -f{\bf u}_{k,n+1}^{'\;\perp} + {\bf T}({\bf u}_k^*,w_k^*,p_k^*) +\frac{g}{\rho_0}</font>
<font color="blue">abla \eta^*
+                 !{\bf G}_k = -f{\bf u}_{k,n+1}^{'\;\perp} + {\bf T}({\bf u}_k^*,w_k^*,p_k^*) +\frac{g}{\rho_0}</font>
<font color="gray">abla \ssh^*
 
 ! This soon, with coriolis:
 !                G(k) = -fEdge(iEdge)*uBclPerp(k,iEdge) + tend_u(k,iEdge)
@@ -547,7 +547,7 @@
         end do
 
       enddo  ! config_n_bcl_iter
-print *, '5'
+!print *, '5'
 
 
 
@@ -566,7 +566,7 @@
       end do  ! block
 
 
-print *, '6'
+!print *, '6'
 
       !
       !  Stage 3: Tracer, density, pressure, vertical velocity prediction
@@ -590,10 +590,15 @@
 
            call compute_scalar_tend(block % tend, block % state % time_levs(2) % state , block % diagnostics, block % mesh)
 
+! printing:
+         nCells      = block % mesh % nCells
+print *, 'tr_tend',minval(block % tend % tracers % array(3,1,1:nCells)),&amp;
+                   maxval(block % tend % tracers % array(3,1,1:nCells))
+
            block =&gt; block % next
          end do
 
-print *, '7'
+!print *, '7'
 
 ! ---  update halos for prognostic variables
 
@@ -607,7 +612,7 @@
                                             block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
            block =&gt; block % next
         end do
-print *, '8'
+!print *, '8'
 
 
         block =&gt; domain % blocklist
@@ -662,16 +667,16 @@
          nCells      = block % mesh % nCells
          nEdges      = block % mesh % nEdges
          nVertLevels = block % mesh % nVertLevels
-print *, 'uold   ',minval(block % state % time_levs(1) % state % u % array(:,1:nEdges)),&amp;
-                   maxval(block % state % time_levs(1) % state % u % array(:,1:nEdges))
-print *, 'hold   ',minval(block % state % time_levs(1) % state % h % array(:,1:nCells)),&amp;
-                   maxval(block % state % time_levs(1) % state % h % array(:,1:nCells))
-print *, 'hold1  ',minval(block % state % time_levs(1) % state % h % array(1,1:nCells)),&amp;
-                   maxval(block % state % time_levs(1) % state % h % array(1,1:nCells))
-print *, 'Told   ',minval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells)),&amp;
-                   maxval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells))
-print *, 'Sold   ',minval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells)),&amp;
-                   maxval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells))
+!print *, 'uold   ',minval(block % state % time_levs(1) % state % u % array(:,1:nEdges)),&amp;
+!                   maxval(block % state % time_levs(1) % state % u % array(:,1:nEdges))
+!print *, 'hold   ',minval(block % state % time_levs(1) % state % h % array(:,1:nCells)),&amp;
+!                   maxval(block % state % time_levs(1) % state % h % array(:,1:nCells))
+!print *, 'hold1  ',minval(block % state % time_levs(1) % state % h % array(1,1:nCells)),&amp;
+!                   maxval(block % state % time_levs(1) % state % h % array(1,1:nCells))
+!print *, 'Told   ',minval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells)),&amp;
+!                   maxval(block % state % time_levs(1) % state % tracers % array(1,:,1:nCells))
+!print *, 'Sold   ',minval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells)),&amp;
+!                   maxval(block % state % time_levs(1) % state % tracers % array(2,:,1:nCells))
 print *, 'unew   ',minval(block % state % time_levs(2) % state % u % array(:,1:nEdges)),&amp;
                    maxval(block % state % time_levs(2) % state % u % array(:,1:nEdges))
 print *, 'hnew   ',minval(block % state % time_levs(2) % state % h % array(:,1:nCells)),&amp;
@@ -682,7 +687,11 @@
                    maxval(block % state % time_levs(2) % state % tracers % array(1,:,1:nCells))
 print *, 'Snew   ',minval(block % state % time_levs(2) % state % tracers % array(2,:,1:nCells)),&amp;
                    maxval(block % state % time_levs(2) % state % tracers % array(2,:,1:nCells))
-  block % state % time_levs(2) % state % tracers % array(3,1,1:nCells) = domain % dminfo % my_proc_id
+print *, 'Tr1Old1',minval(block % state % time_levs(1) % state % tracers % array(3,1,1:nCells)),&amp;
+                   maxval(block % state % time_levs(1) % state % tracers % array(3,1,1:nCells))
+print *, 'Tr1New1',minval(block % state % time_levs(2) % state % tracers % array(3,1,1:nCells)),&amp;
+                   maxval(block % state % time_levs(2) % state % tracers % array(3,1,1:nCells))
+!  block % state % time_levs(2) % state % tracers % array(3,1,1:nCells) = domain % dminfo % my_proc_id
 ! printing end
 
          u           =&gt; block % state % time_levs(2) % state % u % array
@@ -927,7 +936,7 @@
             end do
          end do
          do iCell=1,nCells
-            tend_h(1,iCell) = tend_h(1,iCell) / areaCell(iCell)
+           tend_h(1,iCell) = tend_h(1,iCell) / areaCell(iCell)
          end do
 
       endif ! config_vert_grid_type
@@ -1024,6 +1033,7 @@
       areaCell          =&gt; grid % areaCell % array
       areaTriangle      =&gt; grid % areaTriangle % array
       h_s               =&gt; grid % h_s % array
+! mrp 110516 cleanup fvertex fedge not used in this subroutine
       fVertex           =&gt; grid % fVertex % array
       fEdge             =&gt; grid % fEdge % array
       zMidZLevel        =&gt; grid % zMidZLevel % array
@@ -1045,9 +1055,32 @@
       !
       ! velocity tendency: start accumulating tendency terms
       !
+      ! mrp 110516 efficiency: could remove next line and have first tend_u operation not be additive
       tend_u(:,:) = 0.0
 
       !
+      ! velocity tendency: nonlinear Coriolis term and grad of kinetic energy
+      !
+      do iEdge=1,grid % nEdgesSolve
+         cell1 = cellsOnEdge(1,iEdge)
+         cell2 = cellsOnEdge(2,iEdge)
+
+         do k=1,maxLevelEdgeTop(iEdge)
+
+            q = 0.0
+            do j = 1,nEdgesOnEdge(iEdge)
+               eoe = edgesOnEdge(j,iEdge)
+               workpv = 0.5 * (pv_edge(k,iEdge) + pv_edge(k,eoe))
+               q = q + weightsOnEdge(j,iEdge) * u(k,eoe) * workpv * h_edge(k,eoe) 
+            end do
+            tend_u(k,iEdge) = tend_u(k,iEdge)     &amp;
+                   + q     &amp;
+                   - (   ke(k,cell2) - ke(k,cell1) ) / dcEdge(iEdge)
+
+         end do
+      end do
+
+      !
       ! velocity tendency: vertical advection term -w du/dz
       !
       if (config_vert_grid_type.eq.'zlevel') then
@@ -1069,7 +1102,8 @@
 
           ! Average w*du/dz from vertical interface to vertical middle of cell
           do k=1,maxLevelEdgeTop(iEdge)
-             tend_u(k,iEdge) = - 0.5 * (w_dudzTopEdge(k) + w_dudzTopEdge(k+1))
+             tend_u(k,iEdge) = tend_u(k,iEdge) &amp;
+                - 0.5 * (w_dudzTopEdge(k) + w_dudzTopEdge(k+1))
           enddo
         enddo
         deallocate(w_dudzTopEdge)
@@ -1224,28 +1258,6 @@
       end if
 
       !
-      ! velocity tendency: nonlinear Coriolis term and grad of kinetic energy
-      !
-      do iEdge=1,grid % nEdgesSolve
-         cell1 = cellsOnEdge(1,iEdge)
-         cell2 = cellsOnEdge(2,iEdge)
-
-         do k=1,maxLevelEdgeTop(iEdge)
-
-            q = 0.0
-            do j = 1,nEdgesOnEdge(iEdge)
-               eoe = edgesOnEdge(j,iEdge)
-               workpv = 0.5 * (pv_edge(k,iEdge) + pv_edge(k,eoe))
-               q = q + weightsOnEdge(j,iEdge) * u(k,eoe) * workpv * h_edge(k,eoe) 
-            end do
-            tend_u(k,iEdge) = tend_u(k,iEdge)     &amp;
-                   + q     &amp;
-                   - (   ke(k,cell2) - ke(k,cell1) ) / dcEdge(iEdge)
-
-         end do
-      end do
-
-      !
       ! velocity tendency: forcing and bottom drag
       !
       ! mrp 101115 note: in order to include flux boundary conditions, we will need to 
@@ -1816,6 +1828,13 @@
 
       end if
 
+! mrp 110516 printing
+!print *, 'tend_tr 1',minval(tend_tr(3,1,1:nCells)),&amp;
+!                   maxval(tend_tr(3,1,1:nCells))
+!print *, 'tracer  1',minval(tracers(3,1,1:nCells)),&amp;
+!                   maxval(tracers(3,1,1:nCells))
+! mrp 110516 printing end
+
       !
       ! tracer tendency: vertical diffusion h d/dz( \kappa_v d\phi/dz)
       !
@@ -1842,11 +1861,18 @@
                   + fluxVertTop(iTracer,k) - fluxVertTop(iTracer,k+1)
               enddo
             enddo
+!print '(a,50e12.2)', 'fluxVertTop',fluxVertTop(3,1:maxLevelCell(iCell)+1)
+!print '(a,50e12.2)', 'tend_tr    ',tend_tr(3,1,1:maxLevelCell(iCell))
 
          enddo ! iCell loop
          deallocate(fluxVertTop)
       endif
 
+! mrp 110516 printing
+!print *, 'tend_tr 2',minval(tend_tr(3,1,1:nCells)),&amp;
+!                   maxval(tend_tr(3,1,1:nCells))
+! mrp 110516 printing end
+
       !
       ! add restoring to T and S in top model layer
       !

</font>
</pre>