<p><b>laura@ucar.edu</b> 2010-11-18 16:08:48 -0700 (Thu, 18 Nov 2010)</p><p>miscellaneous modifications<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_physics/module_driver_microphysics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2010-11-18 23:04:38 UTC (rev 627)
+++ branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2010-11-18 23:08:48 UTC (rev 628)
@@ -162,7 +162,7 @@
 !... initialization of soundings for non-hydrostatic or hydrostatic dynamical cores.
 
 #ifdef non_hydrostatic_core
- call microphysics_from_MPAS(state,diag,mesh)
+ call microphysics_from_MPAS(mesh,state,diag)
 #elif hydrostatic_core
  call microphysics_from_MPAS(state)
 #endif
@@ -220,7 +220,7 @@
 !    dynamics grid:
 
 #ifdef non_hydrostatic_core
- call microphysics_to_MPAS(state,diag,tend,mesh,itimestep)
+ call microphysics_to_MPAS(mesh,state,diag,tend,itimestep)
 #elif hydrostatic_core
  call microphysics_to_MPAS(state,tend)
 #endif

Modified: branches/atmos_physics/src/core_physics/module_physics_interface_nhyd.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_interface_nhyd.F        2010-11-18 23:04:38 UTC (rev 627)
+++ branches/atmos_physics/src/core_physics/module_physics_interface_nhyd.F        2010-11-18 23:08:48 UTC (rev 628)
@@ -9,88 +9,19 @@
 
  implicit none
  private
- public:: nhyd_copy_state_physics,   &amp;
-          compute_relhum,            &amp;
-          MPAS_to_physics,           &amp;
+ public:: MPAS_to_physics,           &amp;
           microphysics_from_MPAS,    &amp;
           microphysics_to_MPAS
 
  contains
 
 !=============================================================================================
- subroutine nhyd_copy_state_physics(src,dest)
+ subroutine MPAS_to_physics(mesh,state,diag)
 !=============================================================================================
 
 !input variables:
- type(state_type),intent(in):: src
-!inout variables:
- type(state_type),intent(inout):: dest
-
-!---------------------------------------------------------------------------------------------
-
-!cloud microphysics:
- dest%rainnc%array     = src%rainnc%array
- dest%rainncv%array    = src%rainncv%array
- dest%snownc%array     = src%snownc%array
- dest%snowncv%array    = src%snowncv%array
- dest%graupelnc%array  = src%graupelnc%array
- dest%graupelncv%array = src%graupelncv%array
- dest%sr%array         = src%sr%array
-
-!convection:
- dest%nca%array        = src%nca%array
- dest%cubot%array      = src%cubot%array
- dest%cutop%array      = src%cutop%array
- dest%rainc%array      = src%rainc%array
- dest%raincv%array     = src%raincv%array
- dest%rthcuten%array   = src%rthcuten%array
- dest%rqvcuten%array   = src%rqvcuten%array
- dest%rqccuten%array   = src%rqccuten%array
- dest%rqrcuten%array   = src%rqrcuten%array
- dest%rqicuten%array   = src%rqicuten%array
- dest%rqscuten%array   = src%rqscuten%array
- dest%w0avg%array      = src%w0avg%array
-
-!pbl:
- dest%rublten%array    = src%rublten%array
- dest%rvblten%array    = src%rvblten%array
- dest%rthblten%array   = src%rthblten%array
- dest%rqvblten%array   = src%rqvblten%array
- dest%rqcblten%array   = src%rqcblten%array
- dest%rqiblten%array   = src%rqiblten%array
-
-!surface layer:
- dest%flhc%array       = src%flhc%array
- dest%flqc%array       = src%flqc%array
- dest%hfx%array        = src%hfx%array
- dest%lh%array         = src%lh%array
- dest%mavail%array     = src%mavail%array
- dest%mol%array        = src%mol%array
- dest%pblh%array       = src%pblh%array
- dest%q2%array         = src%q2%array
- dest%qfx%array        = src%qfx%array
- dest%qsfc%array       = src%qsfc%array
- dest%regime%array     = src%regime%array
- dest%rmol%array       = src%rmol%array
- dest%t2%array         = src%t2%array
- dest%tsk%array        = src%tsk%array
- dest%th2%array        = src%th2%array
- dest%u10%array        = src%u10%array
- dest%ust%array        = src%ust%array
- dest%ustm%array       = src%ustm%array
- dest%v10%array        = src%v10%array
- dest%xland%array      = src%xland%array
- dest%znt%array        = src%znt%array
-
- end subroutine nhyd_copy_state_physics
-
-!=============================================================================================
- subroutine MPAS_to_physics(grid,vars,diag)
-!=============================================================================================
-
-!input variables:
- type(mesh_type) ,intent(in):: grid
- type(state_type),intent(in):: vars
+ type(mesh_type) ,intent(in):: mesh
+ type(state_type),intent(in):: state
  type(diag_type) ,intent(in):: diag
 
 !local variables:
@@ -106,21 +37,21 @@
  write(0,*) '--- enter subroutine MPAS_to_phys:'
 
 !initialization:
- zgrid      =&gt; grid% zgrid % array
- zz         =&gt; grid % zz % array
+ zgrid      =&gt; mesh % zgrid % array
+ zz         =&gt; mesh % zz % array
  exner      =&gt; diag % exner % array
  pressure_b =&gt; diag % pressure_base % array
  pressure_p =&gt; diag % pressure_p % array
  rtheta_p   =&gt; diag % rtheta_p % array
  rtheta_b   =&gt; diag % rtheta_base % array
 
- rho        =&gt; vars % rho % array
- theta      =&gt; vars % theta % array
- qv         =&gt; vars % scalars % array(vars%index_qv,:,:)
+ rho        =&gt; state % rho % array
+ theta      =&gt; state % theta % array
+ qv         =&gt; state % scalars % array(state%index_qv,:,:)
 
- w          =&gt; vars % w % array
- u          =&gt; diag % uReconstructZonal % array
- v          =&gt; diag % uReconstructMeridional % array
+ w          =&gt; state % w % array
+ u          =&gt; diag  % uReconstructZonal % array
+ v          =&gt; diag  % uReconstructMeridional % array
 
 !copy sounding variables from the geodesic grid to the wrf-physics grid:
  do j = jts, jtf
@@ -136,11 +67,11 @@
     t_p(i,k,j)   = theta(k,i) * exner(k,i) / (1. + R_v/R_d * qv(k,i))
 
     pi_p(i,k,j)   = exner(k,i)
-    pres_p(i,k,j) = pressure_p(k,i) + pressure_p(k,i)
+    pres_p(i,k,j) = pressure_p(k,i) + pressure_b(k,i)
 
     dz_p(i,k,j) = zgrid(k+1,i)-zgrid(k,i)
 
-    qv_p(i,k,j) = max(0.,vars % scalars % array(vars%index_qv,k,i))
+    qv_p(i,k,j) = max(0.,state % scalars % array(state%index_qv,k,i))
 
  enddo
  enddo
@@ -153,13 +84,13 @@
  end subroutine MPAS_to_physics
 
 !=============================================================================================
- subroutine microphysics_from_MPAS(vars,diag,grid)
+ subroutine microphysics_from_MPAS(mesh,state,diag)
 !=============================================================================================
 
 !input variables:
- type(state_type),intent(in):: vars
+ type(state_type),intent(in):: state
  type(diag_type) ,intent(in):: diag
- type(mesh_type) ,intent(in):: grid
+ type(mesh_type) ,intent(in):: mesh
 
 !local variables:
  integer:: i,k,j
@@ -179,20 +110,20 @@
  write(0,*)
  write(0,*) '--- enter subroutine microphysics_nhyd_to_phys:'
 
- zgrid =&gt; grid% zgrid % array
+ zgrid =&gt; mesh % zgrid % array
+ zz    =&gt; mesh % zz % array
 
- zz         =&gt; grid % zz % array
  exner      =&gt; diag % exner % array
  pressure_b =&gt; diag % pressure_base % array
+ pressure_p =&gt; diag % pressure_p % array
  rtheta_p   =&gt; diag % rtheta_p % array
  rtheta_b   =&gt; diag % rtheta_base % array
  
- rho        =&gt; vars % rho % array
- theta      =&gt; vars % theta % array
+ rho        =&gt; state % rho % array
+ theta      =&gt; state % theta % array
  rh         =&gt; diag % rh % array
- pressure_p =&gt; diag % pressure_p % array
 
