<p><b>laura@ucar.edu</b> 2010-11-12 10:34:20 -0700 (Fri, 12 Nov 2010)</p><p>cleanup and consistency with revised Registry for hydrostatic and non-hydrostatic cores<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_physics/module_driver_convection_deep.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_convection_deep.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_driver_convection_deep.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -352,8 +352,10 @@
  enddo
 
  do i = its,ite
-    diag_physics % rainc  % array(i) = diag_physics % rainc  % array(i) &amp;
-                                     + diag_physics % raincv % array(i)
+    diag_physics % rainc % array(i) = diag_physics % rainc  % array(i) &amp;
+                                    + diag_physics % raincv % array(i)
+    if(diag_physics % rainc % array(i) .gt. 0.) &amp;
+       write(0,201) i,diag_physics%raincv%array(i),diag_physics%raincv%array(i)
  enddo
  
  convection_select: select case(conv_deep_scheme)
@@ -379,7 +381,7 @@
  end select convection_select
 
 !formats:
- 201 format(' after convection           :',i6,10(1x,e15.8))
+ 201 format('--- rainc:',i6,10(1x,e15.8))
 
  end subroutine convection_to_MPAS
 

Modified: branches/atmos_physics/src/core_physics/module_driver_microphysics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -116,25 +116,20 @@
  end subroutine microphysics_init
 
 !=============================================================================================
-#ifdef non_hydrostatic_core
- subroutine microphysics_driver(state,diag,tend,grid,itimestep)
-#elif hydrostatic_core
- subroutine microphysics_driver(state,grid,itimestep)
-#endif
+ subroutine microphysics_driver(state,diag,diag_physics,tend,mesh,itimestep)
 !=============================================================================================
 
 !input arguments:
 !----------------
- type(mesh_type),intent(in):: grid
+ type(mesh_type),intent(in):: mesh
  integer,intent(in):: itimestep
     
 !inout arguments:
 !----------------
  type(state_type),intent(inout):: state
-#ifdef non_hydrostatic_core
  type(diag_type),intent(inout):: diag
+ type(diag_physics_type),intent(inout):: diag_physics
  type(tend_type),intent(inout):: tend
-#endif
 
 !local variables and arrays:
 !---------------------------
@@ -162,18 +157,14 @@
 
 !... initialization of precipitation related arrays:
 
- call precip_from_MPAS(state,grid)
+ call precip_from_MPAS(diag_physics,mesh)
 
 !... initialization of soundings for non-hydrostatic or hydrostatic dynamical cores.
 
 #ifdef non_hydrostatic_core
-
- call microphysics_from_MPAS(state,diag,grid)
-
+ call microphysics_from_MPAS(state,diag,mesh)
 #elif hydrostatic_core
-
  call microphysics_from_MPAS(state)
-
 #endif
 
 !---------------------------------------------------------------------------------------------
@@ -223,19 +214,15 @@
 
 !... copy updated precipitation from the wrf-physics grid back to the geodesic-dynamics grid:
 
- call precip_to_MPAS(state)
+ call precip_to_MPAS(diag_physics)
 
 !... copy updated cloud microphysics variables from the wrf-physics grid back to the geodesic-
 !    dynamics grid:
 
 #ifdef non_hydrostatic_core
-
- call microphysics_to_MPAS(state,diag,tend,grid,itimestep)
-
+ call microphysics_to_MPAS(state,diag,tend,mesh,itimestep)
 #elif hydrostatic_core
-
- call microphysics_to_MPAS(state)
-
+ call microphysics_to_MPAS(state,tend)
 #endif
 
 !formats:
@@ -246,17 +233,17 @@
  end subroutine microphysics_driver
 
 !=============================================================================================
- subroutine precip_from_MPAS(state, grid)
+ subroutine precip_from_MPAS(diag_physics,mesh)
 !=============================================================================================
 
 !input variables:
- type(mesh_type) ,intent(in):: grid
+ type(mesh_type) ,intent(in):: mesh
 
 !output variables:
- type(state_type),intent(inout):: state
+ type(diag_physics_type),intent(inout):: diag_physics
 
 !local variables:
