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
Tags containing commit
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 @@
...
@@ -8,11 +8,21 @@
!
!
INTERFACE
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
)
::
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
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
)
::
PRHODJ
! dry Density * Jacobian
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PZZ
! Height (z)
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PZZ
! Height (z)
...
@@ -21,6 +31,9 @@ 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
)
::
PRUS
,
PRVS
! Sources of Momentum
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PRTKES
! Sources of Tke
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
...
@@ -31,7 +44,10 @@ END INTERFACE
END
MODULE
MODI_DRAG_VEG
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 * -
!!**** *DRAG_VEG_n * -
...
@@ -55,6 +71,7 @@ END MODULE MODI_DRAG_VEG
...
@@ -55,6 +71,7 @@ END MODULE MODI_DRAG_VEG
!! Original 07/2009
!! Original 07/2009
!! C.Lac 07/2011 : Add budgets
!! C.Lac 07/2011 : Add budgets
!! S. Donier 06/2015 : bug surface aerosols
!! S. Donier 06/2015 : bug surface aerosols
!! C.Lac 07/2016 : Add droplet deposition
!!---------------------------------------------------------------
!!---------------------------------------------------------------
!
!
!
!
...
@@ -67,6 +84,8 @@ USE MODD_DYN
...
@@ -67,6 +84,8 @@ USE MODD_DYN
USE
MODD_DYN_n
USE
MODD_DYN_n
USE
MODD_VEG_n
USE
MODD_VEG_n
USE
MODD_BUDGET
USE
MODD_BUDGET
USE
MODD_PARAM_C2R2
USE
MODD_NSV
!
!
USE
MODI_SHUMAN
USE
MODI_SHUMAN
...
@@ -82,6 +101,13 @@ IMPLICIT NONE
...
@@ -82,6 +101,13 @@ IMPLICIT NONE
!
!
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
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
)
::
PRHODJ
! dry Density * Jacobian
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PZZ
! Height (z)
REAL
,
DIMENSION
(:,:,:),
INTENT
(
IN
)
::
PZZ
! Height (z)
...
@@ -90,6 +116,9 @@ 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
)
::
PRUS
,
PRVS
! Sources of Momentum
REAL
,
DIMENSION
(:,:,:),
INTENT
(
INOUT
)
::
PRTKES
! Sources of Tke
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 :
!* 0.2 Declarations of local variables :
...
@@ -106,7 +135,10 @@ REAL, DIMENSION(SIZE(PUT,1),SIZE(PUT,2),SIZE(PUT,3)) :: &
...
@@ -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
))
::
&
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
),
SIZE
(
PUT
,
3
))
::
&
ZCDRAG
,
ZDENSITY
ZCDRAG
,
ZDENSITY
REAL
,
DIMENSION
(
SIZE
(
PUT
,
1
),
SIZE
(
PUT
,
2
))
::
&
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(:,:,:)
...
@@ -154,30 +186,38 @@ ZTKET(:,:,:) = PTKET(:,:,:)
!* 1.1 Drag coefficient by vegetation (Patton et al 2001)
!* 1.1 Drag coefficient by vegetation (Patton et al 2001)
! ------------------------------
! ------------------------------
!
!
GDEP
(:,:,:)
=
.FALSE.
DO
JJ
=
2
,(
IJU
-1
)
DO
JJ
=
2
,(
IJU
-1
)
DO
JI
=
2
,(
IIU
-1
)
DO
JI
=
2
,(
IIU
-1
)
IF
(
ZVH
(
JI
,
JJ
)
/
=
0
)
THEN
IF
(
ZVH
(
JI
,
JJ
)
/
=
0
)
THEN
DO
JK
=
2
,(
IKU
-1
)
DO
JK
=
2
,(
IKU
-1
)
IF
((
ZVH
(
JI
,
JJ
)
+
PZZ
(
JI
,
JJ
,
2
))
<
PZZ
(
JI
,
JJ
,
JK
))
EXIT
IF
((
ZVH
(
JI
,
JJ
)
+
PZZ
(
JI
,
JJ
,
2
))
<
PZZ
(
JI
,
JJ
,
JK
))
EXIT
ZCDRAG
(
JI
,
JJ
,
JK
)
=
0.3
!0.075
IF
((
HCLOUD
==
'C2R2'
)
.OR.
(
HCLOUD
==
'KHKO'
))
THEN
ZDENSITY
(
JI
,
JJ
,
JK
)
=
MAX
((
4
*
(
ZLAI
(
JI
,
JJ
)
*
&
IF
((
PRRS
(
JI
,
JJ
,
JK
,
2
)
>
0.
)
.AND.
(
PSVS
(
JI
,
JJ
,
JK
,
NSV_C2R2BEG
+1
)
>
0.
))
&
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
GDEP
(
JI
,
JJ
,
JK
)
=
.TRUE.
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
ELSE
IF
(
HCLOUD
/
=
'NONE'
.AND.
HCLOUD
/
=
'REVE'
)
THEN
(
ZVH
(
JI
,
JJ
)
-
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
)))/&
IF
(
PRRS
(
JI
,
JJ
,
JK
,
2
)
>
0.
)
GDEP
(
JI
,
JJ
,
JK
)
=
.TRUE.
ZVH
(
JI
,
JJ
)
**
3
)
-
&
END
IF
(
0.30
*
((
ZLAI
(
JI
,
JJ
)
*
&
ZCDRAG
(
JI
,
JJ
,
JK
)
=
0.2
!0.075
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
))
*
&
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
))
*
&
(
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
)
-
(
PZZ
(
JI
,
JJ
,
JK
)
-
PZZ
(
JI
,
JJ
,
2
)))/&
ZVH
(
JI
,
JJ
),
0.
)
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
DO
END
IF
END
IF
END
DO
END
DO
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
!* 1.2 Drag force by wall surfaces
! ---------------------------
! ---------------------------
...
@@ -194,8 +234,27 @@ PRUS(:,:,:)=PRUS(:,:,:)+((ZUS(:,:,:)-ZUT(:,:,:))*PRHODJ(:,:,:))
...
@@ -194,8 +234,27 @@ PRUS(:,:,:)=PRUS(:,:,:)+((ZUS(:,:,:)-ZUT(:,:,:))*PRHODJ(:,:,:))
!
!
PRVS
(:,:,:)
=
PRVS
(:,:,:)
+
((
ZVS
(:,:,:)
-
ZVT
(:,:,:))
*
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_U
)
CALL
BUDGET
(
PRUS
,
1
,
'DRAG_BU_RU'
)
IF
(
LBUDGET_V
)
CALL
BUDGET
(
PRVS
,
2
,
'DRAG_BU_RV'
)
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
!* 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 @@
...
@@ -21,7 +21,7 @@
!! MODIFICATIONS
!! MODIFICATIONS
!! -------------
!! -------------
!! Original 30/06/11
!! Original 30/06/11
!!
!!
06/16 (C.Lac) Add droplet deposition
!-----------------------------------------------------------------------------
!-----------------------------------------------------------------------------
!
!
!* 0. DECLARATIONS
!* 0. DECLARATIONS
...
@@ -29,5 +29,8 @@
...
@@ -29,5 +29,8 @@
IMPLICIT
NONE
IMPLICIT
NONE
LOGICAL
::
LDRAGTREE
! flag used to take into account tree drag in
LOGICAL
::
LDRAGTREE
! flag used to take into account tree drag in
! ! the atmospheric model instead of SURFEX.
! ! the atmospheric model instead of SURFEX.
LOGICAL
::
LDEPOTREE
! flag for droplet deposition on trees
!
REAL
::
XVDEPOTREE
! Droplet deposition velocity
!
!
END
MODULE
MODD_DRAGTREE
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 @@
...
@@ -22,6 +22,7 @@
!! -------------
!! -------------
!! Original 30/06/11
!! Original 30/06/11
!!
!!
!! 10/2016 : (C.Lac) Add droplet deposition on trees
!! IMPLICIT ARGUMENTS
!! IMPLICIT ARGUMENTS
!! ------------------
!! ------------------
USE
MODD_DRAGTREE
USE
MODD_DRAGTREE
...
@@ -33,7 +34,7 @@ USE MODD_DRAGTREE
...
@@ -33,7 +34,7 @@ USE MODD_DRAGTREE
IMPLICIT
NONE
IMPLICIT
NONE
SAVE
SAVE
NAMELIST
/
NAM_DRAGTREE
/
&
NAMELIST
/
NAM_DRAGTREE
/
&
LDRAGTREE
LDRAGTREE
,
LDEPOTREE
,
XVDEPOTREE
!
!
END
MODULE
MODN_DRAGTREE
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