<p><b>duda</b> 2010-10-20 12:03:40 -0600 (Wed, 20 Oct 2010)</p><p>BRANCH COMMIT<br>
<br>
More cleanup in non-hydrostatic code:<br>
<br>
1) Update ncl scripts to read theta_base and pressure_base<br>
   as time-varying fields<br>
<br>
2) Move the pressure field to diag (and accordingly reducing<br>
   it to a single time level)<br>
<br>
3) Add computation of rho_p, rtheta_base, and rtheta_p to<br>
   init_coupled_diagnostics, which allows us to remove these<br>
   variables from input files<br>
<br>
4) Further cleanup in the non-hydrostatic Registry regarding<br>
   which field come from input files and which go to <br>
   restart files <br>
<br>
<br>
M    graphics/ncl/cells_nhyd_sphere.ncl<br>
M    graphics/ncl/cells_nhyd_sph1.ncl<br>
M    src/core_nhyd_atmos/module_test_cases.F<br>
M    src/core_nhyd_atmos/Registry<br>
M    src/core_nhyd_atmos/module_time_integration.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_nonhydrostatic/graphics/ncl/cells_nhyd_sph1.ncl
===================================================================
--- branches/atmos_nonhydrostatic/graphics/ncl/cells_nhyd_sph1.ncl        2010-10-20 14:13:33 UTC (rev 572)
+++ branches/atmos_nonhydrostatic/graphics/ncl/cells_nhyd_sph1.ncl        2010-10-20 18:03:40 UTC (rev 573)
@@ -123,7 +123,7 @@
 ;     h = (f-&gt;surface_pressure(t,:) + 219.4)/100.
 ;     h = f-&gt;geopotential(t,:,18)
 ;     h = f-&gt;theta(t,:,25)-f-&gt;theta(0,:,25)
-;     h = f-&gt;theta(t,:,0)-f-&gt;theta_base(:,0)
+;     h = f-&gt;theta(t,:,0)-f-&gt;theta_base(t,:,0)
 ;     h = f-&gt;surface_pressure(t,:)/100.
 ;     h = (f-&gt;surface_pressure(t,:)-f-&gt;surface_pressure(0,:))/100.
 ;     h = f-&gt;pressure(t,:,0)/100.
@@ -137,9 +137,9 @@
 ;      cf2 = 0.
 ;      cf3 = 0.
 
-      pfirst = f-&gt;pressure(t,:,0)+f-&gt;pressure_base(:,0)
-      psecond = f-&gt;pressure(t,:,1)+f-&gt;pressure_base(:,1)
-      pthird = f-&gt;pressure(t,:,2)+f-&gt;pressure_base(:,2)
+      pfirst = f-&gt;pressure(t,:,0)+f-&gt;pressure_base(t,:,0)
+      psecond = f-&gt;pressure(t,:,1)+f-&gt;pressure_base(t,:,1)
+      pthird = f-&gt;pressure(t,:,2)+f-&gt;pressure_base(t,:,2)
 ;      fld = (cf1*pfirst + cf2*psecond + cf3*pthird)/100.
 
       rhofirst = f-&gt;rho(t,:,0)
@@ -156,7 +156,7 @@
 ;                            -.25*(rr(2,i)+rb(2,i))*(1.+qv(2,i)))
 
 
-;      fld = f-&gt;pressure(t,:,25)+f-&gt;pressure_base(:,25)
+;      fld = f-&gt;pressure(t,:,25)+f-&gt;pressure_base(t,:,25)
 
 ;       fld = f-&gt;kdiff(t,:,0)
 

Modified: branches/atmos_nonhydrostatic/graphics/ncl/cells_nhyd_sphere.ncl
===================================================================
--- branches/atmos_nonhydrostatic/graphics/ncl/cells_nhyd_sphere.ncl        2010-10-20 14:13:33 UTC (rev 572)
+++ branches/atmos_nonhydrostatic/graphics/ncl/cells_nhyd_sphere.ncl        2010-10-20 18:03:40 UTC (rev 573)
@@ -130,7 +130,7 @@
 ;     h = (f-&gt;surface_pressure(t,:) + 219.4)/100.
 ;     h = f-&gt;geopotential(t,:,18)
 ;     h = f-&gt;theta(t,:,25)-f-&gt;theta(0,:,25)