- qv =&gt; vars % scalars % array(vars%index_qv,:,:)
+ qv =&gt; state % scalars % array(state%index_qv,:,:)
 
 !copy sounding variables from the geodesic grid to the wrf-physics grid:
  do j = jts, jtf
@@ -207,12 +138,12 @@
     z_p(i,k,j)    = 0.5*(zgrid(k+1,i) + zgrid(k,i))
     dz_p(i,k,j)   = zgrid(k+1,i) - zgrid(k,i)
 
-!   qv_p(i,k,j) = max(0.,vars % scalars % array(vars%index_qv,k,i))
-!   qc_p(i,k,j) = max(0.,vars % scalars % array(vars%index_qc,k,i))
-!   qr_p(i,k,j) = max(0.,vars % scalars % array(vars%index_qr,k,i))
-    qv_p(i,k,j) = vars % scalars % array(vars%index_qv,k,i)
-    qc_p(i,k,j) = vars % scalars % array(vars%index_qc,k,i)
-    qr_p(i,k,j) = vars % scalars % array(vars%index_qr,k,i)
+!   qv_p(i,k,j) = max(0.,state % scalars % array(state%index_qv,k,i))
+!   qc_p(i,k,j) = max(0.,state % scalars % array(state%index_qc,k,i))
+!   qr_p(i,k,j) = max(0.,state % scalars % array(state%index_qr,k,i))
+    qv_p(i,k,j) = state % scalars % array(state%index_qv,k,i)
+    qc_p(i,k,j) = state % scalars % array(state%index_qc,k,i)
+    qr_p(i,k,j) = state % scalars % array(state%index_qr,k,i)
  enddo
  enddo
  enddo
@@ -230,15 +161,15 @@
 !         qi_p(i,k,j) = max(0.,vars % scalars % array(vars%index_qi,k,i))
 !         qs_p(i,k,j) = max(0.,vars % scalars % array(vars%index_qs,k,i))
 !         qg_p(i,k,j) = max(0.,vars % scalars % array(vars%index_qg,k,i))
-          qi_p(i,k,j) = vars % scalars % array(vars%index_qi,k,i)
-          qs_p(i,k,j) = vars % scalars % array(vars%index_qs,k,i)
-          qg_p(i,k,j) = vars % scalars % array(vars%index_qg,k,i)
+          qi_p(i,k,j) = state % scalars % array(state%index_qi,k,i)
+          qs_p(i,k,j) = state % scalars % array(state%index_qs,k,i)
+          qg_p(i,k,j) = state % scalars % array(state%index_qg,k,i)
 
           !number concentrations:
-!         qnr_p(i,k,j) = max(0., vars % scalars % array(vars%index_qnr,k,i))
-!         qni_p(i,k,j) = max(0., vars % scalars % array(vars%index_qni,k,i))
-          qnr_p(i,k,j) = vars % scalars % array(vars%index_qnr,k,i)
-          qni_p(i,k,j) = vars % scalars % array(vars%index_qni,k,i)
+!         qnr_p(i,k,j) = max(0., vars % scalars % array(state%index_qnr,k,i))
+!         qni_p(i,k,j) = max(0., vars % scalars % array(state%index_qni,k,i))
+          qnr_p(i,k,j) = state % scalars % array(state%index_qnr,k,i)
+          qni_p(i,k,j) = state % scalars % array(state%index_qni,k,i)
 
        enddo
        enddo
@@ -254,15 +185,15 @@
  end subroutine microphysics_from_MPAS
 
 !=============================================================================================
- subroutine microphysics_to_MPAS(vars, diag, tend, grid, itimestep)
+ subroutine microphysics_to_MPAS(mesh,state,diag,tend,itimestep)
 !=============================================================================================
 
 !input variables:
  integer,intent(in):: itimestep
- type(mesh_type),intent(in):: grid
+ type(mesh_type),intent(in):: mesh
 
 !output variables:
- type(state_type),intent(inout):: vars
+ type(state_type),intent(inout):: state
  type(diag_type),intent(inout):: diag
  type(tend_type),intent(inout):: tend
 
@@ -284,16 +215,16 @@
  write(0,*) '--- enter subroutine microphysics_to_MPAS:'
 
 !initialization:
- zz       =&gt; grid % zz % array
- exner    =&gt; diag % exner % array
- exner_b  =&gt; diag % exner_base % array
- pressure_p =&gt; diag % pressure_p % array
+ zz         =&gt; mesh % zz % array
+ exner      =&gt; diag % exner % array
+ exner_b    =&gt; diag % exner_base % array
  pressure_b =&gt; diag % pressure_base % array
