<p><b>duda</b> 2012-02-07 16:52:32 -0700 (Tue, 07 Feb 2012)</p><p>BRANCH COMMIT<br>
<br>
Fix out-of-bounds array reference in horizontal pressure gradient code.<br>
<br>
<br>
M    src/core_nhyd_atmos/mpas_atm_time_integration.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_nhyd_atmos/mpas_atm_time_integration.F
===================================================================
--- branches/atmos_physics/src/core_nhyd_atmos/mpas_atm_time_integration.F        2012-02-07 22:44:41 UTC (rev 1478)
+++ branches/atmos_physics/src/core_nhyd_atmos/mpas_atm_time_integration.F        2012-02-07 23:52:32 UTC (rev 1479)
@@ -902,7 +902,7 @@
                           +pzp(k,cell1)*(zz(k+2,cell1)*rtheta_pp_old(k+2,cell1)        &amp;
                                         -zz(k  ,cell1)*rtheta_pp_old(k  ,cell1)))
 
-               do k=2,grid % nVertLevels
+               do k=2,grid % nVertLevels-1
 !                  dpzx(k)=.5*zx(k,iEdge)*(fzm(k)*(zz(k  ,cell2)*rtheta_pp_old(k  ,cell2)   &amp;
 !                                                 +zz(k  ,cell1)*rtheta_pp_old(k  ,cell1))  &amp;
 !                                         +fzp(k)*(zz(k-1,cell2)*rtheta_pp_old(k-1,cell2)   &amp;
@@ -917,6 +917,14 @@
                                     +pzm(k,cell1)*(zz(k  ,cell1)*rtheta_pp_old(k  ,cell1)     &amp;
                                                   -zz(k-1,cell1)*rtheta_pp_old(k-1,cell1)))
                end do
+
+               k=grid % nVertLevels
+               dpzx(k) = .25*(zx(k,iEdge)+zx(k+1,iEdge))                                   &amp;
+                                *(pzm(k,cell2)*(zz(k  ,cell2)*rtheta_pp_old(k  ,cell2)     &amp;
+                                               -zz(k-1,cell2)*rtheta_pp_old(k-1,cell2))    &amp;
+                                 +pzm(k,cell1)*(zz(k  ,cell1)*rtheta_pp_old(k  ,cell1)     &amp;
+                                               -zz(k-1,cell1)*rtheta_pp_old(k-1,cell1)))
+
 !               dpzx(nVertLevels + 1) = 0.
 
                do k=1,nVertLevels
@@ -2106,7 +2114,7 @@
                              +pzp(k,cell2)*(pp(k+2,cell2)-pp(k,cell2))    &amp;
                              +pzp(k,cell1)*(pp(k+2,cell1)-pp(k,cell1))) 
   
-               do k = 2, nVertLevels
+               do k = 2, nVertLevels-1
 
 !!              dpzx(k) = .5*zx(k,iEdge)*(fzm(k)*(pp(k  ,cell2)+pp(k  ,cell1))  &amp;
 !!                                   +fzp(k)*(pp(k-1,cell2)+pp(k-1,cell1)))
@@ -2119,6 +2127,11 @@
 
                end do
 
+               k = nVertLevels
+               dpzx(k) = .25*(zx(k,iEdge)+zx(k+1,iEdge))                  &amp;
+                          *(pzm(k,cell2)*(pp(k  ,cell2)-pp(k-1,cell2))    &amp;
+                           +pzm(k,cell1)*(pp(k  ,cell1)-pp(k-1,cell1)))   
+
 !!               dpzx(nVertLevels+1) = 0.
 
                do k=1,nVertLevels

</font>
</pre>