-;     h = f-&gt;theta(t,:,0)-f-&gt;theta_base(:,0)
+;     h = f-&gt;theta(t,:,0)-f-&gt;theta_base(t,:,0)
 ;     h = f-&gt;surface_pressure(t,:)/100.
 ;     h = (f-&gt;surface_pressure(t,:)-f-&gt;surface_pressure(0,:))/100.
 ;     h = f-&gt;pressure(t,:,0)/100.
@@ -144,9 +144,9 @@
 ;      cf2 = 0.
 ;      cf3 = 0.
 
-      pfirst = f-&gt;pressure(t,:,0)+f-&gt;pressure_base(:,0)
-      psecond = f-&gt;pressure(t,:,1)+f-&gt;pressure_base(:,1)
-      pthird = f-&gt;pressure(t,:,2)+f-&gt;pressure_base(:,2)
+      pfirst = f-&gt;pressure(t,:,0)+f-&gt;pressure_base(t,:,0)
+      psecond = f-&gt;pressure(t,:,1)+f-&gt;pressure_base(t,:,1)
+      pthird = f-&gt;pressure(t,:,2)+f-&gt;pressure_base(t,:,2)
       fld = (cf1*pfirst + cf2*psecond + cf3*pthird)/100.
 
       rhofirst = f-&gt;rho(t,:,0)
@@ -163,7 +163,7 @@
 ;                            -.25*(rr(2,i)+rb(2,i))*(1.+qv(2,i)))
 
 
-;      fld = f-&gt;pressure(t,:,25)+f-&gt;pressure_base(:,25)
+;      fld = f-&gt;pressure(t,:,25)+f-&gt;pressure_base(t,:,25)
 
 ;      zg = f-&gt;zgrid
 ;      csizes = dimsizes(pfirst)

Modified: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Registry
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Registry        2010-10-20 14:13:33 UTC (rev 572)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/Registry        2010-10-20 18:03:40 UTC (rev 573)
@@ -168,7 +168,7 @@
 var persistent real    rt_diabatic_tend ( nVertLevels nCells Time ) 1 - rt_diabatic_tend tend - -
 
 # state variables diagnosed from prognostic state
-var persistent real    pressure ( nVertLevels nCells Time ) 2 iro pressure state - -
+var persistent real    pressure ( nVertLevels nCells Time ) 1 iro pressure diag - -
 
 var persistent real    u_init ( nVertLevels ) 0 iro u_init mesh - -
 var persistent real    t_init ( nVertLevels nCells ) 0 iro t_init mesh - -
@@ -198,7 +198,7 @@
 
 var persistent real    exner ( nVertLevels nCells Time ) 1 iro exner diag - -
 var persistent real    exner_base ( nVertLevels nCells Time ) 1 iro exner_base diag - -
-var persistent real    rtheta_base ( nVertLevels nCells Time ) 1 iro rtheta_base diag - -
+var persistent real    rtheta_base ( nVertLevels nCells Time ) 1 r rtheta_base diag - -
 var persistent real    pressure_base ( nVertLevels nCells Time ) 1 iro pressure_base diag - -
 var persistent real    rho_base ( nVertLevels nCells Time ) 1 iro rho_base diag - -
 var persistent real    theta_base ( nVertLevels nCells Time ) 1 iro theta_base diag - -
@@ -207,7 +207,7 @@
 var persistent real    ruAvg ( nVertLevels nEdges Time ) 1 - ruAvg diag - -
 var persistent real    wwAvg ( nVertLevelsP1 nCells Time ) 1 - wwAvg diag - -
 var persistent real    cqu  ( nVertLevels nEdges Time ) 1 - cqu diag - -
-var persistent real    cqw  ( nVertLevels nCells Time ) 1 r cqw diag - -
+var persistent real    cqw  ( nVertLevels nCells Time ) 1 - cqw diag - -
 
 #  coupled variables needed by the solver, but not output...
 
@@ -220,13 +220,13 @@
 var persistent real    rw_p ( nVertLevelsP1 nCells Time ) 1 r rw_p diag - -
 var persistent real    rw_save ( nVertLevelsP1 nCells Time ) 1 r rw_save diag - -
 
-var persistent real    rtheta_p ( nVertLevels nCells Time ) 1 iro rtheta_p diag - -
-var persistent real    rtheta_pp ( nVertLevels nCells Time ) 1 r rtheta_pp diag - -
+var persistent real    rtheta_p ( nVertLevels nCells Time ) 1 r rtheta_p diag - -
+var persistent real    rtheta_pp ( nVertLevels nCells Time ) 1 - rtheta_pp diag - -
 var persistent real    rtheta_p_save ( nVertLevels nCells Time ) 1 r rtheta_p_save diag - -
