Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
M
Méso-NH code
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
RODIER Quentin
Méso-NH code
Commits
3e4f37e7
Commit
3e4f37e7
authored
8 years ago
by
Gaelle TANGUY
Browse files
Options
Downloads
Patches
Plain Diff
C.Lac 15/11/2016 : Add droplet deposition on trees
parent
b5b7d79d
No related branches found
Branches containing commit
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/MNH/drag_veg.f90
+75
-16
75 additions, 16 deletions
src/MNH/drag_veg.f90
src/MNH/modd_dragtree.f90
+4
-1
4 additions, 1 deletion
src/MNH/modd_dragtree.f90
src/MNH/modn_dragtree.f90
+2
-1
2 additions, 1 deletion
src/MNH/modn_dragtree.f90
with
81 additions
and
18 deletions
src/MNH/drag_veg.f90
+
75
−
16
View file @
3e4f37e7
...
...
@@ -8,11 +8,21 @@
!
INTERFACE
SUBROUTINE
DRAG_VEG
(
PUT
,
PVT
,
PTKET
,
PRHODJ
,
PZZ
,
PRUS
,
PRVS
,
PRTKES
)
SUBROUTINE
DRAG_VEG
(
PUT
,
PVT
,
PTKET
,
ODEPOTREE
,
PVDEPOTREE
,
&
HCLOUD
,
PPABST
,
PTHT
,
PRT
,
PSVT
,
&
PRHODJ
,
PZZ
,
PRUS
,
PRVS
,
PRTKES
,
&
PTHS
,
PRRS
,
PSVS
)
!
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PUT
,
PVT
! variables
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PTKET
! at t
LOGICAL
,
INTENT
(
IN
)
::
ODEPOTREE
! Droplet deposition on tree
REAL
,
INTENT
(
IN
)
::
PVDEPOTREE
! Velocity deposition on tree
CHARACTER
(
LEN
=
4
),
INTENT
(
IN
)
::
HCLOUD
! Kind of microphysical scheme
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PPABST
! at t
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PTHT
! at t
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
IN
)
::
PRT
! at t
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
IN
)
::
PSVT
! at t
!
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PRHODJ
! dry Density * Jacobian
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PZZ
! Height (z)
...
...
@@ -21,6 +31,9 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Height (z)
!
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PRUS
,
PRVS
! Sources of Momentum
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PRTKES
! Sources of Tke
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
INOUT
)
::
PRRS
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
INOUT
)
::
PSVS
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PTHS
!
!
...
...
@@ -31,7 +44,10 @@ END INTERFACE
END
MODULE
MODI_DRAG_VEG
!
! ###################################################################
SUBROUTINE
DRAG_VEG
(
PUT
,
PVT
,
PTKET
,
PRHODJ
,
PZZ
,
PRUS
,
PRVS
,
PRTKES
)
SUBROUTINE
DRAG_VEG
(
PUT
,
PVT
,
PTKET
,
ODEPOTREE
,
PVDEPOTREE
,
&
HCLOUD
,
PPABST
,
PTHT
,
PRT
,
PSVT
,
&
PRHODJ
,
PZZ
,
PRUS
,
PRVS
,
PRTKES
,
&
PTHS
,
PRRS
,
PSVS
)
! ###################################################################
!
!!**** *DRAG_VEG_n * -
...
...
@@ -55,6 +71,7 @@ END MODULE MODI_DRAG_VEG
!! Original 07/2009
!! C.Lac 07/2011 : Add budgets
!! S. Donier 06/2015 : bug surface aerosols
!! C.Lac 07/2016 : Add droplet deposition
!!---------------------------------------------------------------
!
!
...
...
@@ -67,6 +84,8 @@ USE MODD_DYN
USE
MODD_DYN_n
USE
MODD_VEG_n
USE
MODD_BUDGET
USE
MODD_PARAM_C2R2
USE
MODD_NSV
!
USE
MODI_SHUMAN
...
...
@@ -82,6 +101,13 @@ IMPLICIT NONE
!
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PUT
,
PVT
! variables
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PTKET
! at t
LOGICAL
,
INTENT
(
IN
)
::
ODEPOTREE
! Droplet deposition on tree
REAL
,
INTENT
(
IN
)
::
PVDEPOTREE
! Velocity deposition on tree
CHARACTER
(
LEN
=
4
),
INTENT
(
IN
)
::
HCLOUD
! Kind of microphysical scheme
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PPABST
! at t
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PTHT
! at t
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
IN
)
::
PRT
! at t
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
IN
)
::
PSVT
! at t
!
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PRHODJ
! dry Density * Jacobian
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PZZ
! Height (z)
...
...
@@ -90,6 +116,9 @@ REAL, DIMENSION(:,:,:), INTENT(IN) :: PZZ ! Height (z)
!
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PRUS
,
PRVS
! Sources of Momentum
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PRTKES
! Sources of Tke
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
INOUT
)
::
PRRS
REAL
,
DIMENSION
(:,:,:,:),
INTENT
(
INOUT
)
::
PSVS
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PTHS
!
!
!* 0.2 Declarations of local variables :
...
...
@@ -106,7 +135,10 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: &
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
),
SIZE
(
PUT
,
3
))
::
&
ZCDRAG
,
ZDENSITY
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
))
::
&
ZVH
,
ZLAI
! LAI, Hauteur de la vegetation
ZVH
,
ZLAI
! LAI, Vegetation height
REAL
,
DIMENSION
(
SIZE
(
PZZ
,
1
),
SIZE
(
PZZ
,
2
),
SIZE
(
PZZ
,
3
))::
ZT
,
ZEXN
,
ZLV
,
ZCPH
LOGICAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
),
SIZE
(
PUT
,
3
))
&
::
GDEP
!
!
...
...
@@ -154,30 +186,38 @@ ZTKET(:,:,:) = PTKET(:,:,:)
!* 1.1 Drag coefficient by vegetation (Patton et al 2001)
! ------------------------------
!
GDEP
(:,:,:)
=
.FALSE.
DO
JJ
=
2
,(
IJU
-1
)
DO
JI
=
2
,(
IIU
-1
)
IF
(
ZVH
(
JI
,
JJ
)
/
=
0
)
THEN
DO
JK
=
2
,(
IKU
-1
)
IF
((
ZVH
(
JI
,
JJ
)
+
PZZ
(
JI
,
JJ
,
2
))
<
PZZ
(
JI
,
JJ
,
JK
))
EXIT
ZCDRAG
(
JI
,
JJ
,
JK
)
=
0.3
!0.075
ZDENSITY
(
JI
,
JJ
,
JK
)
=
MAX
((
4
*
(
ZLAI
(
JI
,
JJ
)
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
ZVH
(
JI
,
JJ
)
-
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
)))/&
ZVH
(
JI
,
JJ
)
**
3
)
-
&
(
0.30
*
((
ZLAI
(
JI
,
JJ
)
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
/&
(
ZVH
(
JI
,
JJ
)
**
3
))
-
ZLAI
(
JI
,
JJ
))))/&
ZVH
(
JI
,
JJ
),
0.
)
IF
((
HCLOUD
==
'C2R2'
)
.OR.
(
HCLOUD
==
'KHKO'
))
THEN
IF
((
PRRS
(
JI
,
JJ
,
JK
,
2
)
>
0.
)
.AND.
(
PSVS
(
JI
,
JJ
,
JK
,
NSV_C2R2BEG
+1
)
>
0.
))
&
GDEP
(
JI
,
JJ
,
JK
)
=
.TRUE.
ELSE
IF
(
HCLOUD
/
=
'NONE'
.AND.
HCLOUD
/
=
'REVE'
)
THEN
IF
(
PRRS
(
JI
,
JJ
,
JK
,
2
)
>
0.
)
GDEP
(
JI
,
JJ
,
JK
)
=
.TRUE.
END
IF
ZCDRAG
(
JI
,
JJ
,
JK
)
=
0.2
!0.075
ZDENSITY
(
JI
,
JJ
,
JK
)
=
MAX
((
4
*
(
ZLAI
(
JI
,
JJ
)
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
ZVH
(
JI
,
JJ
)
-
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
)))/&
ZVH
(
JI
,
JJ
)
**
3
)
-
&
(
0.30
*
((
ZLAI
(
JI
,
JJ
)
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
/&
(
ZVH
(
JI
,
JJ
)
**
3
))
-
ZLAI
(
JI
,
JJ
))))/&
ZVH
(
JI
,
JJ
),
0.
)
END
DO
END
IF
END
DO
END
DO
!
! To exclude the first vertical level already dealt in rain_ice or rain_c2r2_khko
GDEP
(:,:,
2
)
=
.FALSE.
!
!* 1.2 Drag force by wall surfaces
! ---------------------------
...
...
@@ -194,8 +234,27 @@ PRUS(:,:,:)=PRUS(:,:,:)+((ZUS(:,:,:)-ZUT(:,:,:))*PRHODJ(:,:,:))
!
PRVS
(:,:,:)
=
PRVS
(:,:,:)
+
((
ZVS
(:,:,:)
-
ZVT
(:,:,:))
*
PRHODJ
(:,:,:))
!
IF
(
ODEPOTREE
)
THEN
ZEXN
(:,:,:)
=
(
PPABST
(:,:,:)/
XP00
)
**
(
XRD
/
XCPD
)
ZT
(:,:,:)
=
PTHT
(:,:,:)
*
ZEXN
(:,:,:)
ZLV
(:,:,:)
=
XLVTT
+
(
XCPV
-
XCL
)
*
(
ZT
(:,:,:)
-
XTT
)
ZCPH
(:,:,:)
=
XCPD
+
XCPV
*
PRT
(:,:,:,
1
)
WHERE
(
GDEP
)
PRRS
(:,:,:,
2
)
=
PRRS
(:,:,:,
2
)
-
PVDEPOTREE
*
PRT
(:,:,:,
2
)
*
PRHODJ
(:,:,:)
END
WHERE
IF
((
HCLOUD
==
'C2R2'
)
.OR.
(
HCLOUD
==
'KHKO'
))
THEN
WHERE
(
GDEP
)
PSVS
(:,:,:,
NSV_C2R2BEG
+1
)
=
PSVS
(:,:,:,
NSV_C2R2BEG
+1
)
-
PVDEPOTREE
*
&
PSVT
(:,:,:,
NSV_C2R2BEG
+1
)
*
PRHODJ
(:,:,:)
END
WHERE
END
IF
!
END
IF
!
IF
(
LBUDGET_U
)
CALL
BUDGET
(
PRUS
,
1
,
'DRAG_BU_RU'
)
IF
(
LBUDGET_V
)
CALL
BUDGET
(
PRVS
,
2
,
'DRAG_BU_RV'
)
IF
(
LBUDGET_RC
)
CALL
BUDGET
(
PRRS
(:,:,:,
2
),
7
,
'DEPOTR_BU_RRC'
)
IF
(
LBUDGET_SV
)
CALL
BUDGET
(
PSVS
(:,:,:,
NSV_C2R2BEG
+1
),
14
+
(
NSV_C2R2BEG
-1
),
'DEPOTR_BU_RSV'
)
!
!
!* 3. Computations of TKE tendency due to canopy drag
...
...
This diff is collapsed.
Click to expand it.
src/MNH/modd_dragtree.f90
+
4
−
1
View file @
3e4f37e7
...
...
@@ -21,7 +21,7 @@
!! MODIFICATIONS
!! -------------
!! Original 30/06/11
!!
!!
06/16 (C.Lac) Add droplet deposition
!-----------------------------------------------------------------------------
!
!* 0. DECLARATIONS
...
...
@@ -29,5 +29,8 @@
IMPLICIT
NONE
LOGICAL
::
LDRAGTREE
! flag used to take into account tree drag in
! ! the atmospheric model instead of SURFEX.
LOGICAL
::
LDEPOTREE
! flag for droplet deposition on trees
!
REAL
::
XVDEPOTREE
! Droplet deposition velocity
!
END
MODULE
MODD_DRAGTREE
This diff is collapsed.
Click to expand it.
src/MNH/modn_dragtree.f90
+
2
−
1
View file @
3e4f37e7
...
...
@@ -22,6 +22,7 @@
!! -------------
!! Original 30/06/11
!!
!! 10/2016 : (C.Lac) Add droplet deposition on trees
!! IMPLICIT ARGUMENTS
!! ------------------
USE
MODD_DRAGTREE
...
...
@@ -33,7 +34,7 @@ USE MODD_DRAGTREE
IMPLICIT
NONE
SAVE
NAMELIST
/
NAM_DRAGTREE
/
&
LDRAGTREE
LDRAGTREE
,
LDEPOTREE
,
XVDEPOTREE
!
END
MODULE
MODN_DRAGTREE
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment