<p><b>laura@ucar.edu</b> 2010-06-14 10:33:07 -0600 (Mon, 14 Jun 2010)</p><p>Updated microphysics driver<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_hyd_phys/module_microphysics_driver.F
===================================================================
--- branches/atmos_physics/src/core_hyd_phys/module_microphysics_driver.F        2010-06-14 16:32:46 UTC (rev 352)
+++ branches/atmos_physics/src/core_hyd_phys/module_microphysics_driver.F        2010-06-14 16:33:07 UTC (rev 353)
@@ -15,35 +15,25 @@
CONTAINS
!==============================================================================
- SUBROUTINE microphysics_driver(grid,vars,itimestep)
+ SUBROUTINE microphysics_driver(tend,vars,grid,itimestep,config_ntimesteps)
!==============================================================================
!INPUT ARGUMENTS:
!----------------
TYPE(grid_meta),INTENT(in) :: grid
- INTEGER,INTENT(in):: itimestep
+ INTEGER,INTENT(in):: itimestep,config_ntimesteps
!INOUT ARGUMENTS:
!----------------
- TYPE(grid_state),INTENT(inout):: vars
+ TYPE(grid_state),INTENT(inout):: tend,vars
!LOCAL VARIABLES AND ARRAYS:
!---------------------------
+ LOGICAL:: log_microphysics
INTEGER:: nCells,nCellsSolve,nLevels
INTEGER:: itf,jtf,ktf
- INTEGER:: i,icount,istep,j,k,kk
+ INTEGER:: i,iCell,icount,istep,j,k,kk
- REAL(KIND=RKIND),DIMENSION(:,:),ALLOCATABLE:: &
- rainnc,& !
- snownc,& !
- graupelnc,& !
- sr !
-
- REAL(KIND=RKIND),DIMENSION(:,:),ALLOCATABLE:: &
- rainncv,& !
- snowncv,& !
- graupelncv !
-
!==============================================================================
write(6,*)
write(6,*) '--- enter subroutine MICROPHYSICS_DRIVER: itimestep=', itimestep
@@ -82,17 +72,34 @@
write(6,*) ' KTS= ',kts,' KTE=',kte
write(6,*)
-!ALLOCATE LOCAL ARRAYS:
- ALLOCATE(rainnc(ims:ime,jms:jme) )
- ALLOCATE(rainncv(ims:ime,jms:jme) )
- ALLOCATE(snownc(ims:ime,jms:jme) )
- ALLOCATE(snowncv(ims:ime,jms:jme) )
- ALLOCATE(graupelnc(ims:ime,jms:jme) )
- ALLOCATE(graupelncv(ims:ime,jms:jme) )
- ALLOCATE(sr(ims:ime,jms:jme) )
+!SAVES THE INITIAL POTENTIAL TEMPERATURE FOR CALCULATION OF THE POTENTIAL
+!TEMPERATURE TENDENCY NEEDED IN THE DYNMICAL CORE:
+ DO k = 1, nLevels
+ DO iCell = 1, nCellsSolve
+ vars%h_diabatic%array(k,i) = vars%theta%array(k,i)
+ ENDDO
+ ENDDO
-!CALCULATES PHYSICS VARIABLES:
+!INITIALIZATION OF TIME-STEP PRECIPITATION VARIABLES ON THE GEODESIC GRID:
+ DO iCell = 1, nCellsSolve
+ vars%rainncv%array(iCell) = 0.
+ vars%snowncv%array(iCell) = 0.
+ vars%graupelncv%array(iCell) = 0.
+ vars%sr%array(iCell) = 0.
+ ENDDO
+
+!COPY PHYSICS VARIABLES FROM THE GEODESIC GRID TO THE "WRF" GRID:
DO j = jts, jtf
+ DO i = its, itf
+ rainnc_phy(i,j) = vars%rainnc%array(i)
+ snownc_phy(i,j) = vars%snownc%array(i)
+ graupelnc_phy(i,j) = vars%graupelnc%array(i)
+ IF(vars%rainnc%array(i) .GT. 0.) &
+ write(6,204) itimestep,j,i,vars%rainncv%array(i),vars%rainnc%array(i)
+ ENDDO
+ ENDDO
+
+ DO j = jts, jtf
DO k = kts, ktf
DO i = its, itf
dz_phy(i,k,j) = (vars%geopotential%array(k+1,i) &
@@ -122,7 +129,8 @@
write(6,*) '--- istep=',istep
CALL mp_gt_driver(qv_phy ,qc_phy,qr_phy,qi_phy,qs_phy,qg_phy,qni_phy, &
qnr_phy,th_phy,pi_phy,p_phy ,dz_phy,dt_microp,itimestep,&
- rainnc,rainncv,snownc,snowncv,graupelnc,graupelncv,sr, &
+ rainnc_phy,rainncv_phy,snownc_phy,snowncv_phy, &
+ graupelnc_phy,graupelncv_phy,sr_phy, &
! refl_10cm,grid_clock,grid_alarms, &
ids,ide,jds,jde,kds,kde, & ! domain dimensions
ims,ime,jms,jme,kms,kme, & ! memory dimensions
@@ -130,6 +138,23 @@
istep = istep + 1
ENDDO
+ write(6,*) '--- end subroutine MP_GT_DRIVER:'
+!DO j = jts, jtf
+!DO i = its, itf
+! log_microphysics = .false.
+! IF(rainncv_phy(i,j) .GT. 0.) THEN
+! write(6,203) itimestep,j,i,rainnc_phy(i,j),rainncv_phy(i,j)
+! log_microphysics = .true.
+! IF(log_microphysics) THEN
+! DO k = kts,ktf
+! write(6,201) j,i,k,qv_phy(i,k,j),qc_phy(i,k,j),qr_phy(i,k,j), &
+! qi_phy(i,k,j),qs_phy(i,k,j),qg_phy(i,k,j)
+! ENDDO
+! ENDIF
+! ENDIF
+!ENDDO
+!ENDDO
+
!BACK TO DYNAMICAL CORE:
DO j = jts, jtf
DO k = kts, ktf
@@ -147,19 +172,62 @@
ENDDO
ENDDO
-!DEALLOCATE LOCAL ARRAYS:
- DEALLOCATE(rainnc )
- DEALLOCATE(rainncv )
- DEALLOCATE(snownc )
- DEALLOCATE(snowncv )
- DEALLOCATE(graupelnc )
- DEALLOCATE(graupelncv )
- DEALLOCATE(sr )
+!CALCULATES THE POTENTIAL TEMPERATURE TENDENCY:
+ DO k = 1, nLevels
+ DO iCell = 1, nCellsSolve
+ vars%h_diabatic%array(k,i) = &
+ (vars%theta%array(k,i) - vars%h_diabatic%array(k,i)) / dt_dyn
+ ENDDO
+ ENDDO
+!DIAGNOSTICS FOR PRECIPITATION:
+ DO j = jts,jtf
+ DO i = its,itf
+
+ !Time-step precipitation:
+ vars%rainncv%array(i) = rainncv_phy(i,j)
+ vars%snowncv%array(i) = snowncv_phy(i,j)
+ vars%graupelncv%array(i) = graupelncv_phy(i,j)
+ vars%sr%array(i) = sr_phy(i,j)
+
+ !Accumulated precipitation:
+ vars%rainnc%array(i) = rainnc_phy(i,j)
+ vars%snownc%array(i) = snownc_phy(i,j)
+ vars%graupelnc%array(i) = graupelnc_phy(i,j)
+
+! IF(vars%rainncv%array(i) .GT. 0.) &
+! write(6,204) itimestep,j,i,vars%rainncv%array(i),rainncv_phy(i,j)
+ ENDDO
+ ENDDO
+
+ IF(itimestep == config_ntimesteps) THEN
+ write(6,*) 'itimestep=', itimestep
+ write(6,*) 'config_ntimesteps=', config_ntimesteps
+ DO iCell = 1, nCellsSolve
+ IF(vars%rainncv%array(iCell) .GT. 0.) THEN
+ write(6,204) config_ntimesteps,itimestep,iCell, &
+ vars%rainncv%array(iCell) ,vars%rainnc%array(iCell), &
+ vars%snowncv%array(iCell) ,vars%snownc%array(iCell), &
+ vars%graupelncv%array(iCell),vars%graupelnc%array(iCell)
+ DO k = 1, nLevels
+ write(6,201) itimestep,iCell,k,vars%theta%array(k,iCell), &
+ vars%scalars%array(index_qv,k,iCell), &
+ vars%scalars%array(index_qc,k,iCell), &
+ vars%scalars%array(index_qr,k,iCell), &
+ vars%scalars%array(index_qi,k,iCell), &
+ vars%scalars%array(index_qs,k,iCell), &
+ vars%scalars%array(index_qg,k,iCell)
+ ENDDO
+ ENDIF
+ ENDDO
+ ENDIF
+
+ write(6,*) '--- end SUBROUTINE MICROPHYSICS_DRIVER:'
+
!FORMATS:
- 201 format(i3,10(1x,e15.8))
- 202 format(i3,1x,i6,1x,i3,10(1x,e15.8))
- 203 format(i6,1x,i3,10(1x,e15.8))
+ 201 FORMAT(i3,1x,i6,1x,i3,10(1x,e15.8))
+ 203 FORMAT('MICROPHYSICS BEGINS:',3i6,2(1x,f6.1))
+ 204 FORMAT('MICROPHYSICS PRECIP:',3i6,8(1x,e15.8))
END SUBROUTINE microphysics_driver
</font>
</pre>