-var persistent real    rtheta_pp_old ( nVertLevels nCells Time ) 1 r rtheta_pp_old diag - -
+var persistent real    rtheta_pp_old ( nVertLevels nCells Time ) 1 - rtheta_pp_old diag - -
 
-var persistent real    rho_p ( nVertLevels nCells Time ) 1 iro rho_p diag - -
-var persistent real    rho_pp ( nVertLevels nCells Time ) 1 r rho_pp diag - -
+var persistent real    rho_p ( nVertLevels nCells Time ) 1 r rho_p diag - -
+var persistent real    rho_pp ( nVertLevels nCells Time ) 1 - rho_pp diag - -
 var persistent real    rho_p_save ( nVertLevels nCells Time ) 1 r rho_p_save diag - -
 
 var persistent real    qv_old ( nVertLevels nCells Time ) 1 r rqv diag scalars_old moist_old

Modified: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_test_cases.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_test_cases.F        2010-10-20 14:13:33 UTC (rev 572)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_test_cases.F        2010-10-20 18:03:40 UTC (rev 573)
@@ -217,7 +217,7 @@
       p =&gt; diag % exner % array
 
       ppb =&gt; diag % pressure_base % array
-      pp =&gt; state % pressure % array
+      pp  =&gt; diag % pressure % array
 
       rho =&gt; state % rho % array
       rr =&gt; diag % rho_p % array
@@ -908,7 +908,7 @@
 
       rho =&gt; state % rho % array
 
-      pp =&gt; state % pressure % array
+      pp =&gt; diag % pressure % array
       rr =&gt; diag % rho_p % array
       t =&gt; state % theta % array      
       rt =&gt; diag % rtheta_p % array
@@ -1451,7 +1451,7 @@
 
       rho =&gt; state % rho % array
 
-      pp =&gt; state % pressure % array
+      pp =&gt; diag % pressure % array
       rr =&gt; diag % rho_p % array
       t =&gt; state % theta % array      
       rt =&gt; diag % rtheta_p % array

Modified: branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_time_integration.F
===================================================================
--- branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_time_integration.F        2010-10-20 14:13:33 UTC (rev 572)
+++ branches/atmos_nonhydrostatic/src/core_nhyd_atmos/module_time_integration.F        2010-10-20 18:03:40 UTC (rev 573)
@@ -109,7 +109,7 @@
                                           block % state % time_levs(1) % state % num_scalars, block % mesh % nVertLevels, block % mesh % nCells, &amp;
                                           block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
 ! pressure
-         call dmpar_exch_halo_field2dReal(domain % dminfo, block % state % time_levs(1) % state % pressure % array(:,:), &amp;
+         call dmpar_exch_halo_field2dReal(domain % dminfo, block % diag % pressure % array(:,:), &amp;
                                           block % mesh % nVertLevels, block % mesh % nCells, &amp;
                                           block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
 ! vorticity
@@ -331,7 +331,7 @@
             call dmpar_exch_halo_field2dReal(domain % dminfo, block % state % time_levs(2) % state % theta % array(:,:), &amp;
                                              block % mesh % nVertLevels, block % mesh % nCells, &amp;
                                              block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
-            call dmpar_exch_halo_field2dReal(domain % dminfo, block % state % time_levs(2) % state % pressure % array(:,:), &amp;
+            call dmpar_exch_halo_field2dReal(domain % dminfo, block % diag % pressure % array(:,:), &amp;
                                              block % mesh % nVertLevels, block % mesh % nCells, &amp;
                                              block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
             call dmpar_exch_halo_field2dReal(domain % dminfo, block % state % time_levs(2) % state % rho % array(:,:), &amp;
@@ -396,7 +396,7 @@
          call dmpar_exch_halo_field2dReal(domain % dminfo, block % state % time_levs(2) % state % theta % array(:,:), &amp;
                                           block % mesh % nVertLevels, block % mesh % nCells, &amp;
                                           block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
-         call dmpar_exch_halo_field2dReal(domain % dminfo, block % state % time_levs(2) % state % pressure % array(:,:), &amp;
+         call dmpar_exch_halo_field2dReal(domain % dminfo, block % diag % pressure % array(:,:), &amp;
                                           block % mesh % nVertLevels, block % mesh % nCells, &amp;
                                           block % parinfo % cellsToSend, block % parinfo % cellsToRecv)
          call dmpar_exch_halo_field2dReal(domain % dminfo, block % tend % rt_diabatic_tend % array(:,:), &amp;
@@ -468,7 +468,6 @@
      s_old % w % array = s_new % w % array
      s_old % theta % array = s_new % theta % array
      s_old % rho % array = s_new % rho % array
-     s_old % pressure % array = s_new % pressure % array
      s_old % scalars % array = s_new % scalars % array
 
    end subroutine rk_integration_setup
@@ -977,7 +976,7 @@
        exner =&gt; diag % exner % array
        exner_base =&gt; diag % exner_base % array
 
-       pressure_p =&gt; s % pressure % array
+       pressure_p =&gt; diag % pressure % array
 
        zz =&gt; grid % zz % array
        zb =&gt; grid % zb % array
@@ -1934,7 +1933,7 @@
       vorticity    =&gt; diag % vorticity % array
       ke           =&gt; diag % ke % array
       pv_edge      =&gt; diag % pv_edge % array
-      pp           =&gt; s % pressure % array
+      pp           =&gt; diag % pressure % array
       pressure_b   =&gt; diag % pressure_base % array
       h_divergence =&gt; diag % h_divergence % array
 
@@ -3231,22 +3230,41 @@
 
    subroutine init_coupled_diagnostics( state, diag, grid )
 
-   implicit none
+      implicit none
    
-   type (state_type), intent(inout) :: state
-   type (diag_type), intent(inout) :: diag
-   type (mesh_type), intent(inout) :: grid
+      type (state_type), intent(inout) :: state
+      type (diag_type), intent(inout) :: diag
+      type (mesh_type), intent(inout) :: grid
 
-   integer :: k,iEdge,i,iCell1,iCell2
+      integer :: k,iCell,iEdge,i,iCell1,iCell2
 
-      do iEdge = 1, grid%nEdges
-        iCell1 = grid % cellsOnEdge % array(1,iEdge)
-        iCell2 = grid % cellsOnEdge % array(2,iEdge)
-        do k=1,grid % nVertLevels
-          diag % ru % array(k,iEdge) = 0.5 * state % u % array(k,iEdge)*(state % rho % array(k,iCell1)+state % rho % array(k,iCell2))
-        enddo
-      enddo
+      do iEdge = 1, grid % nEdges
+         iCell1 = grid % cellsOnEdge % array(1,iEdge)
+         iCell2 = grid % cellsOnEdge % array(2,iEdge)
+         do k=1,grid % nVertLevels
+            diag % ru % array(k,iEdge) = 0.5 * state % u % array(k,iEdge) * (state % rho % array(k,iCell1) + state % rho % array(k,iCell2))
+         end do
+      end do
 
+      do iCell = 1, grid % nCells
+         do k=1,grid % nVertLevels
+            diag % rho_p % array(k,iCell) = state % rho % array(k,iCell) - diag % rho_base % array(k,iCell)
+         end do
+      end do
+
+      do iCell = 1, grid % nCells
+         do k=1,grid % nVertLevels
+            diag % rtheta_base % array(k,iCell) = diag % theta_base % array(k,iCell) * diag % rho_base % array(k,iCell)
+         end do
+      end do
+
+      do iCell = 1, grid % nCells
+         do k=1,grid % nVertLevels
+            diag % rtheta_p % array(k,iCell) = state % theta % array(k,iCell) * diag % rho_p % array(k,iCell)  &amp;
+                                             + diag % rho_base % array(k,iCell)   * (state % theta % array(k,iCell) - diag % theta_base % array(k,iCell))
+         end do
+      end do
+
    end subroutine init_coupled_diagnostics
 
 ! ------------------------
@@ -3309,7 +3327,7 @@
                                      diag % rtheta_p % array(k,iCell)       &amp;
                                    + diag % rtheta_base % array(k,iCell) ) )**rcv
    
-          state_new % pressure % array(k,iCell) =                                               &amp;
+          diag % pressure % array(k,iCell) =                                                &amp;
                grid % zz % array(k,iCell) * rgas * (                                        &amp;
                  diag % exner % array(k,iCell)*diag % rtheta_p % array(k,iCell)             &amp;
                                    +diag % rtheta_base % array(k,iCell) *                   &amp;

</font>
</pre>