<p><b>laura@ucar.edu</b> 2011-04-08 16:40:46 -0600 (Fri, 08 Apr 2011)</p><p>updated physics<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        2011-04-08 22:38:04 UTC (rev 791)
+++ branches/atmos_physics/src/core_physics/module_driver_microphysics.F        2011-04-08 22:40:46 UTC (rev 792)
@@ -5,6 +5,7 @@
  
  use module_mp_kessler
  use module_mp_thompson
+ use module_mp_wsm6
  use module_physics_constants
  use module_physics_vars
 #ifdef non_hydrostatic_core
@@ -63,6 +64,19 @@
        if(.not.allocated(graupelnc_p)  ) allocate(graupelnc_p(ims:ime,jms:jme)   )
        if(.not.allocated(graupelncv_p) ) allocate(graupelncv_p(ims:ime,jms:jme)  )
 
+    case (&quot;wsm6&quot;)
+       !mass mixing ratios:
+       if(.not.allocated(qi_p)         ) allocate(qi_p(ims:ime,kms:kme,jms:jme)  )
+       if(.not.allocated(qs_p)         ) allocate(qs_p(ims:ime,kms:kme,jms:jme)  )
+       if(.not.allocated(qg_p)         ) allocate(qg_p(ims:ime,kms:kme,jms:jme)  )
+
+       !surface precipitation:
+       if(.not.allocated(sr_p)         ) allocate(sr_p(ims:ime,jms:jme)          )
+       if(.not.allocated(snownc_p)     ) allocate(snownc_p(ims:ime,jms:jme)      )
+       if(.not.allocated(snowncv_p)    ) allocate(snowncv_p(ims:ime,jms:jme)     )
+       if(.not.allocated(graupelnc_p)  ) allocate(graupelnc_p(ims:ime,jms:jme)   )
+       if(.not.allocated(graupelncv_p) ) allocate(graupelncv_p(ims:ime,jms:jme)  )
+
     case default
 
  end select microp_select
@@ -110,6 +124,19 @@
        if(allocated(graupelnc_p)  ) deallocate(graupelnc_p  )
        if(allocated(graupelncv_p) ) deallocate(graupelncv_p )
 
+    case (&quot;wsm6&quot;)
+       !mass mixing ratios:
+       if(allocated(qi_p)         ) deallocate(qi_p         )
+       if(allocated(qs_p)         ) deallocate(qs_p         )
+       if(allocated(qg_p)         ) deallocate(qg_p         )
+
+       !surface precipitation:
+       if(allocated(sr_p)         ) deallocate(sr_p         )
+       if(allocated(snownc_p)     ) deallocate(snownc_p     )
+       if(allocated(snowncv_p)    ) deallocate(snowncv_p    )
+       if(allocated(graupelnc_p)  ) deallocate(graupelnc_p  )
+       if(allocated(graupelncv_p) ) deallocate(graupelncv_p )
+
     case default
 
  end select microp_select
@@ -127,6 +154,11 @@
        call thompson_init
        write(0,*) '--- end subroutine thompson_init'
 
+    case(&quot;wsm6&quot;)
+       write(0,*) '--- begin subroutine wsm6init:'
+       call wsm6init(rho_a,rho_r,rho_s,cliq,cpv,.false.)
+       write(0,*) '--- end subroutine wsm6init'
+
     case default
 
  end select microp_select
@@ -224,6 +256,37 @@
                   its,ite,jts,jte,kts,kte)   ! tile dimensions
           write(0,*) '--- end thompson:',istep
 
+       case (&quot;wsm6&quot;)
+!         write(0,*) '--- max qv=',maxval(qv_p(:,:,:))
+!         write(0,*) '--- max qc=',maxval(qc_p(:,:,:))
+!         write(0,*) '--- max qr=',maxval(qr_p(:,:,:))
+!         write(0,*) '--- max qi=',maxval(qi_p(:,:,:))
+!         write(0,*) '--- max qs=',maxval(qs_p(:,:,:))
+!         write(0,*) '--- max qg=',maxval(qg_p(:,:,:))
+          call wsm6( &amp;
+                  th      = th_p        , q          = qv_p         , qc      = qc_p      , &amp;
+                  qr      = qr_p        , qi         = qi_p         , qs      = qs_p      , &amp;
+                  qg      = qg_p        , den        = rho_p        , pii     = pi_p      , &amp;
+                  p       = pres_p      , delz       = dz_p         , delt    = dt_microp , &amp;
+                  g       = g           , cpd        = cp           , cpv     = cpv       , &amp;
+                  rd      = R_d         , rv         = R_v          , t0c     = svpt0     , &amp;
+                  ep1     = ep_1        , ep2        = ep_2         , qmin    = epsilon   , &amp;
+                  xls     = xls         , xlv0       = xlv          , xlf0    = xlf       , &amp;
+                  den0    = rho_a       , denr       = rho_w        , cliq    = cliq      , &amp;
+                  cice    = cice        , psat       = psat         , rain    = rainnc_p  , &amp;
+                  rainncv = rainncv_p   , snow       = snownc_p     , snowncv = snowncv_p , &amp;
+                  graupel = graupelnc_p , graupelncv = graupelncv_p , sr      = sr_p      , &amp;
+                  ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde   , &amp;
+                  ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme   , &amp;
+                  its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte     &amp;
+                   )
+!         do j = jts,jte
+!         do i = its,ite
+!            if(rainncv_p(i,j).gt.0.) write(0,200) j,i,rainncv_p(i,j),rainnc_p(i,j)
+!         enddo
+!         enddo
+          write(0,*) '--- end wsm6:',istep
+
        case default
        
     end select microp_select