- integer:: i,icell,j
+ integer:: i,iCell,j
 
 !---------------------------------------------------------------------------------------------
 
@@ -268,8 +255,8 @@
  enddo
  enddo
 
- do icell = 1, grid % nCellsSolve
-    state%rainncv%array(icell) = 0.
+ do iCell = 1, mesh % nCellsSolve
+    diag_physics % rainncv % array(iCell) = 0.
  enddo
 
 !variables specific to different cloud microphysics schemes:
@@ -288,10 +275,10 @@
        enddo
        enddo
 
-       do icell = 1, grid % nCellsSolve
-          state%snowncv%array(icell)    = 0.
-          state%graupelncv%array(icell) = 0.
-          state%sr%array(icell)         = 0.
+       do iCell = 1, mesh % nCellsSolve
+          diag_physics % snowncv % array(iCell)    = 0.
+          diag_physics % graupelncv % array(iCell) = 0.
+          diag_physics % sr % array(iCell)         = 0.
        enddo 
 
     case default
@@ -301,11 +288,11 @@
  end subroutine precip_from_MPAS
 
 !=============================================================================================
- subroutine precip_to_MPAS(state)
+ subroutine precip_to_MPAS(diag_physics)
 !=============================================================================================
 
 !output variables:
- type(state_type),intent(inout):: state
+ type(diag_physics_type),intent(inout):: diag_physics
 
 !local variables:
  integer:: i,j
@@ -318,10 +305,11 @@
  do i = its,ite
 
     !time-step precipitation:
-    state%rainncv%array(i) = rainnc_p(i,j)
+    diag_physics % rainncv % array(i) = rainnc_p(i,j)
     
     !accumulated precipitation:
-    state%rainnc%array(i) = state%rainnc%array(i) + state%rainncv%array(i)
+    diag_physics % rainnc % array(i) = diag_physics % rainnc % array(i) &amp;
+                                     + diag_physics % rainncv % array(i)
     
  enddo
  enddo
@@ -336,13 +324,16 @@
        do i = its,ite
        
           !time-step precipitation:
-          state%snowncv%array(i)    = snownc_p(i,j)
-          state%graupelncv%array(i) = graupelnc_p(i,j)
-          state%sr%array(i) = (snownc_p(i,j) + graupelnc_p(i,j)) / (rainnc_p(i,j)+1.e-12)
+          diag_physics % snowncv % array(i)    = snownc_p(i,j)
+          diag_physics % graupelncv % array(i) = graupelnc_p(i,j)
+          diag_physics % sr % array(i) = &amp;
+                         (snownc_p(i,j) + graupelnc_p(i,j)) / (rainnc_p(i,j)+1.e-12)
 
           !accumulated precipitation:
-          state%snownc%array(i)    = state%snownc%array(i) + state%snowncv%array(i)
-          state%graupelnc%array(i) = state%graupelnc%array(i) + state%graupelncv%array(i)
+          diag_physics % snownc % array(i)    = diag_physics % snownc  % array(i)    &amp;
+                                              + diag_physics % snowncv % array(i)
+          diag_physics % graupelnc % array(i) = diag_physics % graupelnc  % array(i) &amp;
+                                              + diag_physics % graupelncv % array(i)
 
        enddo
        enddo

Modified: branches/atmos_physics/src/core_physics/module_physics_control.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_control.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_control.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -140,14 +140,15 @@
  end subroutine physics_namelist_check
 
 !=============================================================================================
- subroutine physics_registry_init(config_do_restart,grid,s)
+ subroutine physics_registry_init(config_do_restart,mesh,diag_physics,tend_physics)
 !=============================================================================================
 
 !input and output arguments:
 !---------------------------
 logical,intent(in):: config_do_restart
- type(mesh_type),intent(in):: grid
- type(state_type),intent(inout):: s
+ type(mesh_type),intent(in):: mesh
+ type(diag_physics_type),intent(inout):: diag_physics
+ type(tend_physics_type),intent(inout):: tend_physics
 
 !local variables:
  integer:: k,icell
