SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
isba_flood_properties.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #########
6  SUBROUTINE isba_flood_properties(PLAI,PFFLOOD,PFFROZEN,PZ0FLOOD, &
7  pffg_nosnow,pffv_nosnow )
8 ! ############################################################################
9 !
10 !
11 !!**** *ISBA_FLOOD_PROPERTIES*
12 !!
13 !! PURPOSE
14 !! -------
15 ! Calculate the Flood fractions without snow and roughness length.
16 !
17 !!** METHOD
18 !! ------
19 !
20 !! EXTERNAL
21 !! --------
22 !!
23 !! IMPLICIT ARGUMENTS
24 !! ------------------
25 !!
26 !!
27 !! REFERENCE
28 !! ---------
29 !!
30 !! AUTHOR
31 !! ------
32 !! B. Decharme * Meteo-France *
33 !!
34 !! MODIFICATIONS
35 !! -------------
36 !! Original 25/05/08
37 !! Modified 09/2009 B. Decharme: limitation of Ri in surface_ri.F90
38 !! Modified 02/2014 B. Decharme: Simplification
39 !-------------------------------------------------------------------------------
40 !
41 !* 0. DECLARATIONS
42 ! ------------
43 !
44 USE modd_snow_par, ONLY : xz0sn
45 USE modd_flood_par, ONLY : xz0flood
46 !
48 !
49 USE yomhook ,ONLY : lhook, dr_hook
50 USE parkind1 ,ONLY : jprb
51 !
52 IMPLICIT NONE
53 !
54 !* 0.1 declarations of arguments
55 !
56 REAL, DIMENSION(:), INTENT(IN) :: plai ! leaf area index
57 REAL, DIMENSION(:), INTENT(IN) :: pfflood
58 REAL, DIMENSION(:), INTENT(IN) :: pffrozen
59 !
60 REAL, DIMENSION(:), INTENT(OUT) :: pz0flood ! roughness length over floodplains
61 REAL, DIMENSION(:), INTENT(OUT) :: pffg_nosnow
62 REAL, DIMENSION(:), INTENT(OUT) :: pffv_nosnow
63 !
64 !* 0.2 declarations of local variables
65 !
66 REAL, DIMENSION(SIZE(PFFLOOD)) :: zpsng
67 REAL, DIMENSION(SIZE(PFFLOOD)) :: zpsnv
68 !
69 REAL(KIND=JPRB) :: zhook_handle
70 !
71 !-------------------------------------------------------------------------------
72 !
73 ! 0. Initializations
74 ! ---------------
75 !
76 IF (lhook) CALL dr_hook('ISBA_FLOOD_PROPERTIES',0,zhook_handle)
77 !
78 !-------------------------------------------------------------------------------
79 !
80 ! 1. Flood fractions without snow
81 ! ----------------------------
82 !
83 zpsng(:)=0.0
84 zpsnv(:)=0.0
85 !
86 pffg_nosnow(:) = flood_frac_ground(zpsng,pfflood)
87 pffv_nosnow(:) = flood_frac_veg(plai,zpsnv,pfflood)
88 !
89 !-------------------------------------------------------------------------------
90 !
91 ! 2. roughness length
92 ! ----------------
93 !
94 WHERE(pffrozen(:)==0.0)
95  pz0flood(:) = xz0flood
96 ELSEWHERE
97  pz0flood(:) = min(0.005,10.*xz0flood)
98 END WHERE
99 !
100 IF (lhook) CALL dr_hook('ISBA_FLOOD_PROPERTIES',1,zhook_handle)
101 !-------------------------------------------------------------------------------
102 !
103 END SUBROUTINE isba_flood_properties
subroutine isba_flood_properties(PLAI, PFFLOOD, PFFROZEN, PZ0FLOOD, PFFG_NOSNOW, PFFV_NOSNOW)
real function, dimension(size(ppsng)) flood_frac_ground(PPSNG, PFFLOOD)
real function, dimension(size(ppsnv)) flood_frac_veg(PLAI, PPSNV, PFFLOOD)