- rtheta_p =&gt; diag % rtheta_p % array
- rtheta_b =&gt; diag % rtheta_base % array
+ pressure_p =&gt; diag % pressure_p % array
+ rtheta_p   =&gt; diag % rtheta_p % array
+ rtheta_b   =&gt; diag % rtheta_base % array
 
- rho      =&gt; vars % rho % array
- theta    =&gt; vars % theta % array
+ rho        =&gt; state % rho % array
+ theta      =&gt; state % theta % array
 
  rt_diabatic_tend =&gt; tend % rt_diabatic_tend % array
 
@@ -315,14 +246,14 @@
     !exner function:
     exner(k,i) = (zz(k,i)*(R_d/P0)*(rtheta_p(k,i)+rtheta_b(k,i)))**rcv
 
-    !perturbation pressure:
+    !pertubation pressure:
     pressure_p(k,i) = zz(k,i)*R_d*(exner(k,i)*rtheta_p(k,i) &amp;
                   + (exner(k,i)-exner_b(k,i))*rtheta_b(k,i))
 
     !mass mixing ratios:
-    vars % scalars % array(vars%index_qv,k,i) = qv_p(i,k,j)
-    vars % scalars % array(vars%index_qc,k,i) = qc_p(i,k,j)
-    vars % scalars % array(vars%index_qr,k,i) = qr_p(i,k,j)
+    state % scalars % array(state%index_qv,k,i) = qv_p(i,k,j)
+    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)
 
  enddo
  enddo
@@ -339,13 +270,13 @@
        do i = its, itf
 
           !mass mixing ratios:
-          vars % scalars % array(vars%index_qi,k,i) = qi_p(i,k,j)
-          vars % scalars % array(vars%index_qs,k,i) = qs_p(i,k,j)
-          vars % scalars % array(vars%index_qg,k,i) = qg_p(i,k,j)
+          state % scalars % array(state%index_qi,k,i) = qi_p(i,k,j)
+          state % scalars % array(state%index_qs,k,i) = qs_p(i,k,j)
+          state % scalars % array(state%index_qg,k,i) = qg_p(i,k,j)
 
           !number concentrations:
-          vars % scalars % array(vars%index_qnr,k,i) = qnr_p(i,k,j)
-          vars % scalars % array(vars%index_qni,k,i) = qni_p(i,k,j)
+          state % scalars % array(state%index_qnr,k,i) = qnr_p(i,k,j)
+          state % scalars % array(state%index_qni,k,i) = qni_p(i,k,j)
 
        enddo
        enddo
@@ -360,111 +291,6 @@
 
  end subroutine microphysics_to_MPAS
 
