<p><b>duda</b> 2012-07-11 15:40:59 -0600 (Wed, 11 Jul 2012)</p><p>BRANCH COMMIT<br>
<br>
Apply fixes from Sang-Hun to errors in curvature terms in the non-hydrostatic solver.<br>
<br>
<br>
M    src/core_nhyd_atmos/mpas_atm_time_integration.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/dcmip/src/core_nhyd_atmos/mpas_atm_time_integration.F
===================================================================
--- branches/dcmip/src/core_nhyd_atmos/mpas_atm_time_integration.F        2012-07-11 20:30:57 UTC (rev 2014)
+++ branches/dcmip/src/core_nhyd_atmos/mpas_atm_time_integration.F        2012-07-11 21:40:59 UTC (rev 2015)
@@ -1860,8 +1860,8 @@
 
       !SHP-curvature
       logical, parameter :: curvature = .true.
-      real (kind=RKIND), parameter :: omega_e = 7.29212e-05
-      real (kind=RKIND) :: r_earth
+      !real (kind=RKIND), parameter :: omega_e = 7.29212e-05*100.
+      !real (kind=RKIND) :: r_earth
       real (kind=RKIND), dimension(:,:), pointer :: ur_cell, vr_cell
 
       real (kind=RKIND), parameter :: c_s = 0.125
@@ -1886,7 +1886,7 @@
 !-----------
 
       !SHP-curvature
-      r_earth = a
+      !r_earth = a
       ur_cell =&gt; diag % uReconstructZonal % array
       vr_cell =&gt; diag % uReconstructMeridional % array
 
@@ -2147,10 +2147,19 @@
                tend_u(k,iEdge) = tend_u(k,iEdge) + rho_edge(k,iEdge)* (q(k) - (ke(k,cell2) - ke(k,cell1))       &amp;
                                                                     / dcEdge(iEdge))                            &amp;
                                                 - u(k,iEdge)*0.5*(divergence_ru(k,cell1)+divergence_ru(k,cell2)) 
+               !SHP-curvature
+               if (curvature) then
                tend_u(k,iEdge) = tend_u(k,iEdge) &amp;
-                                - 2.*omega_e*cos(grid % angleEdge % array(iEdge))*cos(grid % latEdge % array(iEdge)) &amp;
-                                  *.25*(rw(k,cell1)+rw(k+1,cell1)+rw(k,cell2)+rw(k+1,cell2))                         &amp;
-                                - u(k,iEdge)*.25*(rw(k+1,cell1)+rw(k,cell1)+rw(k,cell2)+rw(k+1,cell2))/r_earth
+                                - 2.*omega*cos(grid % angleEdge % array(iEdge))*cos(grid % latEdge % array(iEdge))  &amp;
+                                  *rho_edge(k,iEdge)*.25*(w(k,cell1)+w(k+1,cell1)+w(k,cell2)+w(k+1,cell2))          &amp; 
+                                - u(k,iEdge)*.25*(w(k+1,cell1)+w(k,cell1)+w(k,cell2)+w(k+1,cell2))                  &amp;
+                                  *rho_edge(k,iEdge)/a
+               !old-err.
+               !tend_u(k,iEdge) = tend_u(k,iEdge) &amp;
+               !                 - 2.*omega_e*cos(grid % angleEdge % array(iEdge))*cos(grid % latEdge % array(iEdge))  &amp;
+               !                   *.25*(rw(k,cell1)+rw(k+1,cell1)+rw(k,cell2)+rw(k+1,cell2))                          &amp;
+               !                 - u(k,iEdge)*.25*(rw(k+1,cell1)+rw(k,cell1)+rw(k,cell2)+rw(k+1,cell2))/r_earth
+               end if
             end do
          end do
 
@@ -2501,12 +2510,19 @@
 
          do iCell = 1, grid % nCellsSolve
             do k=2,nVertLevels
-               tend_w(k,iCell) = tend_w(k,iCell) &amp;
-                                + rho_zz(k,iCell)*( (fzm(k)*ur_cell(k,iCell)+fzp(k)*ur_cell(k-1,iCell))**2.             &amp;
-                                                +(fzm(k)*vr_cell(k,iCell)+fzp(k)*vr_cell(k-1,iCell))**2. )/r_earth   &amp;
-                                + 2.*omega_e*cos(grid % latCell % array(iCell))*rho_zz(k,iCell)   &amp;
-                                    *(fzm(k)*ur_cell(k,iCell)+fzp(k)*ur_cell(k-1,iCell))
+               tend_w(k,iCell) = tend_w(k,iCell) + (rho_zz(k,iCell)*fzm(k)+rho_zz(k-1,iCell)*fzp(k))*          &amp;
+                                         ( (fzm(k)*ur_cell(k,iCell)+fzp(k)*ur_cell(k-1,iCell))**2.             &amp;
+                                          +(fzm(k)*vr_cell(k,iCell)+fzp(k)*vr_cell(k-1,iCell))**2. )/a         &amp;
+                                   + 2.*omega*cos(grid % latCell % array(iCell))                               &amp;
+                                          *(fzm(k)*ur_cell(k,iCell)+fzp(k)*ur_cell(k-1,iCell))                 &amp;
+                                          *(rho_zz(k,iCell)*fzm(k)+rho_zz(k-1,iCell)*fzp(k))
 
+               !old_err.
+               !tend_w(k,iCell) = tend_w(k,iCell) &amp;
+               !                 + rho_zz(k,iCell)*( (fzm(k)*ur_cell(k,iCell)+fzp(k)*ur_cell(k-1,iCell))**2.          &amp;
+               !                                 +(fzm(k)*vr_cell(k,iCell)+fzp(k)*vr_cell(k-1,iCell))**2. )/r_earth   &amp;
+               !                 + 2.*omega_e*cos(grid % latCell % array(iCell))*rho_zz(k,iCell)      &amp;
+               !                     *(fzm(k)*ur_cell(k,iCell)+fzp(k)*ur_cell(k-1,iCell))
             end do
          end do
 

</font>
</pre>