<p><b>duda</b> 2010-08-05 13:13:11 -0600 (Thu, 05 Aug 2010)</p><p>BRANCH COMMIT<br>
<br>
Fix computation of full pressure and inverse dry density in CAM_INIDAT_TO_MPAS().<br>
<br>
M src/driver_cam_interface/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-08-03 18:45:57 UTC (rev 460)
+++ branches/mpas_cam_coupling/src/driver_cam_interface/module_mpas_cam_interface.F        2010-08-05 19:13:11 UTC (rev 461)
@@ -130,6 +130,7 @@
real (kind=RKIND), dimension(Numcols,Plev,Pcnst), intent(in) :: Tracer
integer :: iCell, iEdge, iScalar, k, i
+ real (kind=RKIND) :: qtot
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
@@ -283,12 +284,14 @@
pressure(Plev+1,iCell) = Ptop
do k=Plev,1,-1
- pressure(k,iCell) = pressure(k+1,iCell)-dnw(k)*h(k,iCell)
+ qtot = sum(Tracer(iCell,k,1:Pcnst))
+ pressure(k,iCell) = pressure(k+1,iCell)-dnw(k)*h(k,iCell)*(1.0 + qtot)
end do
do k=1,Plev
t_pot(k,iCell) = Theta(iCell,k)
- alpha(k,iCell) = (rgas/p0) * Theta(iCell,k) * (0.5*(pressure(k,iCell)+pressure(k+1,iCell))/p0)**cvpm
+ alpha(k,iCell) = (rgas/p0) * Theta(iCell,k) * (1.0 + 1.61*Tracer(iCell,k,1)) & ! NB: Assume that first Tracer is qv
+ * (0.5*(pressure(k,iCell)+pressure(k+1,iCell))/p0)**cvpm
end do
geopotential(1,iCell) = Phis(iCell)
</font>
</pre>