-!--------------------------------------------------------------------------------------------------
- subroutine compute_relhum(grid,diag,vars)
-!--------------------------------------------------------------------------------------------------
-   
- type(state_type),intent(in) :: vars
- type(diag_type),intent(inout) :: diag
- type(mesh_type),intent(in)  :: grid
-
- real,dimension(:,:),pointer :: theta,pressure_p  
- real,dimension(:,:),pointer :: pressure_b,exner
- real,dimension(:,:),pointer :: qv,rh
-
- integer:: iCell,k
- real(kind=RKIND):: tt,pres,qsat
-
- exner      =&gt; diag % exner % array
- pressure_b =&gt; diag % pressure_base % array
-
- theta    =&gt; vars % theta % array
- pressure_p =&gt; diag % pressure_p % array
- rh       =&gt; diag % rh  % array
- qv       =&gt; vars % scalars % array(vars%index_qv,:,:)
-
- do iCell = 1, grid % nCells
-    do k = 1, grid % nVertLevels
-       pres = pressure_b(k,iCell) + pressure_p(k,iCell)
-       tt = theta(k,iCell)/(1.+1.61*qv(k,iCell))
-       tt = tt*exner(k,iCell)
-       if(tt .gt. 273.15) then
-          qsat = rslf(pres,tt)
-       else
-          qsat = rsif(pres,tt)
-       endif
-       rh(k,iCell) = qv(k,iCell)/qsat
-    enddo
- enddo
- 201 format(2i6,8(1x,e15.8))
-
- end subroutine compute_relhum
-
-!+---+-----------------------------------------------------------------+
-! THIS FUNCTION CALCULATES THE LIQUID SATURATION VAPOR MIXING RATIO AS
-! A FUNCTION OF TEMPERATURE AND PRESSURE
-!
-      REAL FUNCTION RSLF(P,T)
-
-      IMPLICIT NONE
-      REAL, INTENT(IN):: P, T
-      REAL:: ESL,X
-      REAL, PARAMETER:: C0= .611583699E03
-      REAL, PARAMETER:: C1= .444606896E02
-      REAL, PARAMETER:: C2= .143177157E01
-      REAL, PARAMETER:: C3= .264224321E-1
-      REAL, PARAMETER:: C4= .299291081E-3
-      REAL, PARAMETER:: C5= .203154182E-5
-      REAL, PARAMETER:: C6= .702620698E-8
-      REAL, PARAMETER:: C7= .379534310E-11
-      REAL, PARAMETER:: C8=-.321582393E-13
-
-      X=MAX(-80.,T-273.16)
-
-!      ESL=612.2*EXP(17.67*X/(T-29.65))
-      ESL=C0+X*(C1+X*(C2+X*(C3+X*(C4+X*(C5+X*(C6+X*(C7+X*C8)))))))
-      RSLF=.622*ESL/(P-ESL)
-
-!    ALTERNATIVE
-!  ; Source: Murphy and Koop, Review of the vapour pressure of ice and
-!             supercooled water for atmospheric applications, Q. J. R.
-!             Meteorol. Soc (2005), 131, pp. 1539-1565.
-!    ESL = EXP(54.842763 - 6763.22 / T - 4.210 * ALOG(T) + 0.000367 * T
-!        + TANH(0.0415 * (T - 218.8)) * (53.878 - 1331.22
-!        / T - 9.44523 * ALOG(T) + 0.014025 * T))
-
-      END FUNCTION RSLF
-!+---+-----------------------------------------------------------------+
-! THIS FUNCTION CALCULATES THE ICE SATURATION VAPOR MIXING RATIO AS A
-! FUNCTION OF TEMPERATURE AND PRESSURE
-!
-      REAL FUNCTION RSIF(P,T)
-
-      IMPLICIT NONE
-      REAL, INTENT(IN):: P, T
-      REAL:: ESI,X
-      REAL, PARAMETER:: C0= .609868993E03
-      REAL, PARAMETER:: C1= .499320233E02
-      REAL, PARAMETER:: C2= .184672631E01
-      REAL, PARAMETER:: C3= .402737184E-1
-      REAL, PARAMETER:: C4= .565392987E-3
-      REAL, PARAMETER:: C5= .521693933E-5
-      REAL, PARAMETER:: C6= .307839583E-7
-      REAL, PARAMETER:: C7= .105785160E-9
-      REAL, PARAMETER:: C8= .161444444E-12
-
-      X=MAX(-80.,T-273.16)
-      ESI=C0+X*(C1+X*(C2+X*(C3+X*(C4+X*(C5+X*(C6+X*(C7+X*C8)))))))
-      RSIF=.622*ESI/(P-ESI)
-
-!    ALTERNATIVE
-!  ; Source: Murphy and Koop, Review of the vapour pressure of ice and
-!             supercooled water for atmospheric applications, Q. J. R.
-!             Meteorol. Soc (2005), 131, pp. 1539-1565.
-!     ESI = EXP(9.550426 - 5723.265/T + 3.53068*ALOG(T) - 0.00728332*T)
-
-      END FUNCTION RSIF
-
 !=============================================================================================
  end module module_physics_interface_nhyd
 !=============================================================================================

Modified: branches/atmos_physics/src/core_physics/module_physics_todynamics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2010-11-18 23:04:38 UTC (rev 627)
+++ branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2010-11-18 23:08:48 UTC (rev 628)
@@ -18,7 +18,8 @@
  type(mesh_type),intent(in) :: mesh
  type(tend_physics_type),intent(in):: tend_physics 
 
- real(kind=RKIND),dimension(mesh%nCells,mesh%nVertLevels):: mass
+!real(kind=RKIND),dimension(mesh%nCells,mesh%nVertLevels):: mass
+ real(kind=RKIND),dimension(:,:):: mass
 
 !inout variables:
 !----------------

</font>
</pre>