<p><b>duda</b> 2010-05-04 17:21:47 -0600 (Tue, 04 May 2010)</p><p>BRANCH COMMIT<br>
<br>
Store the reference pressure p0 from calls to CAM_INIDAT_TO_MPAS <br>
and CAM_RESTART_TO_MPAS for later use in MPAS_TO_CAM and CAM_TO_MPAS <br>
rather than using a hard-wired value 100000 Pa.<br>
<br>
M    module_mpas_cam_interface.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-04 22:56:30 UTC (rev 245)
+++ branches/mpas_cam_coupling/src/driver_cam_interface/module_mpas_cam_interface.F        2010-05-04 23:21:47 UTC (rev 246)
@@ -10,7 +10,7 @@
 
    type (dm_info), pointer :: dminfo
    type (domain_type), pointer :: domain
-   real (kind=RKIND) :: dt, dt_physics
+   real (kind=RKIND) :: dt, dt_physics, p0
    integer :: itimestep
 
 
@@ -175,7 +175,6 @@
       real (kind=RKIND), dimension(Numcols,Plev,Pcnst), intent(in) :: Tracer
 
       integer :: iCell, iEdge, iScalar, k, i
-      real (kind=RKIND) :: p0
       real (kind=RKIND), dimension(Plev+1) :: znu, znw, znwc, znwv
       real (kind=RKIND), dimension(Plev+1) :: znuc, znuv, bn, divh, dpn
       type (block_type), pointer :: block
@@ -669,7 +668,7 @@
          Psd(iCell) = block % time_levs(2) % state % surface_pressure % array(iCell)
          Phis(iCell) = block % time_levs(2) % state % geopotential % array(1,iCell)
          do k=1,block % mesh % nVertLevels
-            T(iCell,k) = theta(k,iCell) * (0.5*(pressure(k,iCell)+pressure(k+1,iCell)) / 100000.0) ** (rgas/cp)
+            T(iCell,k) = theta(k,iCell) * (0.5*(pressure(k,iCell)+pressure(k+1,iCell)) / p0) ** (rgas/cp)
             Omega(iCell,k) = 0.5*(ww(k,iCell) + ww(k+1,iCell))
             !
             ! NOTE: Eventually, we need to ensure that the moisture variables we return to CAM
@@ -730,6 +729,7 @@
       write(0,*) 'Called CAM_TO_MPAS'
 
       block =&gt; domain % blocklist
+
       nEdgesOnCell =&gt; block % mesh % nEdgesOnCell % array
       edgesOnCell =&gt; block % mesh % edgesOnCell % array
       east =&gt; block % mesh % east % array
@@ -798,7 +798,7 @@
 
       do iCell=1,block % mesh % nCellsSolve
          do k=1,block % mesh % nVertLevels
-            theta_tend(k,iCell) = T_tend(iCell,k) * (100000.0 / (0.5*(pressure(k,iCell)+pressure(k+1,iCell)))) ** (rgas/cp)
+            theta_tend(k,iCell) = T_tend(iCell,k) * (p0 / (0.5*(pressure(k,iCell)+pressure(k+1,iCell)))) ** (rgas/cp)
 
             !
             ! NOTE: Once we begin to use more than just qv in MPAS, we need to make sure to

</font>
</pre>