<p><b>duda</b> 2010-05-20 17:43:36 -0600 (Thu, 20 May 2010)</p><p>BRANCH COMMIT<br>
<br>
Reverse the expected order of the Ae, Be, Ac, and Bc arrays in the<br>
CAM_INIDAT_TO_MPAS and CAM_RESTART_TO_MPAS routines, so that the <br>
vertical index runs from the surface to the model top, as it does<br>
with other arrays.<br>
<br>
M    src/driver_cam_interface/module_mpas_cam_interface.F<br>
M    src/driver_cam_interface/test_driver.F<br>
</p><hr noshade><pre><font color="gray">Modified: branches/mpas_cam_coupling/src/driver_cam_interface/module_mpas_cam_interface.F
===================================================================
--- branches/mpas_cam_coupling/src/driver_cam_interface/module_mpas_cam_interface.F        2010-05-20 21:33:46 UTC (rev 296)
+++ branches/mpas_cam_coupling/src/driver_cam_interface/module_mpas_cam_interface.F        2010-05-20 23:43:36 UTC (rev 297)
@@ -266,11 +266,11 @@
       znwv(1) = (znwc(1)-.252)*pii/2.
 
       do k=1,Plev
-         znuc(Plev+1-k)   = Ac(k) + Bc(k)
-         znwc(Plev+1-k+1) = Ae(k) + Be(k)
+         znuc(Plev+1-k)   = Ac(Plev+1-k) + Bc(Plev+1-k)
+         znwc(Plev+1-k+1) = Ae(Plev+2-k) + Be(Plev+2-k)
          znu (Plev+1-k  ) = (znuc(Plev+1-k  )*p0-Ptop)/(p0-Ptop)
          znw (Plev+1-k+1) = (znwc(Plev+1-k+1)*p0-Ptop)/(p0-Ptop)
-         bn(k+1) = Be(Plev+1-k)
+         bn(k+1) = Be(k+1)
       end do
 
       do k=1,Plev

Modified: branches/mpas_cam_coupling/src/driver_cam_interface/test_driver.F
===================================================================
--- branches/mpas_cam_coupling/src/driver_cam_interface/test_driver.F        2010-05-20 21:33:46 UTC (rev 296)
+++ branches/mpas_cam_coupling/src/driver_cam_interface/test_driver.F        2010-05-20 23:43:36 UTC (rev 297)
@@ -13,6 +13,7 @@
    real (kind=RKIND) :: Pref, Ptop
    real (kind=RKIND), dimension(26) :: Ac, Bc
    real (kind=RKIND), dimension(27) :: Ae, Be
+   real (kind=RKIND), dimension(27) :: Ae_reversed, Be_reversed
    real (kind=RKIND), dimension(:), pointer :: Psd, Phis
    real (kind=RKIND), dimension(:), pointer :: Psd_rst, Phis_rst
    real (kind=RKIND), dimension(:,:), pointer :: T, Ux, Uy, dPdt
@@ -31,31 +32,35 @@
   ! Initialize arrays that will be passed from CAM driver to MPAS
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
 
-   data Ae / 0.002194067, 0.004895209, 0.009882418, 0.018052010,  &amp;
-             0.029837240, 0.044623340, 0.061605870, 0.078512430,  &amp;
-             0.077312710, 0.075901310, 0.074240860, 0.072287440,  &amp;
-             0.069989330, 0.067285740, 0.064105090, 0.060363220,  &amp;
-             0.055961110, 0.050782250, 0.044689600, 0.037521910,  &amp;
-             0.029089490, 0.020847390, 0.013344430, 0.007084990,  &amp;
-             0.002521360, 0.000000000, 0.000000000 /
+   data Ae_reversed / 0.002194067, 0.004895209, 0.009882418, 0.018052010,  &amp;
+                      0.029837240, 0.044623340, 0.061605870, 0.078512430,  &amp;
+                      0.077312710, 0.075901310, 0.074240860, 0.072287440,  &amp;
+                      0.069989330, 0.067285740, 0.064105090, 0.060363220,  &amp;
+                      0.055961110, 0.050782250, 0.044689600, 0.037521910,  &amp;
+                      0.029089490, 0.020847390, 0.013344430, 0.007084990,  &amp;
+                      0.002521360, 0.000000000, 0.000000000 /
 
-   data Be / 0.000000000, 0.000000000, 0.000000000, 0.000000000,  &amp;
-             0.000000000, 0.000000000, 0.000000000, 0.000000000,  &amp;
-             0.015053090, 0.032762280, 0.053596220, 0.078106270,  &amp;
-             0.106941100, 0.140863700, 0.180772000, 0.227722000,  &amp;
-             0.282956200, 0.347936400, 0.424382200, 0.514316800,  &amp;
-             0.620120200, 0.723535500, 0.817676800, 0.896215300,  &amp;
-             0.953476103, 0.985112200, 1.000000000 /
+   data Be_reversed / 0.000000000, 0.000000000, 0.000000000, 0.000000000,  &amp;
+                      0.000000000, 0.000000000, 0.000000000, 0.000000000,  &amp;
+                      0.015053090, 0.032762280, 0.053596220, 0.078106270,  &amp;
+                      0.106941100, 0.140863700, 0.180772000, 0.227722000,  &amp;
+                      0.282956200, 0.347936400, 0.424382200, 0.514316800,  &amp;
+                      0.620120200, 0.723535500, 0.817676800, 0.896215300,  &amp;
+                      0.953476103, 0.985112200, 1.000000000 /
 
    phys_dt = 1800.
 
+   do k=1,27
+      Ae(k) = Ae_reversed(28-k)
+      Be(k) = Be_reversed(28-k)
+   end do
    do k=1,26
       Ac(k) = 0.5*(Ae(k) + Ae(k+1))
       Bc(k) = 0.5*(Be(k) + Be(k+1))
    end do
 
    Pref = 100000.
-   Ptop = Pref * Ae(1)
+   Ptop = Pref * Ae(27)
 
    write(filename, '(a,i4.4)') 'test_driver_input.', mpi_procID
    open(22, file=trim(filename), form='unformatted', status='old')

</font>
</pre>