<p><b>laura@ucar.edu</b> 2010-06-14 10:41:02 -0600 (Mon, 14 Jun 2010)</p><p>module_physics_todynamics.F is the interface between physics and dynamics. Physics tendencies are added to the dynamics tendencies in the Runge-Kutta loop<br>
</p><hr noshade><pre><font color="gray">Added: branches/atmos_physics/src/core_hyd_phys/module_physics_todynamics.F
===================================================================
--- branches/atmos_physics/src/core_hyd_phys/module_physics_todynamics.F                                (rev 0)
+++ branches/atmos_physics/src/core_hyd_phys/module_physics_todynamics.F        2010-06-14 16:41:02 UTC (rev 354)
@@ -0,0 +1,124 @@
+!==============================================================================
+ MODULE module_physics_todynamics
+ USE grid_types
+ USE module_physics_vars
+
+ IMPLICIT NONE
+ PRIVATE
+ PUBLIC:: physics_addtend
+
+ CONTAINS

+!==============================================================================
+ SUBROUTINE physics_init_tendencies
+!==============================================================================
+
+ INTEGER:: n
+
+!==============================================================================
+
+!POTENTIAL TEMPERATURE:
+ CALL zero_tend(rthten_phy)
+
+!MIXING RATIOS AND NUMBER CONCENTRATIONS:
+ DO n = 1, num_scalars
+    CALL zero_tend(rqten_phy(:,:,:,n))
+ ENDDO
+
+ END SUBROUTINE physics_init_tendencies
+
+!==============================================================================
+ SUBROUTINE physics_addtend(tend,vars,grid)
+!==============================================================================
+
+!INPUT VARIABLES:
+!----------------
+ TYPE(grid_meta),INTENT(in):: grid
+ TYPE(grid_state),INTENT(in):: vars

+!INOUT VARIABLES:
+!----------------
+ TYPE(grid_state),INTENT(inout):: tend
+
+!LOCAL VARIABLES:
+!----------------
+ INTEGER:: iCell,nCellsSolve,nVertLevels
+ INTEGER:: i,itf,iscalar,j,jtf,k,ktf
+ REAL(KIND=RKIND),DIMENSION(:,:),POINTER:: h,h_diabatic
+ REAL(KIND=RKIND),DIMENSION(:,:),POINTER:: rthcuten,rqvcuten,rqccuten, &amp;
+                                           rqrcuten,rqicuten,rqscuten

+ REAL(KIND=RKIND),DIMENSION(:,:),POINTER  :: tend_theta
+ REAL(KIND=RKIND),DIMENSION(:,:,:),POINTER:: tend_scalars
+
+!==============================================================================
+ write(6,*)
+ write(6,*) '--- enter subroutine PHYSICS_ADD_TEND:'

+ nCellsSolve = grid%nCellsSolve
+ nVertLevels = grid%nVertLevels
+
+ h =&gt; vars % h % array
+ h_diabatic =&gt; vars % h_diabatic % array
+ rthcuten   =&gt; vars % rthcuten % array
+ rqvcuten   =&gt; vars % rqvcuten % array
+ rqccuten   =&gt; vars % rqccuten % array
+ rqrcuten   =&gt; vars % rqrcuten % array
+ rqicuten   =&gt; vars % rqicuten % array
+ rqscuten   =&gt; vars % rqscuten % array
+
+ tend_theta   =&gt; tend % theta % array
+ tend_scalars =&gt; tend % scalars % array
+
+!INITIALIZATION:
+ itf = ite
+ jtf = jte
+ ktf = kte-1
+
+ tend_theta(:,:)     = 0.0
+ tend_scalars(:,:,:) = 0.0
+
+!ADD COUPLED POTENTIAL TEMPERATURE TENDENCY DUE TO CLOUD MICROPHYSICS ON
+!THE GEODESIC GRID:
+ DO k = 1, nVertLevels
+ DO iCell = 1, nCellsSolve
+    tend_theta(k,i)=tend_theta(k,i)+h_diabatic(k,i)*h(k,i)
+ ENDDO
+ ENDDO
+
+!ADD COUPLED TENDENCIES DUE TO CONVECTION ON THE GEODESIC GRID:
+ DO k = 1, nVertLevels
+ DO iCell = 1, nCellsSolve
+    tend_theta(k,i)=tend_theta(k,i)+rthcuten(k,i)*h(k,i)
+    tend_scalars(index_qv,k,i)=tend_scalars(index_qv,k,i)+rqvcuten(k,i)*h(k,i)
+    tend_scalars(index_qc,k,i)=tend_scalars(index_qc,k,i)+rqccuten(k,i)*h(k,i)
+    tend_scalars(index_qr,k,i)=tend_scalars(index_qr,k,i)+rqrcuten(k,i)*h(k,i)
+    tend_scalars(index_qi,k,i)=tend_scalars(index_qi,k,i)+rqicuten(k,i)*h(k,i)
+    tend_scalars(index_qs,k,i)=tend_scalars(index_qs,k,i)+rqscuten(k,i)*h(k,i)    
+ ENDDO
+ ENDDO
+
+!FORMATS:
+ 201 format(i3,1x,i6,i3,8(1x,e15.8))
+
+ END SUBROUTINE physics_addtend
+
+!==============================================================================
+ SUBROUTINE zero_tend(tendency)
+!==============================================================================
+ REAL(KIND=RKIND),INTENT(out),DIMENSION(ims:ime,kms:kme,jms:jme):: tendency
+ INTEGER:: i,k,j
+
+ DO j = jms,jme
+ DO k = kms,kme
+ DO i = ims,ime
+    tendency(i,k,j) = 0.
+ ENDDO
+ ENDDO
+ ENDDO
+
+ END SUBROUTINE zero_tend
+
+!==============================================================================
+ END MODULE module_physics_todynamics
+!==============================================================================

</font>
</pre>