Skip to content
Snippets Groups Projects
Commit 5ab5b6a0 authored by Gaelle DELAUTIER's avatar Gaelle DELAUTIER
Browse files

C.Lac 15/5/2018 : correction in the tree drag formulation

parent b1d00478
No related branches found
No related tags found
No related merge requests found
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
! !
INTERFACE INTERFACE
SUBROUTINE DRAG_VEG(PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, & SUBROUTINE DRAG_VEG(PTSTEP,PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, &
HCLOUD,PPABST,PTHT,PRT,PSVT, & HCLOUD,PPABST,PTHT,PRT,PSVT, &
PRHODJ,PZZ,PRUS, PRVS, PRTKES, & PRHODJ,PZZ,PRUS, PRVS, PRTKES, &
PTHS,PRRS,PSVS) PTHS,PRRS,PSVS)
! !
REAL, INTENT(IN) :: PTSTEP ! Time step
REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT ! variables REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT ! variables
REAL, DIMENSION(:,:,:), INTENT(IN) :: PTKET ! at t REAL, DIMENSION(:,:,:), INTENT(IN) :: PTKET ! at t
LOGICAL, INTENT(IN) :: ODEPOTREE ! Droplet deposition on tree LOGICAL, INTENT(IN) :: ODEPOTREE ! Droplet deposition on tree
...@@ -44,7 +44,7 @@ END INTERFACE ...@@ -44,7 +44,7 @@ END INTERFACE
END MODULE MODI_DRAG_VEG END MODULE MODI_DRAG_VEG
! !
! ################################################################### ! ###################################################################
SUBROUTINE DRAG_VEG(PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, & SUBROUTINE DRAG_VEG(PTSTEP,PUT,PVT,PTKET,ODEPOTREE, PVDEPOTREE, &
HCLOUD,PPABST,PTHT,PRT,PSVT, & HCLOUD,PPABST,PTHT,PRT,PSVT, &
PRHODJ,PZZ,PRUS, PRVS, PRTKES, & PRHODJ,PZZ,PRUS, PRVS, PRTKES, &
PTHS,PRRS,PSVS) PTHS,PRRS,PSVS)
...@@ -100,6 +100,7 @@ IMPLICIT NONE ...@@ -100,6 +100,7 @@ IMPLICIT NONE
! !
!* 0.1 Declarations of dummy arguments : !* 0.1 Declarations of dummy arguments :
! !
REAL, INTENT(IN) :: PTSTEP ! Time step
REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT ! variables REAL, DIMENSION(:,:,:), INTENT(IN) :: PUT, PVT ! variables
REAL, DIMENSION(:,:,:), INTENT(IN) :: PTKET ! at t REAL, DIMENSION(:,:,:), INTENT(IN) :: PTKET ! at t
LOGICAL, INTENT(IN) :: ODEPOTREE ! Droplet deposition on tree LOGICAL, INTENT(IN) :: ODEPOTREE ! Droplet deposition on tree
...@@ -226,15 +227,15 @@ GDEP(:,:,2) = .FALSE. ...@@ -226,15 +227,15 @@ GDEP(:,:,2) = .FALSE.
! !
!* drag force by vertical surfaces !* drag force by vertical surfaces
! !
ZUS(:,:,:)= ZUT(:,:,:)/(1 + ZCDRAG(:,:,:)* ZDENSITY(:,:,:) & ZUS(:,:,:)= ZUT(:,:,:)/(1 + ZCDRAG(:,:,:)* ZDENSITY(:,:,:)*PTSTEP &
*SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2)) *SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2))
! !
ZVS(:,:,:)= ZVT(:,:,:)/(1 + ZCDRAG(:,:,:)* ZDENSITY(:,:,:) & ZVS(:,:,:)= ZVT(:,:,:)/(1 + ZCDRAG(:,:,:)* ZDENSITY(:,:,:)*PTSTEP &
*SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2)) *SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2))
! !
PRUS(:,:,:)=PRUS(:,:,:)+((ZUS(:,:,:)-ZUT(:,:,:))*PRHODJ(:,:,:)) PRUS(:,:,:)=PRUS(:,:,:)+((ZUS(:,:,:)-ZUT(:,:,:))*PRHODJ(:,:,:))/PTSTEP
! !
PRVS(:,:,:)=PRVS(:,:,:)+((ZVS(:,:,:)-ZVT(:,:,:))*PRHODJ(:,:,:)) PRVS(:,:,:)=PRVS(:,:,:)+((ZVS(:,:,:)-ZVT(:,:,:))*PRHODJ(:,:,:))/PTSTEP
! !
IF (ODEPOTREE) THEN IF (ODEPOTREE) THEN
ZEXN(:,:,:)= (PPABST(:,:,:)/XP00)**(XRD/XCPD) ZEXN(:,:,:)= (PPABST(:,:,:)/XP00)**(XRD/XCPD)
...@@ -290,11 +291,14 @@ IF (LBUDGET_SV) CALL BUDGET (PSVS(:,:,:,NSV_C2R2BEG+1),14+(NSV_C2R2BEG-1),'DEPOT ...@@ -290,11 +291,14 @@ IF (LBUDGET_SV) CALL BUDGET (PSVS(:,:,:,NSV_C2R2BEG+1),14+(NSV_C2R2BEG-1),'DEPOT
! with Vair = Vair/Vtot * Vtot = (Vair/Vtot) * Stot * Dz ! with Vair = Vair/Vtot * Vtot = (Vair/Vtot) * Stot * Dz
! and Sv/Vair = (Sv/Stot) * Stot/Vair = (Sv/Stot) / (Vair/Vtot) / Dz ! and Sv/Vair = (Sv/Stot) * Stot/Vair = (Sv/Stot) / (Vair/Vtot) / Dz
! !
!ZTKES(:,:,:)= (ZTKET(:,:,:) + (ZCDRAG(:,:,:)* ZDENSITY(:,:,:) &
! *(SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2))**3)) /&
! (1.+(2.*ZCDRAG(:,:,:)* ZDENSITY(:,:,:)*SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2)))
ZTKES(:,:,:)= (ZTKET(:,:,:) + (ZCDRAG(:,:,:)* ZDENSITY(:,:,:) & ZTKES(:,:,:)= (ZTKET(:,:,:) + (ZCDRAG(:,:,:)* ZDENSITY(:,:,:) &
*(SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2))**3)) /& *(SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2))**3))*PTSTEP /&
(1.+(2.*ZCDRAG(:,:,:)* ZDENSITY(:,:,:)*SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2))) (1.+PTSTEP*ZCDRAG(:,:,:)* ZDENSITY(:,:,:)*SQRT(ZUT(:,:,:)**2+ZVT(:,:,:)**2))
! !
PRTKES(:,:,:)=PRTKES(:,:,:)+((ZTKES(:,:,:)-ZTKET(:,:,:))*PRHODJ(:,:,:)) PRTKES(:,:,:)=PRTKES(:,:,:)+((ZTKES(:,:,:)-ZTKET(:,:,:))*PRHODJ(:,:,:)/PTSTEP)
! !
IF (LBUDGET_TKE) CALL BUDGET (PRTKES(:,:,:),5,'DRAG_BU_RTKE') IF (LBUDGET_TKE) CALL BUDGET (PRTKES(:,:,:),5,'DRAG_BU_RTKE')
! !
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment