<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) &
-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) &
! +zz(k ,cell1)*rtheta_pp_old(k ,cell1)) &
! +fzp(k)*(zz(k-1,cell2)*rtheta_pp_old(k-1,cell2) &
@@ -917,6 +917,14 @@
+pzm(k,cell1)*(zz(k ,cell1)*rtheta_pp_old(k ,cell1) &
-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)) &
+ *(pzm(k,cell2)*(zz(k ,cell2)*rtheta_pp_old(k ,cell2) &
+ -zz(k-1,cell2)*rtheta_pp_old(k-1,cell2)) &
+ +pzm(k,cell1)*(zz(k ,cell1)*rtheta_pp_old(k ,cell1) &
+ -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)) &
+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)) &
!! +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)) &
+ *(pzm(k,cell2)*(pp(k ,cell2)-pp(k-1,cell2)) &
+ +pzm(k,cell1)*(pp(k ,cell1)-pp(k-1,cell1)))
+
!! dpzx(nVertLevels+1) = 0.
do k=1,nVertLevels
</font>
</pre>