@@ -249,7 +312,8 @@
  call deallocate_microphysics
 
 !formats:
- 201 format(2i6,10(1x,e15.8))
+ 200 format(i3,i6,10(1x,e15.8))
+ 201 format(3i6,10(1x,e15.8))
  203 format('microphysics begins:',3i6,2(1x,f6.1))
  204 format('microphysics precip:',3i6,8(1x,e15.8))
 

Modified: branches/atmos_physics/src/core_physics/module_physics_driver.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_driver.F        2011-04-08 22:38:04 UTC (rev 791)
+++ branches/atmos_physics/src/core_physics/module_physics_driver.F        2011-04-08 22:40:46 UTC (rev 792)
@@ -99,8 +99,6 @@
                             block%sfc_physics)
        call deallocate_sfclayer
     endif
-    i=min(2519,ime)
-    write(0,*) 'after sfclayer wspd=',block%diag_physics%wspd%array(i)
 
     !call to land-surface scheme:
     if(config_lsm_scheme .ne. 'off') then
@@ -108,8 +106,6 @@
        call driver_lsm(itimestep,block%mesh,block%diag_physics,block%sfc_physics,block%sfc_input)
        call deallocate_lsm
     endif
-    i=min(2519,ime)
-    write(0,*) 'after lsm wspd=',block%diag_physics%wspd%array(i)
 
     !call to pbl schemes:
     if(config_pbl_scheme .ne. 'off' .and. config_sfclayer_scheme .ne. 'off') then

Modified: branches/atmos_physics/src/core_physics/module_physics_init.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_init.F        2011-04-08 22:38:04 UTC (rev 791)
+++ branches/atmos_physics/src/core_physics/module_physics_init.F        2011-04-08 22:40:46 UTC (rev 792)
@@ -50,7 +50,7 @@
 
 !initialization of parameterized deep convective processes:
  if(config_conv_deep_scheme .ne. 'off') then
-    call convection_deep_init(state)
+    call convection_deep_init(mesh,diag_physics)
  endif
 
 !initialization of cloud microphysics processes:

Modified: branches/atmos_physics/src/core_physics/module_physics_todynamics.F
===================================================================
--- branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2011-04-08 22:38:04 UTC (rev 791)
+++ branches/atmos_physics/src/core_physics/module_physics_todynamics.F        2011-04-08 22:40:46 UTC (rev 792)
@@ -45,8 +45,8 @@
  real(kind=RKIND),dimension(:,:),allocatable:: rublten_Edge
 
 !=============================================================================================
- write(0,*)
- write(0,*) '--- enter subroutine physics_add_tend:'
+!write(0,*)
+!write(0,*) '--- enter subroutine physics_add_tend:'
  
  nCells      = mesh % nCells
  nEdges      = mesh % nEdges
@@ -75,6 +75,8 @@
  tend_theta   =&gt; tend % theta % array
  tend_scalars =&gt; tend % scalars % array
 
+ tend_scalars = 0.
+
 !add coupled tendencies due to PBL processes:
  if(config_pbl_scheme .ne. 'off') then
     allocate(rublten_Edge(nVertLevels,nEdges))
@@ -130,6 +132,18 @@
     enddo
  endif
 
+!write(0,*) 'max qv tendencies:'
+!write(0,*) 'max qvblten=',maxval(rqvblten(:,:))
+!write(0,*) 'max qvcuten=',maxval(rqvcuten(:,:))
+!write(0,*)
+!write(0,*) 'max tend_scalars:'
+!write(0,*) 'max tend qv=',maxval(tend_scalars(tend%index_qv,:,:))
+!write(0,*) 'max tend qc=',maxval(tend_scalars(tend%index_qc,:,:))
+!write(0,*) 'max tend qr=',maxval(tend_scalars(tend%index_qr,:,:))
+!write(0,*) 'max tend qi=',maxval(tend_scalars(tend%index_qi,:,:))
+!write(0,*) 'max tend qs=',maxval(tend_scalars(tend%index_qs,:,:))
+!write(0,*)
+
 !formats:
  201 format(2i6,8(1x,e15.8))
 

Modified: branches/atmos_physics/src/core_physics/physics_wrf/Makefile
===================================================================
--- branches/atmos_physics/src/core_physics/physics_wrf/Makefile        2011-04-08 22:38:04 UTC (rev 791)
+++ branches/atmos_physics/src/core_physics/physics_wrf/Makefile        2011-04-08 22:40:46 UTC (rev 792)
@@ -6,10 +6,12 @@
         echo &quot;****** compile physics_wrf ******&quot;
 
 OBJS = \
+        libmassv.o            \
         module_bl_ysu.o       \
         module_cu_kfeta.o     \
         module_mp_kessler.o   \
         module_mp_thompson.o  \
+        module_mp_wsm6.o      \
         module_ra_rrtmg_lw.o  \
         module_ra_rrtmg_sw.o  \
         module_sf_bem.o       \
@@ -24,6 +26,9 @@
         ar -ru ./../libphys.a $(OBJS)
 
 # DEPENDENCIES:
+module_mp_wsm6.o: \
+        libmassv.o
+
 module_sf_bep.o:          \
         module_sf_urban.o
 

</font>
</pre>