@@ -156,16 +157,16 @@
 
 !initialization of non-restart variables, namely diagnostics only:
  
- do icell = 1, grid%nCells
+ do icell = 1, mesh % nCells
 
-    s % qv_col     % array(icell) = 0.
-    s % qc_col     % array(icell) = 0.
-    s % qr_col     % array(icell) = 0.
-    s % qi_col     % array(icell) = 0.
-    s % qs_col     % array(icell) = 0.
-    s % qg_col     % array(icell) = 0.
+    diag_physics % qv_col % array(icell) = 0.
+    diag_physics % qc_col % array(icell) = 0.
+    diag_physics % qr_col % array(icell) = 0.
+    diag_physics % qi_col % array(icell) = 0.
+    diag_physics % qs_col % array(icell) = 0.
+    diag_physics % qg_col % array(icell) = 0.
 
-    s % sr         % array(icell) = 0.
+    diag_physics % sr % array(icell) = 0.
 
  enddo
 
@@ -173,137 +174,138 @@
  if(.not. config_do_restart) then
 
 !.. 1-d variables:
-    do icell = 1, grid%nCells
+    do icell = 1, mesh % nCells
   
        !.. cloud microphysics:
-       s % rainnc     % array(icell) = 0.
-       s % rainncv    % array(icell) = 0.
-       s % snownc     % array(icell) = 0.
-       s % snowncv    % array(icell) = 0.
-       s % graupelnc  % array(icell) = 0.
-       s % graupelncv % array(icell) = 0.
+       diag_physics % rainnc     % array(icell) = 0.
+       diag_physics % rainncv    % array(icell) = 0.
+       diag_physics % snownc     % array(icell) = 0.
+       diag_physics % snowncv    % array(icell) = 0.
+       diag_physics % graupelnc  % array(icell) = 0.
+       diag_physics % graupelncv % array(icell) = 0.
 
        !.. convection:
-       s % rainc      % array(icell) = 0.
-       s % raincv     % array(icell) = 0.
-       s % nca        % array(icell) = 0.
-       s % cubot      % array(icell) = 0.
-       s % cutop      % array(icell) = 0.
+       diag_physics % rainc      % array(icell) = 0.
+       diag_physics % raincv     % array(icell) = 0.
+       diag_physics % nca        % array(icell) = 0.
+       diag_physics % cubot      % array(icell) = 0.
+       diag_physics % cutop      % array(icell) = 0.
 
        !.. pbl layer:
-       s % kpbl       % array(icell) = 0.
+       diag_physics % kpbl       % array(icell) = 0.
 
        !.. surface layer:
