<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 ("wsm6")
+ !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 ("wsm6")
+ !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("wsm6")
+ 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 ("wsm6")
+! 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( &
+ th = th_p , q = qv_p , qc = qc_p , &
+ qr = qr_p , qi = qi_p , qs = qs_p , &
+ qg = qg_p , den = rho_p , pii = pi_p , &
+ p = pres_p , delz = dz_p , delt = dt_microp , &
+ g = g , cpd = cp , cpv = cpv , &
+ rd = R_d , rv = R_v , t0c = svpt0 , &
+ ep1 = ep_1 , ep2 = ep_2 , qmin = epsilon , &
+ xls = xls , xlv0 = xlv , xlf0 = xlf , &
+ den0 = rho_a , denr = rho_w , cliq = cliq , &
+ cice = cice , psat = psat , rain = rainnc_p , &
+ rainncv = rainncv_p , snow = snownc_p , snowncv = snowncv_p , &
+ graupel = graupelnc_p , graupelncv = graupelncv_p , sr = sr_p , &
+ ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde , &
+ ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme , &
+ its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte &
+ )
+! 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 => tend % theta % array
tend_scalars => 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 "****** compile physics_wrf ******"
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>