<p><b>laura@ucar.edu</b> 2013-03-01 10:48:20 -0700 (Fri, 01 Mar 2013)</p><p>modified driver so that we can use the variable dx_p instead of area_p in the calculation of the subgrid mountain scale (cleff) in ./physics_wrf/module_bl_gwdo.F.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_driver_gwdo.F
===================================================================
--- branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_driver_gwdo.F        2013-03-01 17:44:06 UTC (rev 2533)
+++ branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_driver_gwdo.F        2013-03-01 17:48:20 UTC (rev 2534)
@@ -23,7 +23,7 @@
subroutine allocate_gwdo
!=============================================================================================
- if(.not.allocated(area_p) ) allocate(area_p(ims:ime,jms:jme) )
+ if(.not.allocated(dx_p) ) allocate(dx_p(ims:ime,jms:jme) )
if(.not.allocated(var2d_p) ) allocate(var2d_p(ims:ime,jms:jme) )
if(.not.allocated(con_p) ) allocate(con_p(ims:ime,jms:jme) )
if(.not.allocated(oa1_p) ) allocate(oa1_p(ims:ime,jms:jme) )
@@ -49,7 +49,7 @@
subroutine deallocate_gwdo
!=============================================================================================
- if(allocated(area_p) ) deallocate(area_p )
+ if(allocated(dx_p) ) deallocate(dx_p )
if(allocated(var2d_p) ) deallocate(var2d_p )
if(allocated(con_p) ) deallocate(con_p )
if(allocated(oa1_p) ) deallocate(oa1_p )
@@ -81,11 +81,20 @@
type(diag_physics_type),intent(in):: diag_physics
type(tend_physics_type),intent(in):: tend_physics
+!local variables:
+ integer:: iEdge
+
!---------------------------------------------------------------------------------------------
do j = jts,jte
do i = its,ite
- area_p(i,j) = mesh % areaCell % array(i)
+ iEdge = mesh%nEdgesOnCell%array(i)
+ dx_p(i,j) = maxval(mesh%dcEdge%array(mesh%edgesOnCell%array(1:iEdge,i)))
+ enddo
+ enddo
+
+ do j = jts,jte
+ do i = its,ite
var2d_p(i,j) = sfc_input % var2d % array(i)
con_p(i,j) = sfc_input % con % array(i)
oa1_p(i,j) = sfc_input % oa1 % array(i)
@@ -142,12 +151,22 @@
do i = its,ite
diag_physics % dtaux3d % array(k,i) = dtaux3d_p(i,k,j)
diag_physics % dtauy3d % array(k,i) = dtauy3d_p(i,k,j)
+ diag_physics % rubldiff % array(k,i) = rublten_p(i,k,j)-tend_physics%rublten%array(k,i)
+ diag_physics % rvbldiff % array(k,i) = rvblten_p(i,k,j)-tend_physics%rvblten%array(k,i)
+
tend_physics % rublten % array(k,i) = rublten_p(i,k,j)
tend_physics % rvblten % array(k,i) = rvblten_p(i,k,j)
enddo
enddo
enddo
+!write(0,*)
+!write(0,*) '--- end subroutine gwdo_to_MPAS:'
+!do i = its,ite
+! write(0,101) i,diag_physics%dusfcg%array(i),diag_physics%dvsfcg%array(i)
+!enddo
+!101 format(i8,2(1x,e15.8))
+
end subroutine gwdo_to_MPAS
!=============================================================================================
@@ -163,6 +182,10 @@
type(diag_physics_type),intent(inout):: diag_physics
type(tend_physics_type),intent(inout):: tend_physics
+!local variables:
+ integer:: i,iCell,iEdge
+ real(kind=RKIND),dimension(:),allocatable:: dx_max
+
!---------------------------------------------------------------------------------------------
write(0,*)
write(0,*) '--- enter subroutine driver_gwdo: dt_pbl=',dt_pbl
@@ -176,21 +199,21 @@
#if defined(do_hydrostatic_pressure)
!... REARRANGED CALL USING HYDROSTATIC PRESSURE:
call gwdo ( &
- p3d = pres_hydd_p , p3di = pres2_hydd_p , pi3d = pi_p , &
- u3d = u_p , v3d = v_p , t3d = t_p , &
- qv3d = qv_p , z = z_p , rublten = rublten_p , &
- rvblten = rvblten_p , dtaux3d = dtaux3d_p , dtauy3d = dtauy3d_p , &
- dusfcg = dusfcg_p , dvsfcg = dvsfcg_p , kpbl2d = kpbl_p , &
- areaCell = area_p , itimestep = itimestep , dt = dt_pbl , &
- dx = len_disp , cp = cp , g = g , &
- rd = R_d , rv = R_v , ep1 = ep_1 , &
- pi = pii , var2d = var2d_p , oc12d = con_p , &
- oa2d1 = oa1_p , oa2d2 = oa2_p , oa2d3 = oa3_p , &
- oa2d4 = oa4_p , ol2d1 = ol1_p , ol2d2 = ol2_p , &
- ol2d3 = ol3_p , ol2d4 = ol4_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 &
+ p3d = pres_hydd_p , p3di = pres2_hydd_p , pi3d = pi_p , &
+ u3d = u_p , v3d = v_p , t3d = t_p , &
+ qv3d = qv_p , z = z_p , rublten = rublten_p , &
+ rvblten = rvblten_p , dtaux3d = dtaux3d_p , dtauy3d = dtauy3d_p , &
+ dusfcg = dusfcg_p , dvsfcg = dvsfcg_p , kpbl2d = kpbl_p , &
+ itimestep = itimestep , dt = dt_pbl , dx = dx_p , &
+ cp = cp , g = g , rd = R_d , &
+ rv = R_v , ep1 = ep_1 , pi = pii , &
+ var2d = var2d_p , oc12d = con_p , oa2d1 = oa1_p , &
+ oa2d2 = oa2_p , oa2d3 = oa3_p , oa2d4 = oa4_p , &
+ ol2d1 = ol1_p , ol2d2 = ol2_p , ol2d3 = ol3_p , &
+ ol2d4 = ol4_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 &
)
#else
!... REARRANGED CALL:
</font>
</pre>