-       s % br         % array(icell) = 0.
-       s % cd         % array(icell) = 0.
-       s % cda        % array(icell) = 0.
-       s % chs        % array(icell) = 0.
-       s % chs2       % array(icell) = 0.
-       s % cpm        % array(icell) = 0.
-       s % cqs2       % array(icell) = 0.
-       s % ck         % array(icell) = 0.
-       s % cka        % array(icell) = 0.
-       s % gz1oz0     % array(icell) = 0.
-       s % flhc       % array(icell) = 0.
-       s % flqc       % array(icell) = 0.
-       s % hfx        % array(icell) = 0.
-       s % lh         % array(icell) = 0.
-       s % mavail     % array(icell) = 0.
-       s % mol        % array(icell) = 0.
-       s % pblh       % array(icell) = 0.
-       s % psim       % array(iCell) = 0.
-       s % psih       % array(iCell) = 0.
-       s % q2         % array(icell) = 0.
-       s % qfx        % array(icell) = 0.
-       s % qgh        % array(icell) = 0.
-       s % qsfc       % array(icell) = 0.
-       s % regime     % array(icell) = 0.
-       s % rmol       % array(icell) = 0.
-       s % t2         % array(icell) = 0.
-       s % th2        % array(icell) = 0.
-       s % u10        % array(icell) = 0.
-       s % ust        % array(icell) = 0.
-       s % ustm       % array(icell) = 0.
-       s % v10        % array(icell) = 0.
-       s % wspd       % array(icell) = 0.
-       s % zol        % array(icell) = 0.
-       s % znt        % array(icell) = 0.
+       diag_physics % br         % array(icell) = 0.
+       diag_physics % cd         % array(icell) = 0.
+       diag_physics % cda        % array(icell) = 0.
+       diag_physics % chs        % array(icell) = 0.
+       diag_physics % chs2       % array(icell) = 0.
+       diag_physics % cpm        % array(icell) = 0.
+       diag_physics % cqs2       % array(icell) = 0.
+       diag_physics % ck         % array(icell) = 0.
+       diag_physics % cka        % array(icell) = 0.
+       diag_physics % gz1oz0     % array(icell) = 0.
+       diag_physics % flhc       % array(icell) = 0.
+       diag_physics % flqc       % array(icell) = 0.
+       diag_physics % hfx        % array(icell) = 0.
+       diag_physics % lh         % array(icell) = 0.
+       diag_physics % mavail     % array(icell) = 0.
+       diag_physics % mol        % array(icell) = 0.
+       diag_physics % pblh       % array(icell) = 0.
+       diag_physics % psim       % array(iCell) = 0.
+       diag_physics % psih       % array(iCell) = 0.
+       diag_physics % q2         % array(icell) = 0.
+       diag_physics % qfx        % array(icell) = 0.
+       diag_physics % qgh        % array(icell) = 0.
+       diag_physics % qsfc       % array(icell) = 0.
+       diag_physics % regime     % array(icell) = 0.
+       diag_physics % rmol       % array(icell) = 0.
+       diag_physics % t2         % array(icell) = 0.
+       diag_physics % th2        % array(icell) = 0.
+       diag_physics % u10        % array(icell) = 0.
+       diag_physics % ust        % array(icell) = 0.
+       diag_physics % ustm       % array(icell) = 0.
+       diag_physics % v10        % array(icell) = 0.
+       diag_physics % wspd       % array(icell) = 0.
+       diag_physics % zol        % array(icell) = 0.
+       diag_physics % znt        % array(icell) = 0.
 
        !.. shortwave radiation:
-       s % gsw        % array(icell) = 0.
-       s % swcf       % array(icell) = 0.
-       s % swdnb      % array(icell) = 0.
-       s % swdnbc     % array(icell) = 0.
-       s % swdnt      % array(icell) = 0.
-       s % swdntc     % array(icell) = 0.
-       s % swupb      % array(icell) = 0.
-       s % swupbc     % array(icell) = 0.
-       s % swupt      % array(icell) = 0.
-       s % swuptc     % array(icell) = 0.
-       s % swdnflx    % array(icell) = 0.
-       s % swdnflxc   % array(icell) = 0.
-       s % swupflx    % array(icell) = 0.
-       s % swupflxc   % array(icell) = 0.
+       diag_physics % gsw        % array(icell) = 0.
+       diag_physics % swcf       % array(icell) = 0.
+       diag_physics % swdnb      % array(icell) = 0.
+       diag_physics % swdnbc     % array(icell) = 0.
+       diag_physics % swdnt      % array(icell) = 0.
+       diag_physics % swdntc     % array(icell) = 0.
+       diag_physics % swupb      % array(icell) = 0.
+       diag_physics % swupbc     % array(icell) = 0.
+       diag_physics % swupt      % array(icell) = 0.
+       diag_physics % swuptc     % array(icell) = 0.
+       diag_physics % swdnflx    % array(icell) = 0.
+       diag_physics % swdnflxc   % array(icell) = 0.
+       diag_physics % swupflx    % array(icell) = 0.
+       diag_physics % swupflxc   % array(icell) = 0.
 
        !.. longwave radiation:
-       s % glw        % array(icell) = 0.
-       s % lwcf       % array(icell) = 0.
-       s % lwdnb      % array(icell) = 0.
-       s % lwdnbc     % array(icell) = 0.
-       s % lwdnt      % array(icell) = 0.
-       s % lwdntc     % array(icell) = 0.
-       s % lwupb      % array(icell) = 0.
-       s % lwupbc     % array(icell) = 0.
-       s % lwupt      % array(icell) = 0.
-       s % lwuptc     % array(icell) = 0.
-       s % lwdnflx    % array(icell) = 0.
-       s % lwdnflxc   % array(icell) = 0.
-       s % lwupflx    % array(icell) = 0.
-       s % lwupflxc   % array(icell) = 0.
-       s % olrtoa     % array(icell) = 0.
+       diag_physics % glw        % array(icell) = 0.
+       diag_physics % lwcf       % array(icell) = 0.
+       diag_physics % lwdnb      % array(icell) = 0.
+       diag_physics % lwdnbc     % array(icell) = 0.
+       diag_physics % lwdnt      % array(icell) = 0.
+       diag_physics % lwdntc     % array(icell) = 0.
+       diag_physics % lwupb      % array(icell) = 0.
+       diag_physics % lwupbc     % array(icell) = 0.
+       diag_physics % lwupt      % array(icell) = 0.
+       diag_physics % lwuptc     % array(icell) = 0.
+       diag_physics % lwdnflx    % array(icell) = 0.
+       diag_physics % lwdnflxc   % array(icell) = 0.
+       diag_physics % lwupflx    % array(icell) = 0.
+       diag_physics % lwupflxc   % array(icell) = 0.
+       diag_physics % olrtoa     % array(icell) = 0.
 
        !.. surface characteristics:
-       s % emiss      % array(icell) = 0.
-       s % snow       % array(icell) = 0.
-       s % tsk        % array(icell) = 0.
-       s % xice       % array(icell) = 0.       
-       s % xland      % array(icell) = 0.       
+       diag_physics % emiss      % array(icell) = 0.
+       diag_physics % snow       % array(icell) = 0.
+       diag_physics % tsk        % array(icell) = 0.
+       diag_physics % xice       % array(icell) = 0.       
+       diag_physics % xland      % array(icell) = 0.       
 
     enddo
 
 !2-d variables:
 
-    do icell = 1, grid % nCells
-    do k = 1, grid % nVertLevels
+    do icell = 1, mesh % nCells
+    do k = 1, mesh % nVertLevels
 
        !.. cloud fraction:
-       s % cldfrac    % array(k,icell) = 0.
+       diag_physics % cldfrac    % array(k,icell) = 0.
 
        !.. convection:
-       s % w0avg      % array(k,icell) = 0.
-       s % rthcuten   % array(k,icell) = 0.
-       s % rqvcuten   % array(k,icell) = 0.
-       s % rqccuten   % array(k,icell) = 0.
-       s % rqrcuten   % array(k,icell) = 0.
-       s % rqicuten   % array(k,icell) = 0.
-       s % rqscuten   % array(k,icell) = 0.
+       diag_physics % w0avg      % array(k,icell) = 0.
 
+       tend_physics % rthcuten   % array(k,icell) = 0.
+       tend_physics % rqvcuten   % array(k,icell) = 0.
+       tend_physics % rqccuten   % array(k,icell) = 0.
+       tend_physics % rqrcuten   % array(k,icell) = 0.
+       tend_physics % rqicuten   % array(k,icell) = 0.
+       tend_physics % rqscuten   % array(k,icell) = 0.
+
        !.. surface layer:
-       s % exch_h     % array(k,iCell) = 0.
+       diag_physics % exch_h     % array(k,iCell) = 0.
 
        !.. pbl:
-       s % rublten    % array(k,icell) = 0.
-       s % rvblten    % array(k,icell) = 0.
-       s % rthblten   % array(k,icell) = 0.
-       s % rqvblten   % array(k,icell) = 0.
-       s % rqcblten   % array(k,icell) = 0.
-       s % rqiblten   % array(k,icell) = 0.
+       tend_physics % rublten    % array(k,icell) = 0.
+       tend_physics % rvblten    % array(k,icell) = 0.
+       tend_physics % rthblten   % array(k,icell) = 0.
+       tend_physics % rqvblten   % array(k,icell) = 0.
+       tend_physics % rqcblten   % array(k,icell) = 0.
+       tend_physics % rqiblten   % array(k,icell) = 0.
 
        !.. shortwave radiation:
-       s % rthratensw % array(k,icell) = 0.
+       tend_physics % rthratensw % array(k,icell) = 0.
 
        !.. longwave radiation:
-       s % rthratenlw % array(k,icell) = 0.
+       tend_physics % rthratenlw % array(k,icell) = 0.
 
     enddo
     enddo

Modified: branches/atmos_physics/src/core_physics/module_physics_driver.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_driver.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_driver.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -48,13 +48,6 @@
  block =&gt; domain % blocklist
  do while(associated(block))
 
-    !compute relative humidity:
-#ifdef non_hydrostatic_core
-    !call compute_relhum(block%mesh, block%diag, block%state%time_levs(1)%state)
-#elif hydrostatic_core
-    !call compute_relhum(block%mesh, block%state%time_levs(1)%state)
-#endif
-
     !physics prep step:
 #ifdef non_hydrostatic_core
     call MPAS_to_physics(block%mesh,block%state%time_levs(1)%state,block%diag)
@@ -64,25 +57,16 @@
 
     !call to convection:
     if(config_conv_deep_scheme .ne. 'off') &amp;
-       call convection_deep_driver(itimestep,block%mesh,block%state%time_levs(1)%state)
+       call convection_deep_driver(itimestep,block%mesh,block%diag_physics,block%tend_physics)
 
     !call to pbl schemes:
 !   if(config_pbl_scheme .ne. 'off') &amp;
 !      call pbl_driver(itimestep,block%mesh,block%state%time_levs(1)%state)
 
-    !add all physics tendencies:
-    !call physics_add_tendencies
-
-    !move physics time_levs(1) to time_levs(2):
-#ifdef non_hydrostatic_core
-     call nhyd_copy_state_physics(block%state%time_levs(1)%state,block%state%time_levs(2)%state)
-#endif
-
     block =&gt; block % next
  end do 
 
  endif
- write(0,*)
 
  end subroutine physics_driver
 

Modified: branches/atmos_physics/src/core_physics/module_physics_init.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_init.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_init.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -17,13 +17,14 @@
  contains
 
 !=============================================================================================
- subroutine physics_init(mesh,s)
+ subroutine physics_init(mesh,state,diag_physics)
 !=============================================================================================
 
 !input and output arguments:
 !---------------------------
  type(mesh_type),intent(in):: mesh
- type(state_type),intent(inout):: s
+ type(state_type),intent(inout):: state
+ type(diag_physics_type),intent(inout):: diag_physics
 
 !=============================================================================================
  write(0,*)
@@ -31,7 +32,7 @@
 
 !initialization of parameterized deep convective processes:
  if(config_conv_deep_scheme .ne. 'off') then
-    call convection_deep_init(s)
+    call convection_deep_init(state)
  endif
 
 !initialization of cloud microphysics processes:
@@ -40,7 +41,7 @@
 !initialization of surface layer processes:
  if(config_sfclayer_scheme .ne. 'off') then
  
-    call sfclayer_interface_init(s)
+    call sfclayer_interface_init(diag_physics)
     write(0,*) '--- end subroutine sfclayer_interface_init:'
   
  endif

Modified: branches/atmos_physics/src/core_physics/module_physics_interface_hyd.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_interface_hyd.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_interface_hyd.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -147,18 +147,19 @@
  end subroutine microphysics_from_MPAS
 
 !=============================================================================================
- subroutine microphysics_to_MPAS(state)
+ subroutine microphysics_to_MPAS(state,tend)
 !=============================================================================================
 
 !output variables:
  type(state_type),intent(inout):: state
+ type(tend_type) ,intent(inout):: tend
 
 !---------------------------------------------------------------------------------------------
 
  write(0,*) '--- enter subroutine microphysics_to_MPAS:'
 
 !initialization:
- state % h_diabatic % array(:,:) = state % theta % array(:,:)
+ tend % h_diabatic % array(:,:) = state % theta % array(:,:)
 
 !copy all arrays back to the MPAS grid:
  do j = jts, jte
@@ -170,8 +171,8 @@
     state % scalars % array(state%index_qc,k,i)  = qc_p(i,k,j)
     state % scalars % array(state%index_qr,k,i)  = qr_p(i,k,j)
 
-    state % h_diabatic % array(k,i) = (state % theta % array(k,i) &amp;
-                              -  state % h_diabatic % array(k,i)) / dt_dyn
+    tend % h_diabatic % array(k,i) = (state % theta % array(k,i) &amp;
+                              -  tend % h_diabatic % array(k,i)) / dt_dyn
  enddo
  enddo
  enddo

Modified: branches/atmos_physics/src/core_physics/module_physics_sfclayer.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_sfclayer.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_sfclayer.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -83,11 +83,11 @@
  end subroutine sfclayer_deallocate
 
 !=============================================================================================
- subroutine sfclayer_interface_init(s)
+ subroutine sfclayer_interface_init(diag_physics)
 !=============================================================================================
 
 !input arguments:
- type(state_type),intent(in):: s
+ type(diag_physics_type),intent(in):: diag_physics
 
 !---------------------------------------------------------------------------------------------
 
@@ -100,27 +100,27 @@
     psim_p(i,j)   = 0.
     wspd_p(i,j)   = 0.
        
-    flhc_p(i,j)   = s % flhc   % array(i)
-    flqc_p(i,j)   = s % flqc   % array(i)
-    hfx_p(i,j)    = s % hfx    % array(i)
-    lh_p(i,j)     = s % lh     % array(i)
-    mavail_p(i,j) = s % mavail % array(i)
-    mol_p(i,j)    = s % mol    % array(i)
-    pblh_p(i,j)   = s % pblh   % array(i)
-    q2_p(i,j)     = s % q2     % array(i)
-    qfx_p(i,j)    = s % qfx    % array(i)
-    qsfc_p(i,j)   = s % qsfc   % array(i)
-    regime_p(i,j) = s % regime % array(i)
-    rmol_p(i,j)   = s % rmol   % array(i)
-    t2_p(i,j)     = s % t2     % array(i)
-    tsk_p(i,j)    = s % tsk    % array(i)
-    th2_p(i,j)    = s % th2    % array(i)
-    u10_p(i,j)    = s % u10    % array(i)
-    ust_p(i,j)    = s % ust    % array(i)
-    ustm_p(i,j)   = s % ustm   % array(i)
-    v10_p(i,j)    = s % v10    % array(i)
-    xland_p(i,j)  = s % xland  % array(i)       
-    znt_p(i,j)    = s % znt    % array(i)
+    flhc_p(i,j)   = diag_physics % flhc   % array(i)
+    flqc_p(i,j)   = diag_physics % flqc   % array(i)
+    hfx_p(i,j)    = diag_physics % hfx    % array(i)
+    lh_p(i,j)     = diag_physics % lh     % array(i)
+    mavail_p(i,j) = diag_physics % mavail % array(i)
+    mol_p(i,j)    = diag_physics % mol    % array(i)
+    pblh_p(i,j)   = diag_physics % pblh   % array(i)
+    q2_p(i,j)     = diag_physics % q2     % array(i)
+    qfx_p(i,j)    = diag_physics % qfx    % array(i)
+    qsfc_p(i,j)   = diag_physics % qsfc   % array(i)
+    regime_p(i,j) = diag_physics % regime % array(i)
+    rmol_p(i,j)   = diag_physics % rmol   % array(i)
+    t2_p(i,j)     = diag_physics % t2     % array(i)
+    tsk_p(i,j)    = diag_physics % tsk    % array(i)
+    th2_p(i,j)    = diag_physics % th2    % array(i)
+    u10_p(i,j)    = diag_physics % u10    % array(i)
+    ust_p(i,j)    = diag_physics % ust    % array(i)
+    ustm_p(i,j)   = diag_physics % ustm   % array(i)
+    v10_p(i,j)    = diag_physics % v10    % array(i)
+    xland_p(i,j)  = diag_physics % xland  % array(i)       
+    znt_p(i,j)    = diag_physics % znt    % array(i)
 
  enddo
  enddo

Modified: branches/atmos_physics/src/core_physics/module_physics_todynamics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2010-11-12 01:53:08 UTC (rev 610)
+++ branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2010-11-12 17:34:20 UTC (rev 611)
@@ -10,16 +10,16 @@
  contains
  
 !=============================================================================================
- subroutine physics_addtend(tend,vars,mass,grid)
+ subroutine physics_addtend(mesh,tend,tend_physics,mass)
 !=============================================================================================
 
 !input variables:
 !----------------
- type(mesh_type),intent(in):: grid
- type(state_type),intent(in):: vars
+ type(mesh_type),intent(in) :: mesh
+ type(tend_physics_type),intent(in):: tend_physics 
 
- real(kind=RKIND),intent(in),dimension(grid%nVertLevels,grid%nCells):: mass

+ real(kind=RKIND),dimension(mesh%nCells,mesh%nVertLevels):: mass
+
 !inout variables:
 !----------------
  type(tend_type),intent(inout):: tend
@@ -37,15 +37,15 @@
 !write(0,*)
 !write(0,*) '--- enter subroutine physics_add_tend:'
  
- nCellsSolve = grid % nCellsSolve
- nVertLevels = grid % nVertLevels
+ nCellsSolve = mesh % nCellsSolve
+ nVertLevels = mesh % nVertLevels
 
- 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
+ rthcuten   =&gt; tend_physics % rthcuten % array
+ rqvcuten   =&gt; tend_physics % rqvcuten % array
+ rqccuten   =&gt; tend_physics % rqccuten % array
+ rqrcuten   =&gt; tend_physics % rqrcuten % array
+ rqicuten   =&gt; tend_physics % rqicuten % array
+ rqscuten   =&gt; tend_physics % rqscuten % array
 
  tend_theta   =&gt; tend % theta % array
  tend_scalars =&gt; tend % scalars % array
@@ -57,18 +57,11 @@
     do i = 1, nCellsSolve
     do k = 1, nVertLevels
        tend_theta(k,i)=tend_theta(k,i)+rthcuten(k,i)*mass(k,i)
-       tend_scalars(vars%index_qv,k,i)=tend_scalars(vars%index_qv,k,i)+rqvcuten(k,i)*mass(k,i)
-       tend_scalars(vars%index_qc,k,i)=tend_scalars(vars%index_qc,k,i)+rqccuten(k,i)*mass(k,i)
-       tend_scalars(vars%index_qr,k,i)=tend_scalars(vars%index_qr,k,i)+rqrcuten(k,i)*mass(k,i)
-       tend_scalars(vars%index_qi,k,i)=tend_scalars(vars%index_qi,k,i)+rqicuten(k,i)*mass(k,i)
-       tend_scalars(vars%index_qs,k,i)=tend_scalars(vars%index_qs,k,i)+rqscuten(k,i)*mass(k,i)    
-!      write(0,201) i,k,tend_theta(k,i),            &amp;
-!                       tend_scalars(vars%index_qv,k,i), &amp;
-!                       tend_scalars(vars%index_qc,k,i), &amp;
-!                       tend_scalars(vars%index_qr,k,i), &amp;
-!                       tend_scalars(vars%index_qi,k,i), &amp;
-!                       tend_scalars(vars%index_qs,k,i), &amp;
-!                       tend_scalars(vars%index_qg,k,i)
+       tend_scalars(tend%index_qv,k,i)=tend_scalars(tend%index_qv,k,i)+rqvcuten(k,i)*mass(k,i)
+       tend_scalars(tend%index_qc,k,i)=tend_scalars(tend%index_qc,k,i)+rqccuten(k,i)*mass(k,i)
+       tend_scalars(tend%index_qr,k,i)=tend_scalars(tend%index_qr,k,i)+rqrcuten(k,i)*mass(k,i)
+       tend_scalars(tend%index_qi,k,i)=tend_scalars(tend%index_qi,k,i)+rqicuten(k,i)*mass(k,i)
+       tend_scalars(tend%index_qs,k,i)=tend_scalars(tend%index_qs,k,i)+rqscuten(k,i)*mass(k,i)    
     enddo
     enddo
 

</font>
</pre>